先達はあらまほしきことなり

デジタルテクノロジーの活用と展望

全部こなせるプログラマーは少ない

多くのプログラマーは一部の改修を手伝ったことしかない人がほとんどだ。プログラマーといってもひとりでプロダクトを生み出せる人は少ない。私の経験上の統計では0.1%程度かもっと少ないかもしれない。多くのプログラマーの日常業務は、既存のプロダクトの一部の改修を手伝うことだ。文系歓迎、初心者歓迎で人材が水増しされている業界という側面があることは否めない。テクノロジーとしてプログラミングを捉えている人が少ないということでもある。

独自のプロジェクトを経てエキスパートになる

ユーザーから要望を聞き、要件定義をまとめ、設計書を書き起こし、製造を経て、テストでバグを取り切り、品質を保証した上でリリースする一連の開発工程すべてひとりでやったことのあるプログラマーは希少だ。逆にいえば、工程の一部分だけを担当するケースや、複数人で手分けしてやるケースがほとんどだ。通常業務の世界だけでは、チームや組織で開発を進めていくスタイルにならざるをえないので無理もない。ただ、プログラマーとしてのスキル向上という面では、ひとりで全工程をやり切ることでしか身につかないものがある。エキスパートになるには、通常業務とは別の機会で、自分だけのプロジェクトを実行することが大事だ。

すでに記した内容を含むが、ひとりで全部できるプログラマーとは以下の3条件を満たすエキスパートのことだ。

1.ゼロから完成品を作り上げることができる
2.要件定義からリリースまでの全開発工程をこなせることができる
3.インフラの構築ができる

1と2はすでに記した通りだ。
3について簡単に記したい。

インフラ構築は通信環境を作ること

アプリケーションはまず開発環境で開発される。開発環境とは作業用のPCであることが多い。開発が進むと、開発環境から実際に利用される環境に配置し直す。この際に必要なのが、インフラのスキルだ。開発環境と実際の利用環境の違いにより、対処することが増えるからだ。開発環境では無視できたことが、実際の利用環境では追加で実装する必要があるなどだ。プログラミングスキルだけでは対応できない。技術書にも載っていない知見が必要になるケースも少なくない。例えば、AWSの最新のデータベース機能を利用する場合には、Webで調べるしかない。