なぜIT人材が必要かという根本的な問い
興味深い文章がありましたので考察してみたいと思います。
ITって、複雑な問題や大量の問題を、能率的に解決するわけで。
なんで、ガタガタガタガタ~って人海戦術みたいに、IT技術者が何十万人も必要ってことになるんだろう。
考察
この問いには私の中で結論が出ているのですが、きちんとまとめたことがなかったのでよいチャンスになりました。
現在のIT人材の主なミッションは、非生産的なプロセスをITを使って生産的にすることです。昔は、紙と印鑑と帳票と電話ぐらいしかなかったわけですから、ネットワークとサーバー、クライアント、モバイルに囲まれた今の時代は間違いなく生産性は上がっていると思います。そして、それでも業務プロセスは絶えず時代の変化により変わるので、定期的な刷新が求められていきます。
さて、非生産的なプロセスを、ITを使って生産的なプロセスにするためには、いろいろな活動が必要です。まずは非生産的とは言え何をしているのかを明確にしなければいけません。これが要件定義です。どんなことをITを使って自動化するのか。この時点でそもそも非生産的なことに直面するので、この活動は非生産的です。また、ユーザー自身が気が付いていないこともあります。このフェーズをさぼると、ユーザーが望んでいないシステムが後々できあがることになり、プロジェクト全てが非生産的になってしまいます。
要件定義が終わったとして、ではそれをIT化するために設計を行うのですが、ここもまた骨の折れるところです。後続できちんとプログラミング(実装)できるように筋道を立てなければいけません。非生産的なことを記述していくことは非常にまた、時間がかかるものです。整理されていてスマートであれば楽なのですが、システム化するぐらいなので往々にして複雑で理解が難しいものです。
そして実装に入ります。プログラミングというのは結果だけ見ると鮮やかなのですが、プログラミングをすること自体は生産性の上がらない仕事です。なぜかというと、記述しているのは非生産的なプロセスそのものだからです。非生産的なプロセスを正しく記述して、これを自動化するから生産性が上がるのです。生産性が上がるのは最後の最後であり、プログラミング自体はかなり人間的な作業です。ただし例外として、設計から自動でソースコードを作成してくれるツールがあります。また、よくあるロジックがはじめからライブラリ化されているということで生産性を上げるケースがあります。実装については先人たちがたくさんの資産や工夫を残してくれていて日々技術革新が行われています。ですが、コンセプトとしては非生産的なことをITの言葉で記述しなければいけないのな何も変わりません。
要件定義にしろ、設計にしろ、実装にしろ、非生産的なことに対面してこれをITの言葉に翻訳することがIT人材の仕事です。だから、ITは最終的な形では生産性を向上させてくれるのですが、あくまでも最終的な成果物なのであって非生産的なプロセスに立ち向かうのがミッションだと思います。これをITの言葉にするためにはロジカルな思考が必要ですが、これを行える人材が大量に不足している、ということです。
IT人材は、ITのことだけに精通している人と思われがちですがそんなことはなくて、世の中の多種多様なビジネスのことを理解できるセンスがあり(業務知識と言われる)、これをしかもITの言葉に変換できるということが求められます。とすると、結構難易度は高いし、業務知識も業界によってさまざまなので細分化されますから、人材が大量に不足する、という表現になるのです。
SI以外にも必要なIT人材
ここまでのお話は主にSIと呼ばれる領域で、もちろんネットワークの専門家、データベースの専門家、クラウドサービスの専門家、ソフトウェアの専門家、AIの専門家、分析専門家・・・。ITだけに閉じてもいろんな職域があります。
デジタルトランスフォーメーションという概念がもたらされたことにより、もはやいろんな業界を超えてIT人材が必要となっています。むしろ一般教養としてITの基礎知識はないと非IT人材であってもなかなか立ち行かなくなっている印象です。今後、ビジネスをするならITの知識があることが前提になっていきます。
ITは生産性を高める魔法のようにとらえられるのですが、いやいやどうして、IT人材は非生産的なプロセスに立ち向かっていく戦士なのです。こういうふうに捉えて頂ければ、IT人材がいかに大量に必要なのかわかっていただけると思います。世の中がまだまだ非生産的なプロセスにあふれている、ということです。