Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
大規模なアジャイル開発の現場と技術負債 / 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.6k
コードファーストの考え方。 Amplify Gen2から学ぶAWS次世代のWeb開発体験
yoshiitaka
3
2.1k
Re:cap container Services
yoshiitaka
2
640
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
840
stripeを組み合わせたサーバレスアーキテクチャとシードのスタートアップ ビジネスをグロースするためにやったこと
yoshiitaka
3
690
アジャイル開発と時代の流れに伴うサーバレスアーキテクチャの変化
yoshiitaka
8
5.8k
Other Decks in Technology
See All in Technology
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
500
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
890
20260912_スクラムにジェネラリストは必要か
ryugen04
0
420
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
150
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
170
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
150
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
21
12k
10Xに技術的負債をもたらした「2つの境界の歪み」その構造と解消への営み
10xinc
0
1.9k
データ_AIの事業の勝敗をわけるもの
nek0128
0
360
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
3k
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
1
1.3k
安心して変更できるWebフロントエンドの作り方
pirosikick
4
2.5k
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
4 Signs Your Business is Dying
shpigford
187
23k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
Into the Great Unknown - MozCon
thekraken
41
2.7k
Code Reviewing Like a Champion
maltzj
528
40k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
WENDY [Excerpt]
tessaabrams
14
39k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
What's in a price? How to price your products and services
michaelherold
247
13k
Ethics towards AI in product and experience design
skipperchong
2
370
The agentic SEO stack - context over prompts
schlessera
0
940
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. アジャイルに⼒を与え 共に成⻑し続ける社会を創る