how to fight against “full scratch disease”
TRANSCRIPT
How to fight against “Full Scratch Disease”
PIZZA_JP #2@rs_wisteria
作り直したい病
作り直したい病
技術的負債のたまったプロジェクトを再構築したいエ
ンジニアが頻繁に罹患
なぜ作り直したいのか
● 技術的負債の束○ フレームワークのバージョンが古い
○ 設計がクソ
○ 実装がクソ
○ 使ってるミドルウェアが廃れた
○ etc
作り直した方が早い
…
本当に?
実は結構大変
● ちゃんと明確な仕様書がある?○ →ないです…
● ちゃんと明確なテスト仕様書がある?○ →ないです…
● お金出してくれる人説得する自信は?○ →ないです…
エンジニアが苦手なこと
情報共有(偏見)
テスト(偏見)
説得(偏見)
作り直す上でやるべきこと
● 作り直すものの仕様の共有
● 作り直すもののテスト
● 作り直すメリットの説明
→苦手なお仕事ばっかいりやないかい!
現在動いているコードが持っている隠れ資産
● 今動いているという実績○ 動いているものが仕様
○ 昔みんなで頑張ってデバッグした成果
● 作り直す=この資産を捨てる○ 本当にこっちの方が早いのかを考える必要がある
そんなことより
もっと致命的な
問題
そのクソコード
書いたの誰?
お前か
じゃあ、作り直すのは
だれ?
やっぱりお前か
それ、もう一回クソコード
書くだけじゃね?
根本的な話
● 作り直したものが素晴らしい保証はない○ またしばらく立ったら作り直したくなるよね?
○ また作り直すの?
○ また新しいうんこ書くの?
Joel on Software
● 実は既に2000年くらいに言われ
ているお話し○ はてなブログをリリースされた際に
よく言及されていた
どうするの?
どうにもならん
なぜ作り直したいのかを問い直す
● フレームワークのバージョン上げるの面倒○ 間違いなく作り直した方が面倒だから諦めて更新しろ
● どうやって動いているかよく分からないから○ コード読め、それを調べるのがお前の仕事だ
● 設計がクソ過ぎて辛い○ 具体的に駄目な箇所を指摘し、リファクタリングしろ
まとめ
● 作り直したい病○ エンジニアが罹患する病気です
○ 殆どのケースで作り直してはいけません
● 現状に甘んじろと?○ そうではない。具体的な問題を指摘しろ
○ 具体的な問題に対し、具体的な解決策を示せ