tsucchi’s diary(元はてなダイアリー)

はてなダイアリー(d.hatena.ne.jp/tsucchi1022)から移行したものです

変革とリファクタリングとコードを投げ捨てるときと

404 Blog Not Found - 変革が好きなわけじゃない、それしか選択肢がないのだ

それが、今時の若者達のラフコンセンサスだ。

このへんの話にとっても同意なのだが、「なぜそうなのか」をちょっと考えてみました。...とはいうものの、そんなに立派な考察ではありません。「まっとうな」プログラマであれば、誰にでも分かることなのです。

「ぼちぼち」とした、地道な改良は「リファクタリング」です。
一揆」は、「コードを捨てて、一からやり直すこと」です。

では、「リファクタリング」を行うのは、どういうときか。

Wikipedia - リファクタリング --リファクタリングを行うタイミング

リファクタリングを開始するタイミングとして、コードに「不吉なにおい」を感じ始めたら、と提案している

つまり、「コードが壊れているわけではないが、何か嫌な感じがするとき」。現実世界なら、「ちょっと変なところはあるけど、○○が良くなれば大丈夫」、くらいの状態にあたると思う。

一方、「コードを捨てて、やり直し」が必要なのはどういうときか。
マーチン・ファウラーも、ケント・ベックも似たようなことを言っていて、例えば「通すべきテストケースは沢山思いつくけど、コードの動作が怪しい時」なんかがそうだ。現実世界なら、「改革すべきところがありすぎて、何をどうすればいいのやら orz」、という状態なんだと思う。

このアナロジーは、団塊世代(?)との対立もうまく表現できる。彼らはプロジェクトを近いうちに離れる予定の人達だ。しかも既存のコードで沢山の利益を享受している。「リファクタリングするのも、コードを捨てるのも嫌だ」と考えるのも無理ないだろうと思う。

若者の総意かどうかは分からないけど、少なくとも私は、今の現状は「コードを捨てて、やり直し」的な気合いが必要だと思う。とはいえ、反乱を起こすのはちょっと...とも思うし、どうにか上手く舵取りしていければよいと思うのだけどねぇ...。

P.S.もう誰か同じネタで書いちゃってるかもなぁ...