変革とリファクタリングとコードを投げ捨てるときと
404 Blog Not Found - 変革が好きなわけじゃない、それしか選択肢がないのだ
それが、今時の若者達のラフコンセンサスだ。
このへんの話にとっても同意なのだが、「なぜそうなのか」をちょっと考えてみました。...とはいうものの、そんなに立派な考察ではありません。「まっとうな」プログラマであれば、誰にでも分かることなのです。
「ぼちぼち」とした、地道な改良は「リファクタリング」です。「一揆」は、「コードを捨てて、一からやり直すこと」です。
では、「リファクタリング」を行うのは、どういうときか。
Wikipedia - リファクタリング --リファクタリングを行うタイミング
リファクタリングを開始するタイミングとして、コードに「不吉なにおい」を感じ始めたら、と提案している
つまり、「コードが壊れているわけではないが、何か嫌な感じがするとき」。現実世界なら、「ちょっと変なところはあるけど、○○が良くなれば大丈夫」、くらいの状態にあたると思う。
一方、「コードを捨てて、やり直し」が必要なのはどういうときか。
マーチン・ファウラーも、ケント・ベックも似たようなことを言っていて、例えば「通すべきテストケースは沢山思いつくけど、コードの動作が怪しい時」なんかがそうだ。現実世界なら、「改革すべきところがありすぎて、何をどうすればいいのやら orz」、という状態なんだと思う。
このアナロジーは、団塊世代(?)との対立もうまく表現できる。彼らはプロジェクトを近いうちに離れる予定の人達だ。しかも既存のコードで沢山の利益を享受している。「リファクタリングするのも、コードを捨てるのも嫌だ」と考えるのも無理ないだろうと思う。
若者の総意かどうかは分からないけど、少なくとも私は、今の現状は「コードを捨てて、やり直し」的な気合いが必要だと思う。とはいえ、反乱を起こすのはちょっと...とも思うし、どうにか上手く舵取りしていければよいと思うのだけどねぇ...。
P.S.もう誰か同じネタで書いちゃってるかもなぁ...