こんにちは。
プログラマという職業は人よって生産性の差が
すごく大きく10倍、100倍の差がつくことも
珍しくないとよく言われます。
今回は、なぜ、プログラマという職業は人によって
生産性が大きく異なるのか考えてみます。
●1.プログラムの実行速度の違い
プログラム自体の実行速度の違いは、デバッグ・テストなどの
手間を考えると、生産性に大きな影響を与える要因と考えられます。
一度実行するたびに、1分かかるプログラムと、
1秒で終わるプログラムでは、60倍の差があります。
そして、デバッグ・テストを行う場合、何度もプログラムを
実行させるため、その度に時間を浪費してしまいます。
また、大きなプログラムになってくると、
プログラムをコンパイルする時間も生産性に関係してきます。
プログラムをモジュールごとに分けておけば、必要なモジュールのみ
コンパイルすることができるので、大幅に時間を短縮することができます。
プログラムの実行速度は、ファイルにアクセスするプログラムであっても、大きな差がつく事があります。
「単純な作業であってもやり方しだいで実行速度がぜんぜん違う」、
このような所がプログラマという職業が生産性に差がつきやすい
理由の一つです。
●2.仕様決定能力の違い
仕様決定能力は、顧客が望む要求をうまく聞き出すことが
できる能力、いわゆる、コミュニケーション能力です。
コミュニケーション能力がなくても、仕様決定自体はできますが、
顧客の要望を反映したものを作成できないため、完成した時に
機能変更の要求が来ることになるでしょう。
優れたプログラマならば、顧客が望む要求を聞き出した上で、
機能を拡張する時の事も考えて仕様を決定することができます。
プログラムの機能拡張は、車・住宅などといった製品と違って
頻繁に要求されるものです。このため、プログラマという職業では、
仕様決定能力の違いが、生産性に大きな差を生み出すものと考えられます。
●3.作業の自動化
プログラマという職業が他の職業と圧倒的に違う点は、
自分が行う作業を自動化できるという点にあります。
バッチファイル、シェルスクリプトを使用すれば、
ファイルの入れ替え、名前の変更、プログラムを指定時間に
実行する等単純作業ならば簡単に自動化することができます。
正規表現を使うことができれば、文字列検索・置換などに
活用できるため、自動化できる作業に幅ができます。
簡単なスクリプト言語の作成できれば、プログラム作成自体も
部分的に自動化することができたりします。
デバッグ・動作テストに関しても、プログラムをうまくモジュール化して
おけば、入力と出力を適当に与えるプログラムを作成し、
デバッグ・動作テストも大幅に自動化できます。
他の職業では、作業を自動化するとなると大型な機械を
導入するなど予算が非常にかかり、個人ではできるものでは
ありませんが、プログラマはちょっと努力をすれば個人でも
自動化を実現することができます。
これが、生産性に差がつく一番大きな理由ではないでしょうか。
今回はプログラマの生産性についてお話しました、
個人の努力しだいで、生産性に格段の差がつくのはこの職業の
醍醐味でもあります。
そして今は、Webアプリケーションがどんどんと進化し、
大きなビジネスチャンスが生まれようとしています。
就職活動中の方は是非プログラマという職業についても
ご検討ください!