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.4k
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
"SaaS is Dead" は本当か!? 生成AI時代の医療 Vertical SaaS のリアル
kakehashi
PRO
3
380
堅牢な認証基盤の実現 TypeScriptで代数的データ型を活用する
kakehashi
PRO
2
300
時間がないなら、つくればいい 〜数十人規模のチームが自律性を発揮するために試しているいくつかのこと〜
kakehashi
PRO
25
7.5k
続・やっぱり余白が大切だった話
kakehashi
PRO
4
620
AIでめっちゃ便利になったけど、結局みんなで学ぶよねっていう話
kakehashi
PRO
2
720
システムとの会話から生まれる先手のDevOps
kakehashi
PRO
2
470
やっぱり余白が大切だった話
kakehashi
PRO
10
3.7k
貧民的プログラミングのすすめ
kakehashi
PRO
2
710
目標と時間軸 〜ベイビーステップでケイパビリティを高めよう〜
kakehashi
PRO
9
2.3k
Other Decks in Business
See All in Business
フルカイテン株式会社 採用資料
fullkaiten
0
67k
20250613_CMC_2025_A3
hideki_ojima
0
510
フルリモートで社内にどうやって自分の居場所を作るのか?
satoshi256kbyte
1
290
How to use ‘Economies of Empowerment’ to get the benefits of both speed and scale - AgileAus 2025
matthewskelton
PRO
0
210
SlackでDMを使わない方が いい理由を説明してみた
walkersumida
1
950
Sales Marker Culture Book(English)
salesmarker
PRO
2
5.4k
Cursor活用ガイド(非エンジニア向け)
satoyusuke
0
180
株式会社レコモット会社紹介資料
recomothr
0
9.6k
Company Deck_2025.06
sixtypercent
0
370
息苦しい目標設定に、さよならを。 〜挑戦するチームへ導く「成長観点」と「給与観点」の使い分け〜
mkitahara01985
3
310
コミュニティでUGCを増やす技術
chlorine0528
1
200
社会の中のわたしの技術 ─ 自分の地図の描き方 #wttjp
yotii23
0
430
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
430
65k
Documentation Writing (for coders)
carmenintech
72
4.9k
Adopting Sorbet at Scale
ufuk
77
9.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Making Projects Easy
brettharned
116
6.3k
Typedesign – Prime Four
hannesfritz
42
2.7k
4 Signs Your Business is Dying
shpigford
184
22k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Why Our Code Smells
bkeepers
PRO
336
57k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
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