これは私が関わったプロジェクトの環境がそういう考えに至らしめた結果なのかもしれないが、プログラマーは設計書の通りにコードを書ければいいというわけではないと考えている。むしろ、曖昧な部分の大きい要件定義書レベルのもの、あるいは基本設計書レベルのものから自力で詳細設計+実装できるくらいは欲しいところである。基本設計あるいは要件定義ができればいうまでもないが。
ウォーターフロー形式で進むプロジェクトでは、上流工程と呼ばれる要件定義、基本設計からはじまり、下流工程と呼ばれる基本設計、コーディング、テストと続く。
実のところ、私の場合は上記のような進め方をするプロジェクトにあまり関わったことがなく、プログラマーの意味合いが若干ズレがあるのかもしれないが、ここではプログラマーは詳細設計書通りにコードを書ければいいという風潮があるというそうである。設計はシステムエンジニアが行い、実際のコーディングはプログラマーが分担するというそうである。
とはいえ、個人的には上記のような発想あるいは考え方には違和感があるのは否めない。個人的にはシステムエンジニアとプログラマーの違いがわからない部分が大きいのである。
というには、私が経験したプロジェクトのほとんどは詳細設計書は皆無、基本設計書あるいは仕様書は要件定義レベルで「こういうことができる」程度のことしか書かれていないものが多かった。特に追加開発はそれが顕著だった。
これは実際にコーディングやテストをするのはいうまでもなく、設計(それも実装したコードから出力させるレベルで)、場合によっては要件定義も自力で行うというほどであるが、こういった場合は、いわゆるシステムエンジニアとプログラマーを兼任するということになるということだろうか。
上記の経験から、個人的には実際の状況をあまり知らないからなんとも言えないが、システムエンジニアとプログラマーを区別するという考えは理解できない部分がある。それよりも、どうやったら効率的にプロジェクトを進められるのか、どうやったら品質の高いものを作れるのかにフォーカスを当てるのが望まれるのではなかろうか?
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。