私が(運の強さを)尊敬するしすてむえんじにあさんのお言葉でコンピュータネタ、目次へ
《ソフトウェアの業界では仕事以上の値段をつけることはあるが、値段以上の仕事をすることはない》というのがあります。
当然でしょう。それがプロ意識というものです。もしプロでも野球のように来期の年棒で仕事の値段が再評価されるなら話は別ですが、そして評価が低いと失業するというなら別ですが、普通はそういうものです。値段分の仕事をしたと判断されるなら帰ってしまいます。これがプログラム開発を社内の人間にやらせている場合であれば、各プログラマは収入アップを期待してもう少しやるかもしれませんが、外注プログラマだとそんなこと知ったこっちゃない。請負契約ならともかく、委託契約ならその傾向はさらに強まるでしょう。
そんなわけで、プログラム開発が遅れてしまい、今のままでは人員が足りないからと新しく人を投入し、それを追加費用はそんなにかけれれないからと外から引っ張ってきた単価の安いプログラマで賄うとプログラムの品質はどんどん下がります。それでも品質を下げたくない場合はどうすればよいかというと「アマチュア意識」に訴えるしかないんですな。少なくとも(よく言われるように)「プロ意識の徹底」では駄目です。プロは「対価>=産出」ですから。徹底するほど対価を多く求め、産出を少なくします。
そんなわけでスローガンとしては開発チームへのアマ意識の浸透を掲げております。もちろんそんなこと公式には言えませんから個人的なものです。ただしそのための努力は惜しんでおりません。やっぱりさあ、仕様書渡されて「この通りコーディングしろ」と言われるだけよりも、全体の位置づけが分かった方がいいでしょう。書いているのは汎用的な入力チェックルーチンでも、やっぱり「自分は1日5兆円を扱うシステム構築プロジェクトに参加してるんだ」とか言えた方がかっこいいときもあるじゃない。私自身アマチュア意識が強いようです。ひょっとしたらアマチュアが作ったプログラムの方が品質は高いかもしれません。プロとして書いたのであれば対象としないような細かい例外の確認テストなんてものは、それこそ個人的な情熱がないとできないでしょう。
但し、気をつけなければならないのは、アマ意識が強いと細かいことにこだわって前に進めないことがあるのですね。例えば10個の逆行列を効率的に求めたい、とそこのアルゴリズムを一生懸命考えたりして。プロだったら、たかだか10個の逆行列だろ、適当に書けばいいじゃない、とさらっと流して効率を追求すべきところですがね。