若手プログラマの皆さんは、プログラマの生産性について考えたことはあるでしょうか?プログラマのスキルレベルには激しい差がありますよね。まったく同じプログラムを書いても、プログラマのレベルによって、完成までの速度、完成度の高さ、コードの美しさまで、あらゆる面で違いが出ます。この差がプログラマの生産性の違いです。
プログラマーが逐一手作業でコード入力していかなければならない「労働集約型」のプログラミング業界では、多くの関係者が仕事の生産性向上に頭を悩ませています。一人一人の社員のプログラミングスキルの底上げを図る、使用するフレームワークのバージョンを最新のものにする、などの対応策がありますが、特に有効なのが「上流工程の改善」です。プログラミングの設計段階で工夫し、自動化できる部分を極力自動化すれば、無駄なエラーを減らして精度を高めることが可能となります。無駄な見返しも減り、プログラムの生産性向上に大きく寄与します。 ▶詳細はこちら
プログラミングにおいて、コメントは非常に重要な機能です。プログラムの動作に直接影響を及ぼすわけではありませんが、エラーが起きた際などにコメントがあると問題点を発見しやすく、仕事の生産性向上につながります。しかし、コードを見ればすぐに分かるようなコメントを大量に書くのは単なる重複であり、好ましくありません。コメントを書く際は、コードに記述されていない内容、つまり「高水準知識」について解説することを意識しましょう。そうすることで無駄なコメントを減らすことができ、コードをきちんと整えることが可能となります。 ▶詳細はこちら
ペアプログラミングを導入すると、ソロの場合に比べてプログラミングの開発段階で品質の高いものを仕上げる傾向があります。ペアであれば単純には人件費が二倍になる計算ですが、開発するソフトウェアの寿命が長く、投資を回収する期間がある程度見込める場合には、事情が異なります。開発期間中に欠陥を修正してより完成度の高い商品を検証にかけられるため、その後の検証や現場の段階でのコストを大幅に削減でき、従って全体としてはペアプログラミングの方が経営上有利な選択となる場合があるのです。 ▶詳細はこちら
プログラミングの上達が早い人にはいくつか特徴があります。毎日コードを書き、それを公開することで綺麗なコードになるよう意識しています。コードは単体のものだけでなく、テストコードやソフトウェア全体のものも書き、作業を行う上で全体像が見られるような練習をしています。分からないことや問題点はその都度調べながら、少しずつでも毎日続けています。そのようにして書き上げたコードを公開することで、誰かに見られるかもしれないという気持ちからより美しく書こうという意識が持てます。また常にハックするテーマを持つようにしているのも特徴です。 ▶詳細はこちら
プログラミングが早い人、ただ早いだけではなく本サイトのテーマの通り、生産性の高いプログラマの特徴を紹介します。生産性の高いプログラマは、広い視野を持って全体を俯瞰しています。目の前にあるコードだけを見るのではなく、最終的な完成形の一部としてプログラムを捉えられるかどうかで、その完成度には違いがでます。コードを書く速度はとにかく毎日書くことにつきます。毎日書いて、かつ、公開することがポイントです。
システム開発プロジェクトにおいて生産性向上をめざすにあたっては、陥りがちな落とし穴にも気をつけなければなりません。仕様も納期も決められた中での開発なのか、開発しながら仕様を決めるケースなのかによっても、生産性向上のための選択は変わります。目的に合わせたものを採用すること、トップダウンで決定しないこと、導入コストを考えること、そして導入後の現状確認を怠らないことが、落とし穴を避ける秘訣です。
プロマネという道を選択したがために、好きなコーディングがなかなかできなくなってしまい不満があるなら、プログラマに戻り、転職やフリーランスへの転身を考えてみるのも一つの手です。ただし、どちらにしても本当に自分がやりたいことを実現できるのかどうかを見極めて行動に移しましょう。転職の場合は選考の時点で確認を行い、フリーランスの場合は目的や方向性がマッチするようであれば多くの案件をこなし、場数を踏んで実績を積みましょう。