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
大規模なアジャイル開発の現場と技術負債 / Technical Debt
Search
yoshitaka KOITABASHI
March 22, 2024
Technology
5.8k
23
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大規模なアジャイル開発の現場と技術負債 / Technical Debt
yoshitaka KOITABASHI
March 22, 2024
More Decks by yoshitaka KOITABASHI
See All by yoshitaka KOITABASHI
変化と挑戦:NoSQLとNewSQL Serverless Databaseの技術革新とマルチテナンシーの秘密
yoshiitaka
23
6.5k
コードファーストの考え方。 Amplify Gen2から学ぶAWS次世代のWeb開発体験
yoshiitaka
3
2.1k
Re:cap container Services
yoshiitaka
2
620
The_Frugal_Architectの観点から眺めるServerless.pdf
yoshiitaka
1
190
re:Inventに行くと何を得られ、なぜ人はラスベガスに行くのか
yoshiitaka
0
170
コンテナ支部recapをrecapしよう_気になったコンテナの周りのアップデートを紹介.pdf
yoshiitaka
1
1.1k
AWS re:Invent 2023の期間中に出たコンテナアップデート集
yoshiitaka
4
830
stripeを組み合わせたサーバレスアーキテクチャとシードのスタートアップ ビジネスをグロースするためにやったこと
yoshiitaka
3
650
アジャイル開発と時代の流れに伴うサーバレスアーキテクチャの変化
yoshiitaka
8
5.8k
Other Decks in Technology
See All in Technology
ここは地獄!つらい朝会を体験することで、チームとしてのより良い振る舞いに気づくワークショップ / The stand-up meeting from hell in the game industry
scrummasudar
0
210
”AIを使う” から ”AIに任せる” へ ─ 開発プロセスを再設計してAIを組織標準にするまで
cyberagentdevelopers
PRO
1
130
シンガポールで登壇してきます
yama3133
0
340
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
1.2k
ダッシュボード"開発"について 〜使われるダッシュボードのつくりかた〜
kimichan
0
170
[Droidcon Orlando '26] The Android Lens: Applying Mobile Forensics to AI Performance
amanda_hinchman
1
100
AI工学特論: MLOps・継続的評価
asei
4
130
生成AI×AWS CDK×AWS FISで"振り返れる"ミニGameDayをつくろう
yoshimi0227
2
510
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
160
Alphaモジュール使っていいのかい!?いけないのかい!?どっちなんだいっ!?
watany
1
320
Type-safe IaC for Dart
coborinai
0
180
「守りたい体験」を渡すだけで E2E を生成させられるようになった話
hinac0
2
990
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.4k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
410
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
BBQ
matthewcrist
89
10k
Exploring anti-patterns in Rails
aemeredith
3
450
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.6k
Designing for humans not robots
tammielis
254
26k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Transcript
⼤規模なアジャイル開発の現場と 技術負債 KDDIアジャイル開発センター株式会社
1 KDDI Agile Development Center Corporation ⾃⼰紹介 経歴 ・⼤規模アジャイルチームの技術コンサル /
開発⽀援 ・社内新規事業⽴ち上げ ・コミュニティ活動の推進や OSS 活動の推進 ・海外スタートアップ: MomentoにてCommunity Advocateとして活動 資格・ポートフォリオ・参加コミュニティ YOSHITAKA KOITABASHI ⼩板橋 由誉 [資格・ポートフォリオ] aws solution architect professional 電⼦情報通信学会情報ネットワーク研究会 第5回情報ネットワーク若⼿研究奨励賞受賞 [コミュニティ] Jaws-ug コンテナ⽀部 X(Twitter) / Qiita/ Zenn: Yoshii0110 GitHub: Yoshiitaka
2 KDDI Agile Development Center Corporation とある現場で⾒た技術負債となぜ技術負債が⽣まれ 改善できなかったのかを話します。
3 KDDI Agile Development Center Corporation アジェンダ • 技術負債とは︖ •
とある現場の話 • なぜこんなことになってしまったのか • 改善するためにやったこと • 懺悔タイム • 技術負債が解消されるということは︖ • 継続的な改善
4 KDDI Agile Development Center Corporation 認識が違う技術負債 リリース優先で雑なコードを書き、アーキテクチャの設計をすること あとでやろうとほったらかされているもの 古くなってしまった技術(⾔語やインフラ、フレームワーク)
https://t-wada.hatenablog.jp/entry/ward-explains-debt-metaphor
5 KDDI Agile Development Center Corporation 技術負債の柱 1.時間経過と共に変化した最適化 2.時間/予算/スコープそして犠牲になった品質 3.天からの⼀声
4.意図的/無⾃覚
6 KDDI Agile Development Center Corporation 時間経過と共に変化した最適化 ソフトウェア開発は変化する ◦ ⼈の⼊れ替わり
◦ ビジネスモデル, 業界, 顧客が求めるもの ◦ 技術 ◦ エンジニアの思想 https://speakerdeck.com/toricls/the-debt 結果、犠牲になったものは︖ 継続的な開発における⽣産性
7 KDDI Agile Development Center Corporation 時間/予算/スコープそして犠牲になった品質 時間/予算/スコープ/品質を考慮した時に 何に優先度をつけますか︖ ⾮機能要件、特に品質は犠牲になりがち
https://www.ipa.go.jp/publish/qv6pgp0000000wkj-att/000055008.pdf
8 KDDI Agile Development Center Corporation 神からの⼀声 今この技術、 流⾏ってるから使って︖ リリース⽇は厳守したいし、
もっと早く機能追加して︖ ⼈たらなさそうだから 増員しといたよ 技術負債︖ リファクタリング︖ 何それ美味しいの︖ DDD︖ 今僕らのフェーズでは 早いからできないよ
9 KDDI Agile Development Center Corporation
10 KDDI Agile Development Center Corporation 意識的/無⾃覚 • 意識的 ◦
ある時点で最適と判断し、機能を削ったり品質を落とすこと ◦ 設計に割く時間がなく、過去にやったことがある⼿法で対応 • 無⾃覚 ◦ 負債を負っている⾃覚がない ◦ 技術⼒/設計⼒がない ◦ 怠慢
11 KDDI Agile Development Center Corporation とある現場であった話 エンジニアキャリアの中で見た とある現場での話
12 KDDI Agile Development Center Corporation エンジニアキャリアの中で見たとある現場での話
13 KDDI Agile Development Center Corporation エンジニアキャリアの中で見たとある現場での話 • よくある3層(フロント, バックエンド,
DB)の構成のWebサービス • エンジニアの総勢50名以上 • AWSで構成。神からK8sを使って欲しいという要望でEKSを使⽤ • マイクロサービスは崩壊。複数サービスが動くが、それらが全て 単独のクラスターで運⽤ • インフラとアプリ開発は完全にチームが分断され、IAMにより ReadOnlyの権限のみアプリチームは持っている
14 KDDI Agile Development Center Corporation なぜこんなことになってしまったのか︖
15 KDDI Agile Development Center Corporation 技術負債の柱 1.時間経過と共に変化した最適化 2.時間/予算/スコープそして犠牲になった品質 3.天からの⼀声
4.意図的/無⾃覚
16 KDDI Agile Development Center Corporation なぜこんなことになってしまったのか︖ • 技術の選定、開発サイクルに関する ”意思決定権がチームにない”
• 神を騙す者によるパワーワードに引きづられ “無⾃覚”なまま開発が進んでしまっていること • 意思決定層を納得させることができなかった • チームが当たり前と思っていたことが実は、 当たり前ではなかったこと
17 KDDI Agile Development Center Corporation 理想は、どうあるべきだった︖
18 KDDI Agile Development Center Corporation マイクロサービスとは
19 KDDI Agile Development Center Corporation 理想のマイクロサービス
20 KDDI Agile Development Center Corporation マイクロサービスに伴う技術選定は︖
21 KDDI Agile Development Center Corporation チーム、サービス分割については︖
22 KDDI Agile Development Center Corporation 具体的なアクション
23 KDDI Agile Development Center Corporation 実際に改善するためにやったこと
24 KDDI Agile Development Center Corporation 改善するためにやったこと① • 本プロジェクト内における重要⼈物へのヒアリング ◦
インフラを守る⻑⽼ ◦ 意思決定権持つ⻑⽼ ◦ エンジニアチームのリーダ的⻑⽼、SM、PO) • AWSリソースの確認 • コードの読み込み • 開発サイクルの中で感じるツラミの解き明かし • etc
25 KDDI Agile Development Center Corporation 掘り下げてわかったこと 認識は⼀緒なのに、 要因の理解を互いができていない
26 KDDI Agile Development Center Corporation 改善するためにやったこと② • マイクロサービスとはどんなもので、今の体制の⽋点や アーキテクチャによる⽣産性低下についてを意思決定層へ説明
• イベントストーミングの実施を⼀緒にやろうと提案
27 KDDI Agile Development Center Corporation 改善するためにやったこと③ ⼤きな箇所からの改善ではなく、⼩さな改善をバックログ化 ◦ 例えば、ローカル開発環境の整備。
VS CodeにおけるDevcontainerの整備と展開 ◦ Mockサーバの再起動を⾃動化 https://qiita.com/yoshii0110/items/c480e98cfe981e36dd56
28 KDDI Agile Development Center Corporation 改善するためにやったこと④ • 社内のGitHubにコンテナ/K8sについてをまとめた資料をパブリックに公開 •
⼀回1時間くらいの勉強会を数回、社内向けに開催
29 KDDI Agile Development Center Corporation 懺悔タイム
30 KDDI Agile Development Center Corporation 懺悔タイム 懺悔1: 返済すべき負債を絞るべきだったこと 懺悔2:
改善後、効果があったのかなかったのかを 評価しなかったこと 懺悔3: 新規機能開発を⽌めると意思決定層へ判断させるだけの 説得ができなかったこと 懺悔4: 意思決定層全員が理解するまで繰り返し、 説明を続けられなかったこと 懺悔5: 我々が介⼊した時点で負債を返済するプロジェクト化が 必要だったことに気づいたのが遅すぎたこと
31 KDDI Agile Development Center Corporation 技術負債が解消されると 何が嬉しいのか︖
32 KDDI Agile Development Center Corporation 技術負債が解消されるとは ⾼い⽣産性を維持し続けることができること
33 KDDI Agile Development Center Corporation そもそも⽣産性とは︖ アウトプット量ではなく、質を含んだ価値 我々は、顧客が求めるもの、その結果として、 作ったソフトウェアを使う⼈間が便利になる/幸せになる
ものを作ることが本質 そのためのアジャイル開発であり、 スクラムなんじゃないのか︖
34 KDDI Agile Development Center Corporation 継続的な改善⽅法 Tips
35 KDDI Agile Development Center Corporation 継続的な改善のためのTips 1.DesignDocsの作成 / ADRの作成
2.イベントストーミングの⾒直し 3.開発サイクルの変更
36 KDDI Agile Development Center Corporation DesignDocsの作成 https://qiita.com/yoshii0110/items/32f93e0c8d24cb3207f7 開発者がコーディングに着⼿する前にソフトウェアシステム または、アプリケーションの開発する⼈が作成するドキュメント
37 KDDI Agile Development Center Corporation ADRの作成 ADR - Architecture
Decision Record アーキテクチャに関わる ドキュメントによる決定記録 https://qiita.com/e99h2121/items/f508ef4c9743b8fc9f5b
38 KDDI Agile Development Center Corporation DesignDocs/ADRを作成することの効果 ⼈が⼊れ替わったり、過去に下したアーキテクチャの 判断を思い出す/確認することを補助する =>
改善する際の助けとなる
39 KDDI Agile Development Center Corporation イベントストーミングの⾒直し ビジネスモデルは時間と共に常に変化するもの 何が変化し、システムをどう改善しないといけないのかを ⼿探りで⾏うのではなく・・・
常にドメインを意識し、改善することで最適化される
40 KDDI Agile Development Center Corporation 開発サイクルの変更 もし今の開発サイクルの中で継続的改善ができないのであれば、 いっそのこと開発サイクルごと変えてみるのもありかもしれない。
41 KDDI Agile Development Center Corporation フラクタルスプリント スクラムでやっていた場合、 フラクタルスプリントという1サイクルを切り分けた考え⽅もある。 これにより、より密にPOや意思決定層と会話ができ、ビジネスモデ
ルの変化や開発の⽅向転換が効きやすくなる https://kyon-mm.hatenablog.com/entry/2020/09/21/115958 https://qiita.com/viva_tweet_x/items/3b796be727ad3bd3dfc0
42 KDDI Agile Development Center Corporation 採⽤募集中︕ エンジニア・デザイナー
Be a Change Leader. アジャイルに⼒を与え 共に成⻑し続ける社会を創る