コーディングスタイルガイドをみんなで議論するということ

コーディングスタイルガイドとは、ある言語、あるフレームワークを使用するときに守る、コードの書き方のガイドのようなものです。システムに対してより抽象度の高い表現が可能になった昨今、コーディングとはシステムにおける設計そのものであり、コーディングスタイルガイドはその設計を支える標準化の仕組みと言えるでしょう。

コーディングスタイルガイドはシステムの品質を支える源泉

チームでコーディングスタイルを合わせるのには重要な意味があります。何より他人のコードが読みやすくなるし、読みやすければ表現したい処理に対してコードが妥当かどうかチェックするのに時間がかからない、つまり品質とコスト(時間)を両立して改善することができます。

ところでコーディングスタイルは随時進化するものです。使用している言語で表現できることもバージョンを重ねるにつれて広がっていきますし、何よりチームが時間を重ねるにつれて成長しています。チームというのは人の集まりなので、人それぞれが学習することにより、人それぞれに表現のノウハウも広がりを見せます。そういうわけで、各個人で見ると「みんなこう書いているけど、こう書いた方が効率的だよね」というが出てくるわけで、コードレビューをしてみると「え、これってアリなの?」といった議論が発生するわけです。

そういうときに「いや、前にこういう風にガイドを決めたんだから、それに従うべきだよ」というのは不毛です。

チームで歯車が合わないとき、それはいわば、成長痛とも似ている気がします。チーム全体が成長する機会なのです。なのでそういうときは、チーム全体で議論してコーディングスタイルをより進化した方向に合わせるのが健全でしょう。何よりコーディングスタイルを議論するのは楽しいですし、コーディングスタイルというのはいわばメタ設計なので、その議論自体がチームに成長の機会を与えます。成長したチームはより品質の高いコードを生み出すようになるので、コーディングスタイルについてみんなで議論するという習慣があることによって、大変な好循環が生まれることになるのです。虎の巻をみんなで作り上げいく感覚です。

そういうわけで、コーディングスタイルガイドに従うことはもちろん、コーディングスタイルガイド自体をみんなで議論して成長させて行くということが、持続的に品質を改善し続ける一つの方法だと考えています。