SSブログ

Red, Green, Refactor [プログラマー現役続行]

JUnitなどのxUnitフレームワークを用いてテストコードを書いて、実装してテストがパスするようになったら、実装作業が終わりではありません。その後に必ずリファクタリングをすることが必要です。しかし、教育などで「Red、Green、Refactor」と教えても、ソフトウェア開発経験の浅い人は、必ずリファクタリングを忘れてしまいます。

忘れてしまう理由としてはいくつかあります。
  • 初心者の場合、与えられたプログラミングを行うだけで精一杯であり、テストコードがパスするようになった時点で終わった気になってしまう。
  • 初心者の場合、そもそもどのようなコードが綺麗か汚いか判断できるほど経験を積んでいなかったり、書籍(『Clean Code』 『Code Complete』など)で学んでいなかったりするので、テストコードがパスするようになった安堵感も加わって、自分で書いたコードを見直しても何も悪くないように感じてしまう。
  • リーダや上司からリファクタリングしたかとか、するようにとかの指導を受けないようなソフトウェア開発組織で開発している。あるいは、コードレビューが実施されていても、コードの読みやすさを含めたリファクタリングの指摘まではされない。
特に初心者の場合、コードレビューで指摘された修正だけを行うだけだったりします。つまり、修正結果を見直してコードをさらに改善することを自分でできなかったりします。そのため、初心者に書かせたコードは、3、4回レビューしないとまともなコードにならなかったりします。

ここでの「初心者」には、私の「プログラミング言語Java」教育コースを修了したレベルも含まれます。したがって、修了したレベルの知識も持たない初心者を頭数だけ集めてソフトウェアを開発しても、まとなソフトウェアが開発できる可能性は低く、技術的負債を結果として残す可能性が大きくなります。

「Red, Green, Refactor」をきちんと実践できるようになるには、3年から5年の経験を積んでいく必要があるかと思います。もちろん、ソフトウェア開発に従事した年数が目安になることはありませんので、上記の理由に該当するような状態が続いているだけであれば、10年を経てもスキルは上がっていなくて初心者と同じスキルしかない可能性も高くなります。
nice!(0)  コメント(1)  トラックバック(0) 

nice! 0

コメント 1

Suzuki

スキルが無さすぎて死にたくなります。本を読んだりして頑張ってますが、まだまだ追い付きません。早く初心者を抜け出したいです
by Suzuki (2011-03-05 00:56) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0