
プログラマは「プログラムの翻訳機」ではない
システム開発の現場では、設計者(SE)と実装者(プログラマ)の間で齟齬が生まれることがあります。たとえば、SEがまとめた設計書に誤りがあり、そのとおりにプログラムを作った結果、テストで正しく動かない――そんな場面を目にしたことがある方も多いでしょう。
このとき「設計書どおりに作ったのだから、自分に責任はない」と考えるプログラマもいるかもしれません。確かに、設計書を作成したSEには責任があります。しかし、それだけで済ませてしまっていいのでしょうか。
設計フェーズを終えて実装に入る段階で、プログラマも仕様の理解を共有します。開発を進める中で「これはおかしいのでは?」と感じることがあれば、本来はそこで確認や指摘をすべきです。違和感を見過ごしてしまえば、結果的に「設計どおりだが動かないプログラム」が生まれてしまいます。
もし本当に「設計書をプログラムに翻訳するだけ」でよいのであれば、人間のプログラマは不要です。自動生成ツールで充分でしょう。あえてプログラマが必要とされるのは、機械にはできない「判断」や「気づき」を持ち込めるからです。
もちろん、すべての責任をプログラマが取れということではありません。開発フェーズに次いで行われるテストフェーズでは、プログラマが埋め込んでしまったバグを、SEやテスターが見つけ出してくれます。同じように、プログラマも「設計書通りだから」で思考停止するのではなく、少しでも違和感を覚えたなら、その理由を考え、積極的に指摘すべきです。
SEとプログラマは、一方的に責任を押しつけ合う関係ではなく、互いのミスを補い合う責任を共有しています。「自分の担当範囲だけ守ればいい」という姿勢ではうまくいきません。プログラマもSEも、それぞれの役割をこなしつつも、自分が行った作業がシステム全体に影響することを認識し、メンバーと協力して気づいたことを指摘し合う。その積み重ねこそがプロジェクトを成功に導きます。プログラマに求められているのは、単なる翻訳者ではなく、チームの一員として主体的に関わり、成果に責任を持つ姿勢なのだと思います。
※このコラムは、筆者が個人事業主時代に執筆した文章を推敲しなおして再掲したものです