階層構造の中で自分の視線を決める

昨日の話の続き。


多層構造になっていて、上位の層は下位の層の複雑さを隠蔽している。
そして、上位層しか知らないと、下位層でのトラブルに対応できない。
これって結局、システム開発に限った話じゃないんだろうと思う。


例えば、通信販売。
あれって結局、下位層である宅配会社がある程度の信頼性を持っているから実現できるサービスだよね。
もし「全国宅配組合ストライキ」みたいなものがあって、日本全国の宅配会社がストをおこしたら、間違いなく通信販売はサービス停止に追い込まれる。
あるいはもっと簡単に、飛行機が飛ばないだけで遅配が起きるのを、僕たちは経験しているはずだ。


もちろん、昨日引用した元記事にあったとおり、一人の人間がすべての階層を理解するのは難しい。
基準となる層の上でも下でも、どこかで「ここから先はブラックボックスにする」という線引きが必要になる。
言ってみれば、階層構造の中での自分の視線のようなものを定義する必要がある。
視線はより遠くまで届いた方が、様々な事態に対処できる。
でも視線を延ばすのに必要なコスト(時間・お金)は、層をひとつ超えるごとに指数関数的に増えていく。
これからは、自分の持っているリソースから、どこまで視線を延ばすかを考えていかなければならないんだと思う。


で、システム開発の話に戻ってくる。
実社会の場合、ひとつ下の層を理解するには、究極的にはその層の住人にならなければならない。
例えば、宅配会社を本当に理解するには、宅配会社で働くことが必要になる。
それに比べれば、システム開発の現場でフレームワークソースコードを覗いたり、システムの設計者と話したりするコストなんて、時間の面でもお金の面でも微々たるものだ。
上でも下でも、その気になれば自分の視界を延ばす事ができる。
明日からでも、層をまたぐように意識してみると良いのではないだろうか。
自戒の意味も込めて・・・。