システム構築における開発者とユーザーの関係に似ているものには、何があるだろうか?真っ先に思い浮かぶのは、建築における施工者(開発者)と施主(ユーザー)だ。

 プロジェクト型の仕事であればなんであれ、システム開発との共通点がある場合が多い。なかでも建築は、他の業種に増してシステム構築と近い。それは、開発者とユーザーが共同でプロジェクトを進めていくからだ。マスタースケジュールやWBS(Work Breakdown Structure)などシステム構築で使われる言葉は建築業界で長く使われてきた用語でもある。

 逆に、大きな違いがいくつかある。一つは、建築における「設計事務所」の存在だ。建築プロジェクトでは、設計は設計事務所、施工はゼネコンや工務店といった役割分担になっている設計・施工分離型が多い。一方、IT業界ではほとんどの案件が、設計・開発一体型である。

 建築における設計・施工分離型の場合、設計事務所が施主(ユーザー)の要求を洗い出して整理し、実現するための設計図を書き起こす。外観はどういう雰囲気で、間取りはどうしたい、壁の色は何色にしたい、といった施主の要求を図面にして「見える化」する。プロの観点からデザインや空間処理の手法を示したり、厳しい建築法令の範囲内に収めたりする。ときには、施主が小さな色見本で壁の色を指定した場合に「壁全体だとどぎつくなって実用的ではない」などと要求の修正も行う。こうしてユーザーの要求との違いを取り除き、工事リスクを低減させる。

 同時に、設計事務所は施工者に対して「監理(Supervising)」を行う。監理とは図面通りに工事が行われているかどうかをチェックすること。進捗管理や安全管理のように、ゼネコンなど施工者側の現場監督が担当する「管理(Management)」とは異なる。監理者と管理者が独立分離しているので、工事ミスが発生した場合、設計事務所は激しく施工者を指導する。