そのやり方では生産性は上がらない!
生産性以外のファクター
本来は生産性とは違うファクターも多くあるので、それだけを考えていれば良いというものではありませんが、生産性という言葉はかなり大きな意味で使われていることがほとんどです。例えば、開発メンバーのやる気が上がった、というメンタル的なものも生産性向上の1つとして数えられているのではないでしょうか。そして、それ自体は間違いとは言い切れません。やる気も生産性には大きく関係します。
つまり、生産性の中にたくさんの要素があると考えられます。早期に高品質な開発ができるということは生産性が高いと、ある側面では言うことができますが、ものによってはどうしても時間のかかることもあります。そして、それが生産性が低いということなのかどうかは別問題です。
例えば、銀行のシステム開発のような精密性が要求される場合には、開発速度よりもバグがなく安定運営できることが要求されます。こういった場合には当然ですが即座にサービスアウトできる生産性とは別の指向性があります。また、単純なコーディング作業が必要とされるようなシステムであれば、それほどスキルがなくても作業効率さえ上げれば高い生産性を獲得できることもあります。
何が必要とされているのかはその場面によって大きく異なります。別の言い方をすれば、どういうことで生産性を上げる必要があるかを区別する必要があります。システム開発をする上では、その性質上、開発結果が生産性と非常に緊密に結びついているため、このように何でも生産性に関連づけられた話になりますが、生産性に含まれているそれぞれのファクターは、生産性に内包される別々のものとして考えたほうが良いでしょう。
まとめ
生産性とは何かという点から生産性向上の言語選択やその注意点などについて述べてきました。生産性という言葉自体があいまいなため、便利な言葉として使われていますが、その内実、何を目指せば良いのかわからない状態になっていることが多々あります。
生産性が向上すると言われている取り組みやソリューションはたくさんあります。そして、それらをうまく取り込んで生産性を向上するには、効果の目標を決める必要があります。例えば、Ruby on Railsを採用したのに、開発速度が上がらないのであれば、あまり効果があったとは言えないのではないでしょうか。高い生産性という言葉を見聞してそれを試してみることは大切ですが、安易に導入して生産性が下がるようでは元も子もありません。時間なのか難易度なのか労力なのか、といった生産性の中の要素を考えた上で、目標を決める必要があります。そしてそれらの効果が得られたかどうかを観測することで、生産性の高さ継続的に獲得することができます。
注意点を含め、否定的なこともいくらか述べましたが、生産性が高いこと自体は良いことです。今求めている生産性はこれだ、と言えるものを探して、それに合った言語を選択することで、明確な目標を持って生産性向上に挑めます。