一般にビジネス・アプリケーションのソフトウエア開発は,設計工程と製造(コーディング)工程に分かれる。ソフトウエア開発者は,設計者(主にSE)とプログラマとに分類され,設計者が書いた「仕様書(設計書)」にしたがってプログラマがコーディングする。(中略)つまり設計とは「設計者が仕様書を書き上げ,プログラマに渡すまで」ということになる。
プログラマは仕様書を読んで,その“行間”を読みとり,設計工程では予見できなかったコーディング上の問題を解決する必要がある。それが現実だ。
これは,他のエンジニアリングの世界とソフトウエア開発が大きく違う点だ。(中略)つまり仕様書というのは,設計図としての役割を果たしていない,ということになる。
筆者は最近,問題は仕様書の中身ではなく,むしろ,設計工程の捉え方そのものが間違っているせいではないか,と考え始めている。
米国のソフトウエア技術者Martin Fowler氏の論文「The New Methodology」(http://www.martinfowler.com/articles/newMethodology.html)だ。氏はこの中で「ソフトウエア開発はすべてがデザイン(設計)であり,製造工程に相当するのはコンパイラとリンカーを動かしているときだけ」と述べている。また「ソースコードこそ仕様書(設計図)。コーディング作業までを設計ととらえるべき」と主張している。
この考え方は,従来の,設計者/プログラマという関係を根底から見直す視点のように筆者には思える。
コーディングまでを設計ととらえ直すことは,硬直した現在のソフトウエア開発を変えるキッカケになるかもしれない。ち密な仕様書を作ることよりも,いかに優れたコードを作るかに視点が変わるからだ。