ソフトウエア開発を建築にたとえると

日記を書くのも久しぶりな訳だ。
というのも、図面&現場チェッカーとして、とある建築の新築工事現場に常駐しているのだわ。

で、昨年末にソフトウエア開発を建築にたとえるとどうゆうようになるかというのを、つらつらと書いていたのを、もう少しすすめよう。現場常駐で見える物もあったし。

図面チェック屋として、現場にいると、作成される図面の量には圧倒される。いろいろな用途が含まれる複合施設だと言うのもあるけれど。
建築というのは、コンクリートとか石膏ボードの壁とか現場で加工して形作っていく物もあるけれど、鉄骨をはじめとしてアルミサッシとか建具とか工場で作ってくる物が多数だ。だから、そういう製作物の図面の量がすごい多い。

製作物の図面というのは、建築家の書いた設計図を出発点としてゼネコンが書いた施工図(平面図、立面図)をもとに、各メーカーが作図する。作図された図面をゼネコンおよび建築家が何回かチェックして、これでOKという図面ができる。
そのとき僕らゼネコンが何をチェックしているかと言うと、他の部材との関係のチェックですね。例えば、アルミの窓だったら、内側で壁や天井と取り合うし、カーテンボックスが付いたりする。メーカーは、基本的に自分のところの製品しか分かってないので、他の製品と調整はゼネコンの役目。

さて、これらの図面作成が、ソフトウエア開発に対応させるとプログラミングにあたるのだろう。各サブシステムの作成と、全体の調整と。

で、こうして作成した図面をもとに製品がつくられて、現場に納入され、建て込まれていく。何の問題もなく、現場に付けば良いのだか、アルミの窓がコンクリートの開口部より大きくて嵌らないとか、窓がずれて付けられていて、カーテンボックスが付かないとか、いろいろ問題が起きる。まあ、そうゆう時は、製品を作り直すしかないのが通例だけれど。

さてさて、では、こういう製品を現場に立て付ける工程は、ソフトウエア開発でいうと何んだろう?
これは、完全に対応している訳ではないが、「テスト」に当たるのだろう。

建築の世界では、設計と施工とで役割が分かれていて、別の企業が行うことが一般的であり。それに応じると、ソフトウエア開発では、プログラミングとテストを分離するのが良さそうに思える。

どうだろう?