夢の実現には、多くの困難を伴うものです。莫大な資金を投入して苦労に苦労を重ねた末に実現した技術というものが世の中には数多くありますが、それに見合った結果が伴うのかどうかは導入してみるまで分からないものです。
近代化以降、多くの人が機械技術、IT技術の恩恵を受けています。そしてそれは労働力としての人々の流れを、ブルーカラーからホワイトカラーへと押しやってきました。作業的な仕事はどんどん機械に取って代わられており、その分、その人が担うべき仕事は単純なものではなくなっています。そのため生産性を計るということも、一見するほど簡単なものではないのです。ここでエンジニアがシステムを開発する現場を考えると、生産性が高いとは開発までの時間が短いことを指すのか、あるいは品質が高いことを指すのか、それとも費やす労働人口を出来るだけ少なくすることを指すのか、という判断は、ケースバイケースといえるでしょう。つまりそのプロジェクトにおいて何を目指すのかという目標が決まらない限り、その生産性の向上を図る最適な方策は決まらないというわけです。 例えば単純に時間さえ短縮させられればよいというのであれば、手っ取り早く人数を注ぎ込めばよいと考えがちですが、人が増えれば調整のための時間が掛かってしまい、効果を相殺しかねないのです。そこで生産性の向上を、「時間」「難易度」「労力」という大きく3つの要素から考えることは大切であり、これを手がかりに目標を設定して、そのプロジェクトにとって最適な手段を選ぶ必要があるのです。
このように目標を設定するためには、まず最初にクライアントの意向を十分に汲み取って、それをプロジェクトに関わるメンバー内で正しく共有しておく必要があるでしょう。そのような下準備があることで、プロジェクトに向かうエンジニアのやる気を引き出すことが出来ます。現場からの提案は、自らその生産性を向上させようという意識の表れであり、歓迎すべきことです。そのような「やる気」がチーム全体に及ぼす生産性の向上は、それだけを外から客観的に計ることは難しいものですが、それでも結果に影響を及ぼす点は間違いないでしょう。従って生産性の向上には、「時間」「難易度」「労力」という以外にも様々な要素が絡んでいるといえます。それは例えば、試行錯誤する勇気かもしれません。これまでのノウハウの蓄積以外にも、新たな挑戦を現場で行うことが出来れば、失敗の危険もありますが、生産性が飛躍的に向上するかもしれません。その一方で何も新しいことを挑戦せずにこれまで通りのやり方を続けるだけでは、同じことを繰り返して習熟することによる「ある一定程度」の生産性の向上は見込めるでしょうが、それ以上には決してならないでしょう。