【デブサミ2020】セッションレポート:13-B-4 質とスピード
ついに「質とスピード」が聞ける
登壇者:t-wadaさん
昨年のeofで初演された「質とスピード」。
名著LeanとDevOpsの科学でも言及されていた、品質とスピードは相反するのではないという主張を押し広げたもので当時大きく話題を呼んでいた。それがデブサミで再演される。ついに生で「質とスピード」が聞けるのだ。
荒ぶる四天王
時間
予算
スコープ
品質
だいたい、品質が選ばれてしまうが、果たして品質を犠牲にしてスピードは得られるのか?というのが本日のテーマだ。
品質とは何か
「品質とは誰かにとっての価値である」
日本で有名なのは狩野モデル。
・魅力品質
・SNS連携など
・一元的品質
・商品の数
・当たり前品質
・そもそも商品が買える
見える品質(外部品質)と見えない品質(内部品質)
今日の話のスコープは「質」だが、具体的には「内部品質」とスピードであることがここで示された。
我々は何を犠牲に捧げたのか?
保守性(Maintainaility)
・テスト容易性(Testablity)
・理解容易性(Understandaility)
・変更容易性(Modifiability)
ここで、問いは「保守性とスピード」まで限定された。
コードが編集しづらくなると「コードに触るな」となる。コピペして少し違うコードにする。コンパイルできないので_2とかつける。あ!もうそれある!
という地獄が始まる。うーん辛い。辛いし経験したことあるぞ!
こういったコードになると、毎回無事にリリースできるよう祈る爆弾処理のようなリリースになっていく。
これもよくわかる。Value Stream Mappingをやると、リリースフローが複雑している現場が多いことに気づく。
逆に、スピードを落とせば保守性は上がるのか?
意図的に品質を下げたところで、それほどスピードが上がるわけではない。
時間をかけて作ってもその人の技術力以上の品質のコードは書けない。
そこにトレードオフの関係はない。本当に「要はバランスだね」ということもあるが、思考停止しているのではないかという問いは必要だ。
品質”実質無料“
品質向上のためのコストが品質向上の結果減るやり直しにかかるコストを上回ると、結果的に品質が“実質無料”となる
そういわれると、とても納得感がある。それなのに、なぜ我々は品質とスピードは相反するものだと感じてしまうのだろう。質を高く保つからこそスピードが速い、というのは近年様々なところで主張されているし実感ともあっている。
これは開発環境の進歩がもたらしたものなのか?それともずっと昔からそうで、ずっとなぜか誤解していたのだろうか?気になってしょうがない。
と、気になって悶々としていたら以下のような回答が提示されていた。
仮説検証プロセス
現代では仮説検証サイクルを回すスタイルがメジャーになってきている、そもそもデプロイして仮説を確かめながらよくしていくのでリリースが遅いとそもそも改善ができない。
なるほど、これはスピードが質を引き出しているということか。
近年の市場環境、開発プロセスの変化が質とスピードの両立をもたらしているのかもしれない。
質とスピードは正の接続
質vsスピードの構図が正しくない、という主張がよく聞かれるようになってきた。「大域的には、片方を犠牲にした場合、もう一つも犠牲にしている」と主張する人もいる
どうやって個人の質を上げるのか
ソフトウェアの開発に最初から最後までかかわるという経験
システムを設計するための判断力
自分で設計したシステムを長い間メンテする
内部品質への投資の損益分岐点
テスト自動化の損益分岐点は「4回」
内部品質への投資の損益分岐点は1ヶ月以内に現れる。つまり、じぶんたちで利益を享受できる
この「1ヶ月」というのはとても重要だ。リファクタリングやテスト整備って、未来への投資感があるけどこのくらいのスパンなら全然、自分ごとだ。
ふたたび、荒ぶる四天王
削るべきはスコープ
結論と問い:何が天秤にかけられているのか
メンバーの成長とその成長のために必要なフィードバックや学習の時間
未来への投資
多様性
質とスピードを両立させる背後で、こういった要素が犠牲になってるのではないかという問題提起でこの講演は幕を閉じた。
質とスピードと組織と
eof時の資料は拝見していたが、実際に講演を生で聞いて本当によかった。
資料にはない体験談や会場のライブ感を味わえたこともだが、質とスピードの背景で犠牲になっているものに思いを馳せるきっかけを得られたからだ。
質とスピードと組織の成長、いかように両立させてゆくのか。しばらく考えこむ対象になりそうだ。
更新された資料はこちら。
この記事が気に入ったらサポートをしてみませんか?