※一応、設計についての話です。
「IT業界」と「建築業界」は、よく並べられて例えられる。
けど、そこまで根付いてないような感じがするので、自分なりに分析。
■家に入るためのドアには「鍵」がついている
- 鍵式なのか、カード式なのか、入力式なのか、指紋認証なのか...
- これは、ITでいうところの認証に当たる。
- ID/PASS、端末認証、SSO...
■家には「間取り」という概念が存在する
- キッチンやリビングや寝室。それぞれの機能を果たしてる。
- これは、ITでいうところのサブシステムに当たる。
- ログイン、ユーザ登録、住所検索.....
■家には「寿命(耐用年数)」がある
- 建築基準法によって色々あるとは思うけど、大体100年くらい持つはず。メンテナンス方法も定義されてるはず。
- これは、ITでいうところの運用期間に当たる。
- 何年耐えられる設計にするのか、もし何か障害が発生した時にどう対処するのか...
■家を建てるには「道具と技術」が必要
- 釘や金槌、トラクターやクレーン車...
- これは、ITでいうところのIDEや言語に当たる。
- EclipseでJava開発したり、PyCharmでPython開発したり...
■「決定的に違う事」
- 建築で失敗したら人が死ぬ。
- システムで失敗しても人は死なない。
- ただ、損害賠償が発生するので、会社経営が傾き、社員の首を切らなければならない状況が発生しうる。
■問題点
- IT業界にはこの考えを持っている人が少ない。
- そもそも別の業界なので考えなくていいのかもしれない。けど、本質としては同じはず。
- 結果として、以下のような事が生じる。
- 認証方法が曖昧
- サブシステム間の連携が取れてない
- 保守性や拡張性、耐障害性や将来性を見こした設計になっていない
- 責任意識が低く、責任の押し付け合いが発生
建築で考えたら簡単な事なのに、
何でIT業界だと上記のような問題が発生するのか.....
ちゃんと設計しろよ。
謎です。