2019/10/31(金)に開催されたEngineering Organization Festival 2019 で @t_wada さんの「質とスピード」という講演を聞き、とても感銘を受けたのでメモ。
品質とスピードはトレード・オフの関係にある。どちらを優先するか?要バランスだ。
そう思っていた時期が私にもありました。
けど、そんなことはなかった!
素敵なグラレコ
犠牲にされる品質
- 荒ぶる四天王(QCDS)があらわれた!
- 「品質を犠牲にする」が選ばれやすい
- プロジェクトマネジメントの現場で行われてきたこと
- 品質を犠牲にすればスピードは得られる?
- 短期的には得られる
- 中期的には逆効果になる
- 長期的には致命傷になる
- 品質を犠牲にしてスピードをあげると言うが
- 「品質とは何か?」
「品質」とは何か?という問い
内部品質(のうち保守性)を犠牲にしてスピードを得る
- では、どのような内部品質を犠牲に捧げたのか?
- 一番犠牲にされがちな内部品質は「保守性」
- スピードを得るために犠牲に捧げられた「保守性」
- テスト容易性
- 理解容易性
- 変更容易性
- 保守性(テスト容易性、利用容易性、変更容易性)を犠牲に捧げて、仮初の速さを得る
- コピーアンドペーストによる増改築→荒みきったコード→「動くコードに触れるな」
- 動いてるかどうかわからないけど、爆弾処理のようなリリース
- 「たぶん動くからリリースしようぜ」
ビジネスをしていると常にスピード優先なので、品質を優先することは、永遠にこない
- マスター先生「時間を優先するためなら品質を優先できると考えているものもいるようだが、それは間違いだ」
Web系企業でよく言う「今は大事な時期だからスピード優先で、コードの質は下げても構わん」みたいなの、会社が存続している限りスピード優先なので、真に受けるとクソコードしか存在しない会社になるから常にちゃんとしたものを書いた方がいい。
「後でキレイにリファクタしますのでスピード重視で作ります」は実装した後に「リファクタしたいとは思っているが現状動いているから優先度低いね」になるから、コイツラは詐欺師。
毎度スピード優先だからとか言ってクソコード投げてくるひとに十分な時間を与えたら果たしていいコードが返ってくるのだろうかというと
経験上、十分時間を与えたから良いコードを書いてくる人は、スピード優先でも良いコードを書いてくる。クソコードを書いてくる人は結局クソコードしか書いてこない。 https://twitter.com/drillbits/status/1014161022037286918 …
- テスト容易性が下がる→テストされない→テスト容易性が下がる→ループ
- 影響範囲調査と修正がひとつひとつの作業に乗ってきてしまう。
- 「全体工数の4割くらい失敗するテスト直してる気がする」
品質とスピードは、トレードオフではない
- 「要はバランス」おじさん
何かにつけてトレードオフ構造を見出して「要はバランス」という結論で満足してしまう人を揶揄して「要はバランスおじさん」と呼ぶことがあります。
品質"実質無料"
- 品質アップは、コストアップかコストダウンか?
- Quality is free.
- クオリティ&ダーティの神話
- むしろ品質を高めることで、デリバリーが高速になることが多い by エクストリームプログラミング
- 最高の開発者はいちばんのきれい好き
- コードの品質を高く保っていた「からこそ」速い
QCDのトレードオフなんて本当は無かったんだ
- 内部品質を高く保って、外部品質で勝負したかった。
- 品質を下げると、デリバリーが遅くなる→スピードが遅くなると仮説検証の回数が少なくなる→検証できないので外部品質が低くなる
内部品質がスピードを
スピードが学びのループを
学びのループが外部品質を
外部品質が競争力を
競争力が売り上げを
売り上げが内部品質を生む
#eof2019
- 4つのキーメトリクス(by Accelerate)
- リードタイム
- デプロイ頻度
- MTTR
- 変更失敗率
「質 v.s. スピード」という考え方は根本的にまちがっている
- Done is better than perfect - をどう訳すか
- 「多分動くと思うからリリースしようぜ」?
- 「完璧を目指すよりまず終わらせろ」?
- 片方を犠牲にした場合、知らぬうちに片方も犠牲にしている
"「質v.s.スピード」という概念は根本的に間違っている" "質v.s.スピードという二律背反の関係は、局所的なものでしかない。大域的には、片方を犠牲にした場合、知らぬうちにもう一つも犠牲にしている" http://knoh.jp/answers/d65c7a82 …
- コードがスパゲッティになったら直すのは、ほぼ不可能である
- ファウラーさんが数字を出した。
- 「内部の質への投資は1ヶ月以内に現れる」