技術開発の多くは、生産性の向上を目的としています。生産性が高いということは、少ないコストで多くの成果をもたらします。近代以降の目覚しい技術開発の成果は、長距離輸送のために蒸気機関車が走ったり、夜でも活動出来るように電気が普及したりといった具合に、社会生活を営む様々な人の生活を着実に向上させて来たのです。そしてその開発された技術を利用することは、新たなビジネスチャンスを生み出し、更なる生産性の向上を果たすのであり、その担い手として現代のフリーエンジニアに期待されるものは大きくなっています。
ここでシステムの導入によって、生産性の向上を図ることは当然なのですが、システムの開発そのものにも生産性を上げる努力が求められます。IT投資に高額の資金を注ぎ込むことが出来た時代は過ぎて、今ではクライアントがシビアに費用対効果を計算するようになっています。不必要なまでに大掛かりなシステムを初期に導入してしまって、その能力のいくばくも使わずに運用されている例も少なくないのであり、これからのシステム開発にはクライアント側の意向や事情を十分に汲み取って、お仕着せではない使い勝手のよさが求められるのです。またシステム開発の手法も様々です。仕様と納期があらかじめ定まっている場合もあれば、開発しながら仕様の詳細を詰める場合もあります。それぞれにケースバイケースであって一概には言えませんが、少なくともシステム開発における生産性を考える上で、「時間」「難易度」「労力」という3点から判断する必要があるでしょう。もっともこの3点は互いに影響し合う部分もあるため、単純に割り切ることが出来るものではありません。例えば短時間に動作するものを開発することが出来れば、生産性は高いといえるのですが、そのために大量の労力を投入しなければならなくなると、そこで人が増えることによる調整のために時間を費やさなければならなくなってしまい、結果的にそれほど生産性を高める計画とはいえなくなるのです。
このように生産性を向上させるための方策が、時と場合によってはその効果を相殺してしまったり、あるいは逆に生産性を低下させる原因となることもあるので要注意です。もちろん生産性を向上させようとする様々な個々人による取り組みを、ノウハウとして一定の集団内や組織内に蓄積することは、更に生産性を向上させるために役立つでしょう。その一方で同じやり方が常に同様に生産性を向上させる結果を生むとは限りません。そこで現状分析を冷静に行って、結果の伴うような方法を厳密に選ぶ必要がありますし、更に導入後の運用実態から、フィードバックを受け取ることも大切なのです。