Red, Green, Refactor [プログラマー現役続行]
JUnitなどのxUnitフレームワークを用いてテストコードを書いて、実装してテストがパスするようになったら、実装作業が終わりではありません。その後に必ずリファクタリングをすることが必要です。しかし、教育などで「Red、Green、Refactor」と教えても、ソフトウェア開発経験の浅い人は、必ずリファクタリングを忘れてしまいます。
忘れてしまう理由としてはいくつかあります。
ここでの「初心者」には、私の「プログラミング言語Java」教育コースを修了したレベルも含まれます。したがって、修了したレベルの知識も持たない初心者を頭数だけ集めてソフトウェアを開発しても、まとなソフトウェアが開発できる可能性は低く、技術的負債を結果として残す可能性が大きくなります。
「Red, Green, Refactor」をきちんと実践できるようになるには、3年から5年の経験を積んでいく必要があるかと思います。もちろん、ソフトウェア開発に従事した年数が目安になることはありませんので、上記の理由に該当するような状態が続いているだけであれば、10年を経てもスキルは上がっていなくて初心者と同じスキルしかない可能性も高くなります。
忘れてしまう理由としてはいくつかあります。
- 初心者の場合、与えられたプログラミングを行うだけで精一杯であり、テストコードがパスするようになった時点で終わった気になってしまう。
- 初心者の場合、そもそもどのようなコードが綺麗か汚いか判断できるほど経験を積んでいなかったり、書籍(『Clean Code』 や『Code Complete』など)で学んでいなかったりするので、テストコードがパスするようになった安堵感も加わって、自分で書いたコードを見直しても何も悪くないように感じてしまう。
- リーダや上司からリファクタリングしたかとか、するようにとかの指導を受けないようなソフトウェア開発組織で開発している。あるいは、コードレビューが実施されていても、コードの読みやすさを含めたリファクタリングの指摘まではされない。
ここでの「初心者」には、私の「プログラミング言語Java」教育コースを修了したレベルも含まれます。したがって、修了したレベルの知識も持たない初心者を頭数だけ集めてソフトウェアを開発しても、まとなソフトウェアが開発できる可能性は低く、技術的負債を結果として残す可能性が大きくなります。
「Red, Green, Refactor」をきちんと実践できるようになるには、3年から5年の経験を積んでいく必要があるかと思います。もちろん、ソフトウェア開発に従事した年数が目安になることはありませんので、上記の理由に該当するような状態が続いているだけであれば、10年を経てもスキルは上がっていなくて初心者と同じスキルしかない可能性も高くなります。
2011-03-04 23:43
nice!(0)
コメント(1)
トラックバック(0)
スキルが無さすぎて死にたくなります。本を読んだりして頑張ってますが、まだまだ追い付きません。早く初心者を抜け出したいです
by Suzuki (2011-03-05 00:56)