ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

設計と実装の工程を分けることと、設計と実装の担当を分けることは違う

Wikipediaより引用

要求分析や計画立案せずに、プログラミングしながら設計することも可能だが、複雑な大規模プロジェクトではそのような工程の省略は選択肢として考慮されないのが普通である。

これは、設計と実装の工程を分けるか、実装しながら設計もしてしまうかという話。
確かに、ある程度の規模のシステムを、やみくもに作ってもうまくいかないケースはあると思う。
まあ、プロジェクトチームの人数や、個々人のスキルによって、
対応出来る規模は大きく変わるのだろうけど。


一方、

プログラミングの前に設計工程を置くことで、ソフトウェアの対象領域の専門家と設計者がプログラマと共同で作業し、ソフトウェアの利便性と技術的正当性を高めることができる。

とあり、
「ソフトウェアの対象領域の専門家と設計者がプログラマと共同で作業し」
ということなので、設計しかしないSE、プログラミングしかしないPGのような分担ではなく、
設計者とプログラマがそれぞれ、設計と実装の工程に絡んでいく
というのがあるべき姿のように思います。


具体的には、

- 設計工程 実装工程
設計者 1. 設計書作成 4. ソースレビュー
プログラマ 2. 設計書レビュー 3. プログラミング

みたいな感じじゃないかと。


こう整理すると、設計と実装の工程を、全く別々の人に分担させて、
きっちり分けるというのは、レビューが効かないという意味で無理な気がします。




余談ですが、前回のエントリに対して、
そこでペアプロみたいなコメントをいくつかいただいたのですが、
これって、上の表で言うところの、
3. プログラミングと、4. ソースレビューを同時にやってるってことですよね。
ていう意味では、1. 設計書作成と、2. 設計書レビューを同時にやる、
ペア設計ってのもあっても良さそうですが、あんまり聞きませんね。。