前の会社で、オフショア開発へシフトしていくときに一番悩んだのが、人材育成です。

いきなり設計スキルは身につかない

コーディングや単体テストなどの製造作業をオフショア開発に委託すると、自社では設計やテスト作業だけが残ります。しかし、製造作業を経験していない人に、設計やテストのスキルは身につけてもらうのは非常に難しいです。

コーディングの知識がないと、設計していて何ができて、何ができないかを判断できませんし、システム単位のたくさんの機能や要求を考えるためには、プログラムのロジックをじっくり考えて訓練する必要があります。
最初は小さなプログラムを作るのにも、いちいちフローチャートを書いていたのが、いつの間にか大きなプログラムをいきなり書けるのは、訓練によって設計力が身についているからだと思います。
しかし、オフショア開発へのシフトが進むと、新人達の訓練の場がなくなってしまいます。

人によっては、基本設計だけをやらせれば良いという人もいます。そのためにはコーディングの知識などはいらないそうです。しかし、実際に育成されたSEを見ると、お客様の要求を羅列するだけでとても技術者とはいえない人になっていました。業務ならエンドユーザーが詳しいわけで、SEの価値は技術力にあると思います。技術力を否定するのはSEを要らないと言っているのに等しいと思います。

アーキテクトを育てることはもっと大変

また、アーキテクトが育ちにくいという問題もあります。
製造をオフショア開発に委託する場合でも、作り方は日本側から指示を出す必要があります。
フレームワークの選定やカスタマイズ、共通クラスの開発、設計の指針、コーディング基準の作成など、アーキテクトにはたくさんの仕事があります。
アーキテクトは誰でもできるわけではなく、技術的に優れていて、新しい技術に敏感で、勉強熱心な人でなければ勤まりません。
このような人は、十人に一人しかいないので、一人のアーキテクトを育てるためには十人のプラグラマを育成して適性をみる必要があります。
しかし、十人分の製造作業を捻出するのは結構難しくなってきています。

日本のIT産業を空洞化させないために

いろいろ悩んだのですが、いい案は浮かびませんでした。
発注の一部を国内に残し、新人に作らせるのが精一杯でした。
現在は、良いアーキテクトがいるので困っていませんが、その世代が管理職になるころ(もう目前に迫っています)に一気に問題化しそうです。

システム開発コストを低減するためには、オフショア開発か自動化しかないので、今後もオフショア開発へのシフトは今後も進んでいくと思います。しかし、空洞化が進むと日本のIT業界自体が弱体化するのではないかと危惧しています。