「誰が書いても同じコード」は大事なことなのか
昨日、大手SIerの方々と話をする機会があって、そこで出てきたのが、「誰が書いても同じコード」になることが重要で、それを実現するために、ドキュメントをいっぱい書かなくてはいけないという話。大手SIerは、大体同じことを考えていると思います。
でも、「誰が書いても同じコード」にするってのは、そもそも無理だと思うんだよね。そうやって、わざわざドキュメントをたくさん書かせても、めためたなコードを書くやつはいて、総合テストするときに、現場は燃え上がるもの。ある程度の規模以上のプロジェクトなら、どこでもそんな感じじゃないかと思います。
重要なのは、「誰でもメンテナンスできるコード」にすること。そのために、コーディング規約は、きちんと決めてみんなで守る、それ以上は、がちがちに縛る必要はない。
がちがちに縛るために、設定ファイルをたくさん書かせたり、必要以上のドキュメントを書かせるのは、一定の品質を確保できているように見えて、実は確保できていないと思う(結局、コードの品質はいつもばらばらだから)。
今の大手SIerのやり方の問題は、スキルのあるプログラマの能力を殺してしまっているところにあると思います。だめな人に失敗させないように、がちがちに縛るんだけど、だめな人はやっぱり失敗するし、できる人もがちがちに縛られて力を発揮できない。
「誰でもメンテナンスできるコード」にするために、必要十分なドキュメントとコーディング規約を守る以外は、開発者の自由にさせたほうが、全体の生産性はきっとあがるよね。
追記:開発者のスキルがばらばらなので、がちがちに縛ることによって、できない人も普通に、できる人も普通にしようとしているのが、今の大手SIerのやり方です。これが、うまくいくならそれでもいいんですが、現実には、できない人はやっぱりできないから、できる人が普通になってしまう分、損してるんじゃないのということです。だったら、縛りを緩めて、できる人は、その良さを発揮してもらったほうが良い。