2023.07.27に開催されたDevelopers Summit 2023夏の登壇資料です
登壇者:湯前 慶大(VP of Engineering)
20%ルールに頼らない:技術的負債を解消する組織的な取り組み2023.07.27 株式会社カケハシ湯前 慶大
View Slide
Copyright © KAKEHASHI Inc. All Rights Reserved. 1 湯前 慶大(VP of Engineering) @yunon_phys2010-2014 (株)日立製作所: 研究員2014-2023 (株)アカツキ: VP of Engineering2023- (株)カケハシ: VP of EngineeringEngineering ManagerのためのPodcast EM.FMのパーソナリティーをつとめる最近子どもが産まれて、てんやわんやな日々を過ごす
Copyright © KAKEHASHI Inc. All Rights Reserved. 2 突然ですが・・・みなさんこんなことは無いですか?
Copyright © KAKEHASHI Inc. All Rights Reserved. 3 ・技術的負債の解消より機能開発の 方がいつも優先度が高い・経営者やPdMから技術的負債に ついて理解してもらいづらい・正直技術的負債の解消に気乗り しない
Copyright © KAKEHASHI Inc. All Rights Reserved. 4 技術的負債の解消のやり方や技術的負債の大事さはいろんな情報がある一方、どうやって社内で調整するのか、という現実的な話はあまり情報がない(泥臭いし、正直かっこいい話じゃないし)
Copyright © KAKEHASHI Inc. All Rights Reserved. 5 今日の話は・・・ 技術的負債はこうやれば解決するよ 悩みながらなんとか向き合って進めてるよ→ かなり現実的な話をしていきます
Copyright © KAKEHASHI Inc. All Rights Reserved. Vision明日の医療の基盤となる、エコシステムの実現。6 Mission日本の医療体験を、しなやかに。
Copyright © KAKEHASHI Inc. All Rights Reserved. 7
Copyright © KAKEHASHI Inc. All Rights Reserved. 8 Musubi AI在庫管理(薬局向け)残薬問題 非効率な物流人に頼った在庫管理
Copyright © KAKEHASHI Inc. All Rights Reserved. 9 リリースして約2年まだまだ機能拡張をしていきたいでも、なんか開発がうまくいってない
Copyright © KAKEHASHI Inc. All Rights Reserved. 10 感覚的に開発効率に課題はありそう以前と比較して機能リリースが遅くなっている気がする・・・by PdM3ヶ月前に入社したが、こんなにコードを把握できないのは初めてby エンジニア機能を追加するとエンバグしてしまいそうで、コードを触るのが怖いby エンジニア
Copyright © KAKEHASHI Inc. All Rights Reserved. 11 Findy Team+でもマージまでの平均時間は伸びている
Copyright © KAKEHASHI Inc. All Rights Reserved. 12 じゃあどうすれば良いか?
Copyright © KAKEHASHI Inc. All Rights Reserved. 13 機能拡張のために取りうる手段1. 追加機能を可能な限り削る2. 開発効率を上げる3. 人を増やす
Copyright © KAKEHASHI Inc. All Rights Reserved. 14 機能拡張のために取りうる手段1. 追加機能を可能な限り削るEnterprise企業を顧客にしていくために、そもそも足りていない機能が多すぎる→ 残念ながら、現段階ではこれは取れない
Copyright © KAKEHASHI Inc. All Rights Reserved. 15 機能拡張のために取りうる手段1. 追加機能を可能な限り削る2. 開発効率を上げる3. 人を増やす理想的にはこの順番で対処していきたい
Copyright © KAKEHASHI Inc. All Rights Reserved. 16 機能拡張のために取りうる手段1. 追加機能を可能な限り削る2. 開発効率を上げる3. 人を増やす現実的には同時並行(採用も育成も時間がかかる)
Copyright © KAKEHASHI Inc. All Rights Reserved. 17 機能拡張のために取りうる手段1. 追加機能を可能な限り削る2. 開発効率を上げる3. 人を増やす← 今日はここだけ
Copyright © KAKEHASHI Inc. All Rights Reserved. 18 生産性とは?期待付加価値仕事量実現付加価値どの程度の仕事をこなすことができたかどれだけ価値の高い仕事をできたかどれだけKPIを達成するための重要な指標を達成できたかhttps://qiita.com/hirokidaichi/items/53f0865398829bdebef1 に基づき筆者作成
Copyright © KAKEHASHI Inc. All Rights Reserved. 19 生産性とは?期待付加価値仕事量実現付加価値 下のレベルの生産性が高くないと上のレベルの生産性も高くない
Copyright © KAKEHASHI Inc. All Rights Reserved. 20 生産性とは?期待付加価値仕事量実現付加価値今回のフォーカスは仕事量の生産性→ 開発効率をいかに上げるか?
Copyright © KAKEHASHI Inc. All Rights Reserved. 21 では開発効率をチームとして上げてこなかったのか?
Copyright © KAKEHASHI Inc. All Rights Reserved. 22 チームの取り決めとして、20%は改善活動に時間を割くことになっていたでも、実際には開発効率に影響が出るぐらい、技術的負債は溜まってしまっていた・・・
Copyright © KAKEHASHI Inc. All Rights Reserved. 23 一例ですが・・・・テストが不十分なので変更が怖い・テストを拡充するために、そもそもの リファクタリングもやりたい・e2eが巨大なメソッドになっていて、 何をテストしているかわかりづらい・シンボリックリンクが多用されて いて、読解に時間がかかる・論理削除が多用されていて、 パフォーマンス影響が顕在化してきた
Copyright © KAKEHASHI Inc. All Rights Reserved. 24 ところで・・・技術的負債はネガティブなのか?負債と聞くとネガティブなイメージを持ちがちだが、何かしらのレバレッジ(てこ)によりプロダクト開発をした結果出たもの。うまく返済活動すれば良い。過去を否定したら今が無いかもしれないので、過去に敬意を持って対処するのが大事。
Copyright © KAKEHASHI Inc. All Rights Reserved. 25 技術的負債を解消するためにどう組織的に解消に動いたか?
Copyright © KAKEHASHI Inc. All Rights Reserved. 26 ✔ そもそも20%の時間で改善できる内容には限界がある ↓ 100%時間を使えるように うまくチームを構成すれば良いのではA B C D E F A B C D E F
Copyright © KAKEHASHI Inc. All Rights Reserved. 27
Copyright © KAKEHASHI Inc. All Rights Reserved. 28 チームを分割して対応しようとしたら・・・✔ ドメイン知識に偏りがある✔ どこをリファクタリング・リアーキテクチャするのかチーム全体で細かなすり合わせが必要
Copyright © KAKEHASHI Inc. All Rights Reserved. 29 そもそも、技術的負債はチームの課題。結果的に特定の人が解決するにしても、考え方、解決のやり方などはチーム全体で取り組まなければいけない。→ いきなり解決専門のチームをつくって 解消する方針は取りやめ
Copyright © KAKEHASHI Inc. All Rights Reserved. 30 なんとなく課題があるのはわかるでも、ここにどれだけ時間的リソースを使って取り組むべきかは誰も自信を持って言えない状態。意思決定しきれないまま、2ヶ月ぐらい経ったころ、ある事件が起きた...
Copyright © KAKEHASHI Inc. All Rights Reserved. 31 ✔ そもそも20%の時間で改善できる内容には限界がある ↓ 100%時間を使えるように うまくチームを構成すれば良いのでは見積もりバカでかい事件(今考えた)
Copyright © KAKEHASHI Inc. All Rights Reserved. 32 概算見積もりによる開発期間velocityから算出した開発期間(3倍!!!)
Copyright © KAKEHASHI Inc. All Rights Reserved. 33 経営メンバーも、PdMも、SMもみんな頭を抱えてしまうOKRの達成が・・・ 顧客への説明が・・・ 今後の開発が・・・経営メンバー PdM SM
Copyright © KAKEHASHI Inc. All Rights Reserved. 34 とりあえず落ち着こう!!やらなきゃいけないのは、どうやって開発効率を上げるか?≒ 技術的負債にどう向き合うか?
Copyright © KAKEHASHI Inc. All Rights Reserved. 35 エンジニア的には工数さえ確保出来ていれば、まあやりますよ、というスタンス(※後に話すが、そんな簡単でもなかった)
Copyright © KAKEHASHI Inc. All Rights Reserved. 36 とはいえ・・・それなりに長期間(3ヶ月 ~ 半年ぐらい)、技術的負債に向き合う必要があるこの間、機能開発が止まる or 遅くなる
Copyright © KAKEHASHI Inc. All Rights Reserved. 37 長い時間をかけて技術的負債の解消に工数をかけるのは、理解ある経営者やPdMでも納得してもらうのは大変売上に直結することを優先したい経営者、PO、PdM
Copyright © KAKEHASHI Inc. All Rights Reserved. 38 どこまでいっても、技術的負債の解消の効果を定量的に説明するのは難しい。でも、EMやエンジニアの言っていることが嘘ではないことも理解している。だからこそ、技術的負債に対する熱量を伝えることは大事。そのために、提案するEMやエンジニアも覚悟を示す
Copyright © KAKEHASHI Inc. All Rights Reserved. 39
Copyright © KAKEHASHI Inc. All Rights Reserved. 40
Copyright © KAKEHASHI Inc. All Rights Reserved. 41 身を削るのは、経営者やPdMだけになっていないか?
Copyright © KAKEHASHI Inc. All Rights Reserved. 42 長期的な改善だけでなく、短期間の改善も提案し、最大限EMやエンジニアも身を削る提案をする長期的な改善・技術的負債の解消・採用や育成・構造改革短期的な改善・プロセスの改善・会議体の整理・自動化・仕組み化
Copyright © KAKEHASHI Inc. All Rights Reserved. 43 社内資料より抜粋見積もり・進捗報告のやり方を変え、すぐに課題に対処出来るようにする
Copyright © KAKEHASHI Inc. All Rights Reserved. 44 短期的に成果を出すことにフォーカスするべく、中長期的な施策を勇気を持って一旦削除する社内資料より抜粋
Copyright © KAKEHASHI Inc. All Rights Reserved. 45 身を削る提案をすることで、中長期的な対策として技術的負債の解消を経営層・PdMと議論できるようになった議論内容✔ ゴールをどうするか✔ 何をやるのか✔ どのくらいの期間とリソースを使うか
Copyright © KAKEHASHI Inc. All Rights Reserved. 46 テスト戦略+テストリファクタリングリアーキテクチャ緊急的負債解消 新規開発の負債解消新規開発の負債解消新規開発負債解消機能開発・機能改修時期時間的なリソースの割合技術的負債の解消プロセスのイメージの共有
Copyright © KAKEHASHI Inc. All Rights Reserved. 47 次は見積もりをするべく、エンジニアチーム内でのすり合わせしかし、そもそも・・・✔ なぜやるのか✔ 何が今課題なのか✔ 何が理想の状態なのかの認識がチーム全体で合っていない
Copyright © KAKEHASHI Inc. All Rights Reserved. 48 こういう深い議論をするのには、1つのホワイトボードを見ながら、長めに時間をかけるのが良い方法しかしカケハシは全員リモートワークというわけで・・・
Copyright © KAKEHASHI Inc. All Rights Reserved. 49 全国から全員集合!!!
Copyright © KAKEHASHI Inc. All Rights Reserved. 50
Copyright © KAKEHASHI Inc. All Rights Reserved. 51 オフラインの議論により、✔ なぜやるのか✔ 何が今課題なのか✔ 何が理想の状態なのかはチームで大方揃った・・・!あとは進めるだけ・・・!→ To be continued...
Copyright © KAKEHASHI Inc. All Rights Reserved. 52 技術的負債への組織的な取り組みについて、悩みながらも進めている話をしました。何かしら皆さまの組織において、参考になれば幸いです。
53Connpass
54本日のアンケートへのご協力をお願いします
55