Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20%ルールに頼らない: 技術的負債を解消する 組織的な取り組み / Developers S...
Search
KAKEHASHI
PRO
July 27, 2023
Business
18
9.8k
20%ルールに頼らない: 技術的負債を解消する 組織的な取り組み / Developers Summit 2023 Summer
2023.07.27に開催されたDevelopers Summit 2023夏の登壇資料です
登壇者:湯前 慶大(VP of Engineering)
KAKEHASHI
PRO
July 27, 2023
Tweet
Share
More Decks by KAKEHASHI
See All by KAKEHASHI
制約下の医療LLM Observability 〜セキュアなデータ活用と専門家による改善サイクルの実現〜
kakehashi
PRO
1
100
KAKEHASHI❤️Hono
kakehashi
PRO
1
93
生成AIが拓く医療DXの進化と壁
kakehashi
PRO
0
120
品質と速度を両立する、私たちのフロントエンドテストの工夫と取り組み
kakehashi
PRO
2
100
爆速でプロダクトをリリースしようと思ったらマイクロフロントエンドを選んでいた
kakehashi
PRO
5
2.5k
生成AI時代に必要な価値ある意思決定を育てる「開発プロセス定義」を用いた中期戦略
kakehashi
PRO
1
1.9k
プロダクトの成長に合わせたアーキテクチャの段階的進化と成長痛、そして、ユニットエコノミクスの最適化
kakehashi
PRO
1
240
ユーザー課題を愛し抜く――AI時代のPdM価値
kakehashi
PRO
1
560
「AIと一緒にやる」が当たり前になるまでの奮闘記
kakehashi
PRO
3
600
Other Decks in Business
See All in Business
多種多様なノンデスクワーカーのお客様へ 現場DXを推進するためにCSに求められる「ハイタッチ」とは / For a wide variety of non-desk workers: What is the "high touch" required from CS to promote on-site DX?
kaminashi
0
110
製造業界の人とアジャイルをやってみたよ
toshiaki0315
1
570
Gemini と NotebookLM を組み合わせて 目標設定の負荷を軽減する方法 / Goal setting with gemini and notebooklm
tbpgr
20
40k
データ整備の「やり方」はどうなっていくか
shinu
PRO
2
680
株式会社トリビュー|会社説明資料 / Company Deck
tribeau
5
20k
株式会社Nagisa_カンパニーデック
nagisa_recruit
0
1.1k
VISASQ: ABOUT DEV TEAM
eikohashiba
5
37k
Biz/Dev二刀流からの実践知 - 大企業で挑むプロダクト開発における思考と判断 -
ryo_k
1
230
malna-recruiting-pitch
malna
0
11k
株式会社ジュニ - 採用ピッチ
junni_inc
2
23k
【27新卒フィールドセールス職採用】BuySell Technologies会社紹介資料
buyselltechnologies
0
250k
AI駆動開発の成功と失敗 クラスメソッドの実践事例集
satoshi7
3
370
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
RailsConf 2023
tenderlove
30
1.3k
The Invisible Side of Design
smashingmag
302
51k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Writing Fast Ruby
sferik
630
62k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Transcript
20%ルールに頼らない: 技術的負債を解消する 組織的な取り組み 2023.07.27 株式会社カケハシ 湯前 慶大
Copyright © KAKEHASHI Inc. All Rights Reserved. 1 湯前 慶大(VP
of Engineering) @yunon_phys 2010-2014 (株)日立製作所: 研究員 2014-2023 (株)アカツキ: VP of Engineering 2023- (株)カケハシ: VP of Engineering Engineering 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 PdM 3ヶ月前に入社した が、こんなにコード を把握できないの は初めて 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 技術的負債への組織的な取り組みについて、
悩みながらも進めている話をしました。 何かしら皆さまの組織において、 参考になれば幸いです。
53 Connpass
54 本日のアンケートへのご協力を お願いします
55