/note/social

ソフトウエア開発は何に似ているか?

最も広く知れ渡っているものを挙げるとすれば「建築」だろう。ソフトウエア開発を「建築物を作ること」ととらえ,開発プロセスを大きく上流(設計)工程と下流(建設)工程に分けるという考えは,単なるメタファにとどまらず,ソフトウエア開発の様々な面に大きく影響を与えている。

建築のメタファは,日本の企業情報システム開発の現場で,システム・インテグレータの組織や業界構造の形成にまで影響を与えている。ソフトウエア技術者は,設計職=SE(システム・エンジニア),製造職=PG(プログラマ)といった役割に分けられ,プロジェクトの体制も,まるで建設業界のように,建設(製造)部分は下請けに出すという構造になってしまっている。

建築に代わるメタファとして登場してきたのが,主にアジャイル開発の文脈で使われる「ガーデニング」だ。ソフトウエアを,建築物のような「無機物」ではなく植物のような「有機物」ととらえ,「作る」のではなく「育てる」と考えるのである。

ここでもう一度,ソフトウエア開発は何に似ているだろうかという冒頭の質問に戻ってみよう。その質問に対する筆者自身の回答は---

「ソフトウエア開発は,何ものにも似ていない」

---である。

既存の言葉に頼ってしまうと,それらの言葉のイメージや慣習に束縛されて,これからのソフトウエア開発というものを誤ってとらえてしまうように思えるのだ。