玄録

玄録は、秀玄舎の事例を通した、
実践研究の成果をご報告する不定更新の
ビジネスレポートです。

プログラミング生産性の個人差

プログラム構成力(前編)

2004.11.26

  • Facebook
  • mixi
  • hatena

 プログラミングの生産性を左右する3つ目の要素は、プログラム構成力です。プログラム構成力とは、プログラムのロジックを構築する能力のことで、一般的には“(プログラミング)センス”と呼ばれています。ロジックを構築する際、プログラマーは保守性・性能・拡張性等を考慮しながらプログラミングを行います。プログラム構成力の高い人がプログラミングを行うと、無い人に比べて10倍以上のスピードで開発が出来ることがあります。

 プログラムを記述する場合、最初から全ての構成(プログラム全文)を考えることはなかなか出来ません。そこで構成を考えながらプログラミングをすすめることになります。プログラム構成力の高い人は、保守性・性能・拡張性等を踏まえた上で段階的にプログラムの構成を組み上げることが出来ます。

 段階的に構成を考えるには、物事を順序だてて考えて整理できる力が必要になり、センスがある人はこの「物事を順序だてて考えて整理する」スピードが速いといえます。構成力(センス)が弱い人の場合、プログラミングの作成速度が遅いだけでなく、性能が悪い、メンテナンス性が低い(作った本人しか修正出来ない)、品質が悪い(障害が多い)等の問題が発生し、ビジネス利用のためのソフトウェアとしては不適切になり、障害修正や作り直す必要が発生する等のリスクも発生してしまいます。

 プログラム構成力を高めることプログラム言語を覚えるのと同じだと思われがちですが、実際には全く異なるものです。プログラム構成力(センス)がある人は、どんな言語でプログラミングしても、ある程度覚えてしまえば開発効率を高めていくことができます。逆に一つの言語をずっと続けていても(言語を覚えていっても)必ずしも開発効率やロジック構築の能力が上がるとは限りません。

 これら3つのスキル(「プログラム言語の習得」、「プラットフォームの理解」、「プログラミングの構成力」)の個人差が、プログラム開発効率=生産性の差となって現れます。つまり、これら3つのスキルを上げる事がプログラマーのスキルアップに繋がりますし、ユーザーが(ベンダーのプログラマーのこれらスキルを)見極められればベンダーのコストパフォーマンスを計る事が出来ます。

 言語やプラットフォームに関しては、参考書や資格を通して勉強することで身につける事ができますし、見極める場合も資格や過去の開発経験を見ることで判断することが出来ます。しかし、構成力については、センスが必要と言われ個人差が出やすいため、見極めることは困難です。教育の観点から見ても非常に難しいスキルといえます。システムを提供する会社(ベンダー)にとっては、開発者のプログラム構成力をいかに育てるかが重要になります。

《次回-後編-では、「構成力」について、さらに少し掘り下げてご報告します》