近年、プログラマ業界は大きく2つの形態に分かれていると言われています。労働集約型と、知識集約型の2つです。労働集約型とは、労働者1人当たりの設備投資額が低い労働形態のこと、つまり業務を行うにあたって、機械などの設備の働きよりも、人間による働きの割合が大きい、サービス業などに代表される形態です。それに対して知識集約型とは、知的労働力が商品になっているような労働形態のことです。簡単に言うと、専門的な知識を必要とする業務を行っている労働形態で、投資ファンドやコンサルタントがそれにあたります。じゃあプログラマは知識集約型の職業じゃないのと思った方もいらっしゃるかもしれません。しかし、この業界は、圧倒的に労働集約型が多いのです。
労働集約型の形態をとっている企業はSI業界に多いといわれています。SIとはSystem Integration(システム インテグレーション)の略で、システムの企画や設計、開発から運用までを一貫して請け負っている会社のことです。この業界では、システムを開発する際に、その規模や作業内容を人月(1人の労働者が1カ月当たりどれだけ作業できるか)で見積もりを行います。1人1人の作業の積み重ねで業務を行っていくのですが、ここで問題なのが、1か月の作業量は当然労働者のスキルによって変わってきます。結果として、スキルがまだ未熟な労働者は大きな負担を追わなければならず結果としてサービス残業が多くなってしまいます。これが労働集約型と言われる所以であり、労働集約型の問題点でもあります。
このような問題が起こるのは、この労働形態では、「コストカット=人件費を削ること」という構図になっているということです。スキルが身についてなかろうが、サービス残業が増えようが、それ以外に削ることのできる部分がないのです。また30代~40代の離職率が高いのも、加齢により賃金が上がってしまった労働者はコストがかかるためあまり好まれないという理由からです。35歳定年説とも言われています。
では労働集約型の企業が知識集約型へと変わっていくにはどうすればよいのでしょう。それは生産性を上げていくことにあります。ただ生産性を上げるといっても、先ほどのようにサービス残業が増えては意味がありません。作業のスピードおよび精度を上げていく必要があります。具体的には、作業の自動化や労働者の教育といった方法があります。作業の自動化をすることによって、まずスピードの部分が解消されます。しかし、自動化をするシステムを作るには知識が必要となります。システムを自動化するということは必然的に知識を身に着けるということになります。
では、その知識をどのように身に着けるかというと、教育である。この場合、教育と言っても知識を与えていくだけではなく、どのように知識を身に着けるかを指導していくことでもある。知識が全労働者に浸透していけば、精度の高い業務が可能になります。しかし、今まで労働集約型としてのやり方が定着しているところに、自動化や教育を行う時間があるのか、という疑問も残っています。
プログラミングが早い人、ただ早いだけではなく本サイトのテーマの通り、生産性の高いプログラマの特徴を紹介します。生産性の高いプログラマは、広い視野を持って全体を俯瞰しています。目の前にあるコードだけを見るのではなく、最終的な完成形の一部としてプログラムを捉えられるかどうかで、その完成度には違いがでます。コードを書く速度はとにかく毎日書くことにつきます。毎日書いて、かつ、公開することがポイントです。
システム開発プロジェクトにおいて生産性向上をめざすにあたっては、陥りがちな落とし穴にも気をつけなければなりません。仕様も納期も決められた中での開発なのか、開発しながら仕様を決めるケースなのかによっても、生産性向上のための選択は変わります。目的に合わせたものを採用すること、トップダウンで決定しないこと、導入コストを考えること、そして導入後の現状確認を怠らないことが、落とし穴を避ける秘訣です。
プロマネという道を選択したがために、好きなコーディングがなかなかできなくなってしまい不満があるなら、プログラマに戻り、転職やフリーランスへの転身を考えてみるのも一つの手です。ただし、どちらにしても本当に自分がやりたいことを実現できるのかどうかを見極めて行動に移しましょう。転職の場合は選考の時点で確認を行い、フリーランスの場合は目的や方向性がマッチするようであれば多くの案件をこなし、場数を踏んで実績を積みましょう。