GeekFactory

int128.hatenablog.com

直営社員にプログラミング能力が必要なたった一つの理由

大きなSIerでは社員はプロジェクト管理だけを行い、実作業の大半を外部に委託するところがほとんどです。直営比率が低いところは管理作業しか行わないため、入社してから設計書もプログラムも書いたことがない人は割といます。感覚的には、直営比率が1/3を超えるプロジェクトは社員が自ら現場で作業することが可能で、若手社員にも実作業を経験する場が与えられる気がします。

大きなSIerの小さなプロジェクトはたいてい同じ構造をしていて、ソフトウェア開発自体を丸ごと外注していることが多いです。一括請負契約ですね。この場合、委託元と委託先の責任境界は明確で、委託業務に社員が深く関わることはあり得ません。それでコストが増えたら喧嘩になります。残念ながら、このような構造では社員がソフトウェア開発の実作業を経験することは不可能です。

私は、直営社員もコーディングやテストを自ら行える能力が必要と考えます。その理由は、現場で正しい判断が必要になるからです。ソフトウェア開発では要件を実装に落とし込むまでに必ず何らかの意志決定が発生し、それによってコストが大きく変わります。例えば、保守性の高いコードを書けば保守コストが下がりますが、どこまでコストを掛けるかは経験でしか分からないと思います。アーキテクチャ設計を誤れば動かないコンピュータのいっちょ上がりです。ソフトウェア開発を経験した社員が正しい判断を行うべきと考えます。

他に理由があるとすれば、見積もりや設計の妥当性を見抜く力が必要だからでしょう。どこの現場にも手抜きの設計は必ずあります。ドキュメントは形式ではなく内容をレビューすべきです。実装に落ちるまでに必要な判断を知っている人がレビューした方がよいと思います。ソフトウェア開発を経験した社員がレビューすべきです*1

プログラミング能力が現場での判断力に結びつくことは偉い人にはなかなか伝わらないかもしれません。しかし、教育は投資なので偉い人の協力は不可欠です。これからも根気強く現場を変えていきます!

*1:レビュー自体を第三者に委託している場合はあります。この方法もアリとは思います。