玄録

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

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

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

2004.12.03

  • Facebook
  • mixi
  • hatena

 プログラミング生産性に個人差が発生する主な要因としてプログラム構成力をあげましたが、この「構成力」についてもう少し詳しく考察します。また、考察を通じて「なぜこの能力があると開発効率が上がるのか」を報告します。

「プログラム構成力について」
 プログラム構成を評価する項目として、「分かりやすさ」「拡張しやすさ」「性能」の3つをあげることができます。

 「分かりやすさ」とは、記述したプログラムコードそのものの分かりやすさをさし、例えばプログラムコードの行間に分かりやすく(効果的に)コメントを記述していることや、自分しか理解できない複雑な処理を組み込まないこと等で判断されます。プログラムを書く際に自分が記述したプログラムコードが他人にメンテナンスされることを十分に考慮しているかどうか、ということもできます。

 「拡張しやすさ」とは、プログラムを修正したり、後から機能を追加する場合も考えてプログラミングされているかどうかをさします。例えば、共通処理の関数分けをしておいたり、関数のインタフェースを汎用的に用意していたりすることなどで追及することができます。

 「性能」とは、アプリケーション(プログラムの集合)を動作させた時の速度のことで、性能を考慮したプログラミングとは、基本的は無駄な処理を行わないようにすることです。プログラムをする前に処理全体および記述するプログラムを一通り想定し、どうすれば性能が良くなるのかをあらかじめ考えておく必要があります。

 次に上記で説明した3つの要素(分かりやすさ、拡張しやすさ、性能)を満たすことが開発効率の改善にどう繋がるのか考えてみましょう。

 プログラミングのスピードが速いことを、開発効率が良いと判断することができます。プログラミングスピードが速いプログラマーは、なぜ速いのでしょうか。それは、コーディングしているプログラムがどのように実装されるべきか、頭の中で既に考えているからであり、さらに、その考えるスピードそのものが速いからです。考えるスピードを速くするために必要なことは、まず、作成するアプリケーションの動作を具体的に思い描くこと、そして実装するプログラムの作りをシンプルに分かりやすくすることです。シンプルに分かり易くすることで、事前に想像・構成し、頭の中で想定しやすくなります。

 また、彼らはプログラミングの最中にプログラムを修正したりする際に、修正箇所を少なくしたり、修正による影響範囲を考慮しないで済むように事前に用意しています。それは、共通部分を関数化したり、関数のインタフェースを工夫することで、実現されています。通常は最初に記述したプログラムをそのまま使える事はほとんどなく、何かしら修正や改修が必要になるため、修正の効率を上げる事は開発効率を上げる事に非常に役立っています。また、アプリケーションの性能問題が発生し、その原因がプログラムの構造にある場合がありますが、あらかじめ性能を考慮しこの問題を避けることで、プログラミング工程での手戻りを減らす事が出来ます。これは、構成をシンプルに分かりやすくすることで障害を減らし、障害対応にかかる時間を短縮する場合にも当てはまります。

《次回では、「プログラム構成能力の高め方、見極め方」についてご報告します》