はじめに
Developers Summit 2020 Winter (Developers Summit 2020)
質とスピード
スピーカー:和田 卓人 [タワーズ・クエスト]
の聴講メモです。
メモは口頭説明を中心にまとめています。資料を併せてご参照ください。
Twitterのつぶやきがtogetterでまとめられています。併せてご参照ください。
デブサミ2020【13-B-4】質とスピード #devsumiB #devsumi - Togetter
【参考】としている箇所は私が挿入しています(補足や参考資料など)。登壇者の講演内容ではありませんので、その旨ご了承ください。
聴講メモ
まもなく #devsumi 登壇本番です。昨年の #eof2019 で初演し、メルカリ様での社内再演を経て改訂した『質とスピード』の最新版を講演させていただきます。何卒よろしくお願いします。 #devsumiB
— Takuto Wada (@t_wada) 2020年2月13日
品質は「~性」と言われる(例:保守性)。
基本品質は減点法の世界だ。
一方で魅力品質は無くてもよいが有ったら嬉しいことだ。
ショッピングサイトで言えば…
当たり前品質(基本品質):商品を購入できること。
一元的品質(性能品質):商品の品ぞろえ。
外部品質は「見える品質」であり、内部品質は「見えない品質」だ。
「見えない品質」はお客様に直接見えない品質だ。
そして、内部品質は犠牲にされがちだ。
品質を犠牲にするとは突き詰めると保守性を犠牲にすることになる。
保守性とスピードはトレードオフなのだろうか。
野戦病院のような開発現場がそこここにある。
増改築を繰り返し、屋根の上に家が建っているような状態になる。
保守性を諦めたことで動いたコードにふれるな、となる。そして、コピペが繰り返され、修正ミスが発生し、と爆弾処理のような開発が続く。
『中期的には逆効果になる』とは改修に余計なコストがかかることを指している。
汚さを意図的に選択することはできない。急いでいるから汚くても書こう、とはならない。
「要はバランス」で満足しているときは掘り下げ切れていないサインかも。本当にそれはトレードオフ構造なのだろうか?
品質とコストはトレードオフなのだろうか?
品質を上げられるのは94パーセントぐらいまで、がコストアップ説。
品質を上げれば結果的にコストが下がるというのがコストダウン説。
品質を上げるためには検査コスト+予防コストがかかるが、不良対応コストが下がることで、合計の品質コストが下がる。
ソフトウェアは作ってからが始まり。それ以降も仮説検証が繰り返される。
生産性は4つのメトリクスで計ることが増えた。
- スピード
- リードタイム
- デプロイ頻度
- 品質
- MTTR(平均修復時間)
- 変更失敗率
二律背反の「局所的」とは短期的ともいえる。
内部品質への投資の損益分岐点が1か月以内に現れるということは自分たちが報われるということ。損益分岐点が3年後だと自分事と捉えにくい(その頃には自分が現場を離れているかもしれない)が、1ヶ月なら自分事になる。
予算は動かせないことが多いし、品質は減らしても変わらないとわかった。であればスコープを削る。
質とスピードのトレードオフではなく、教育を犠牲にしていたのではないか。