技術以外に設計に影響を与えるもの
論理削除と物理削除
ソフトウェア設計を行う際に、物理削除と論理削除ってのがあります。
物理削除というのは、データを削除したいとコマンドを発行したときに、データを即座に消す設計です。
これに対し、論理削除と言うのは、データを削除したいとコマンドを発行したときに、データを実際には消さずに利用者から見えなくする設計です。windows のゴミ箱をイメージすると分かりやすいかと思います。
この物理削除と論理削除、昔からどっちを設計上で採用するんだ、でもめることが多く、さながらキノコたけのこ論争みたいになったりすることがあります。
オッサンが若手の頃は、「とりあえず論理削除にしておけば後で問題が起きたときに復旧しやすいから安心」なんて教わったりしてました。
でも、最近は「積極的な要件がない限り、物理削除とするべき」という思想になってます。
そんな風に考えるようになったのは、以下の理由があります。
その1 コストベースオプティマイザの登場
最近のオラクルでも当たり前のように採用されるようになったコストベースオプティマイザ。
このオプティマイザ使っている環境だと、論理削除みたいに現在使わないデータが含まれていると、欲しい有効データ検索がうまくいかないことがしばしばありました。
その2 AWSのようなデータの従量課金型クラウドの登場
AWSみたいにデータ量に応じて課金額が変化するクラウドを利用すると、お金をかけてまで使わなくなったデータを残しておく必要はあるのか、という問題が出てきます。
その3 セキュリティの問題
退会等により削除されているべき個人情報が、実は論理削除状態であったため、流出してしまった、なんて事態となったら目をあてられません。こういったセキュリティリスク回避のためにも、極力不要な個人情報を持たせることとなる論理削除が問題となる場面が出てきます。
とまあ、こんな感じの技術的&社会的パラダイムの変化により、オッサンの中では「とりあえずの論理削除」から「必要最小限の論理削除」に設計方針を変えたわけです。
厄介な社会的パラダイム
さて、長くなりましたがここまでが前置き。
本題です。
いろいろプロジェクトの設計方針などを検討するのですが、前述した技術的なパラダイムってわりかしIT技術者がチェックしやすい領域だと思う反面、社会的なパラダイムって如何せん見落としがちだよなあって常々思います。
社会的なパラダイムって法律対応みたいなところで現れることも多く、例えばプロバイダ責任制限法みたいに要件として分かりやすいものもあります。
ただ、明確な要件として与えられるものだけではなく、設計者側が非機能要件として考えなければならない場面も多々あると感じてます。
※例えば、前回記事*1で書いた様な浜銀の事件とか
特にここ近年は個人情報保護法やプロバイダ責任制限法のようにIT関連に強く影響を与える法律も制定されており、ますます社会の変化がIT業界に与える影響が増してると感じます。
こういった社会的なパラダイムの変化は、先の論理削除の件みたいに時折技術的なパラダイム以上の強制力をもって設計思想に影響を与えるんだろうなと思います。
ああ。。。なんて面倒なんだろう。。。
オッサンとしては、これら社会的なパラダイムの変化をうまくキャッチアップをするコツは、「ニュースで見つけたIT関連の事件などを他山の石として、設計の問題点を考えてみる」ってのが一番やり易いかなって思います。
オッサンのブログでたまにIT関連の記事の解説とかしてますが、この他山の石のキャッチアップのためだったりします。
世間は何を問題視してるのか、どう対処すればよかったのかを考えるだけでもスキルの足しになると思いますよ。
まとめ
だらだら書きましたがまとめると
- 設計には技術の進歩以外にも社会的な要請も影響を与えるよね
- ただ、どうしても社会の要請ってキャッチアップしづらいので、ニュース等から他山の石いただくのがよいよね
ってなります。
いやー、結論が当たり障りなくて申し訳ないです。
まあ、ニュースに一言突っ込みを入れるのも案外仕事に役立つんじゃないですかってことで。
以上