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
技術的負債を返し続ける取り組み
Search
akki
May 29, 2021
Technology
0
480
技術的負債を返し続ける取り組み
akki
May 29, 2021
Tweet
Share
More Decks by akki
See All by akki
データの民主化はじめました 俺たちの民主化はこれからだ
akki_megane
0
1.2k
フィーチャートグルを 使って素早く価値を検証する 早く安全に失敗し学ぶために
akki_megane
0
2.1k
「明日からフロントもよろしく」と言われたときに備える Atomic Design
akki_megane
0
3.4k
Editor 調査
akki_megane
0
160
Laravel Vapor Serverless Laravel
akki_megane
2
280
アノテーションコメントについて調べてみた
akki_megane
2
510
入門 無限LT
akki_megane
0
3.8k
PHP Insights - リファクタリングが100倍楽しくなるツール -
akki_megane
3
1.3k
バグを直す前にまずテストを書く
akki_megane
0
1.6k
Other Decks in Technology
See All in Technology
JSON攻略法.pdf
miyakemito
8
4.4k
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
270
**強い**エンジニアのなり方 - フィードバックサイクルを勝ち取る / grow one day each day
soudai
64
19k
ChatworkのSRE部って実は 半分くらいPlatform Engineering部かもしれない
saramune
0
150
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
170
Next'24 事例セッションの紹介とクラウド資格を活用したキャリア形成について語りMuscle
yasumuusan
1
410
2024/4/26 コンピュータ歴史博物館解説告知
toshi_atsumi
0
210
少数チームで挑む: SwiftUI, TCA, KMPを用いた 新規動画配信アプリ 「ABEMA Live」の開発について
tomu28
0
610
On Your Data を超えていく!
hirotomotaguchi
2
610
20240418_Google ColabにLLMが搭載されたようなのでPython x データ分析の勉強方法を考えてみる
doradora09
0
120
長期運用プロジェクトでのMySQLからTiDB移行の検証
colopl
2
800
Meta Quest 3 で動く桜マシマシ WebXR アプリを IBM Cloud Code Engine と Babylon.js で作った話
1ftseabass
PRO
0
110
Featured
See All Featured
RailsConf 2023
tenderlove
2
530
Into the Great Unknown - MozCon
thekraken
10
990
The Invisible Side of Design
smashingmag
294
49k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.3k
Rails Girls Zürich Keynote
gr2m
91
13k
How GitHub (no longer) Works
holman
304
140k
Principles of Awesome APIs and How to Build Them.
keavy
120
16k
KATA
mclloyd
14
12k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
16k
GitHub's CSS Performance
jonrohan
1024
450k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Clear Off the Table
cherdarchuk
83
310k
Transcript
技術的負債を 返し続ける取り組み PHPカンファレンス沖縄 2021/05/29 @akki_megane ~ あなたのPHPのバージョンいくつですか?~
自己紹介 名前:秋葉 誠一 好きな技術:PHP、Vue.js、Serverless 会社:ROXX 趣味:スノボ、サバゲ、野球、アロハシャツ @akki_megane
あなたのPHPは? ## サポート期限 - 7.2 2020/11/03 (サポート終了) - 7.3 2021/12/06
- 7.4 2022/11/28 - 8.0 2023/11/26
あなたのPHPは? バージョンアップするご予定はありますか? 更新されてないライブラリやフレームワークはありませんか? 直したい実装はありませんか? 技術的負債に苦しんでいませんか?
技術的負債 手抜き、ハック、重複などなど、開発速度と期日の名の下に、私たち は数々の狼藉をコードベースにコミットしている。技術的負債とは、そ うした狼藉が時間と共に積み重なったものだ。 君のコードは、常に何かしらの負債を書かている(負債がまったくない というのは、新しいことや、これまでとは違うことに取り組もうとしてな いってことだ) かつては楽しくて気軽でシンプルだった作業が、辛く困難で複雑なも のになって初めて、人は自からが技術的負債を抱えすぎてしまったこ とに気づくんだ。
引用 アジャイルサムライ
技術的負債 - 更新されないVersion(言語、FW、ライブラリ) - 実装が現実と乖離している - 非推奨機能を使った実装 - あのときは最高だと思った設計 -
過去の自分をしばきたいコード - いつか直すと思っているあのバグ - etc,etc
技術的負債 負債がまったくないというのは、新しいことや、これまでとは違うことに 取り組もうとしてないってことだ プロダクトが生き続ける限りは、負債を負い続けるということ 負債は負うということは、返済する必要があるといこと
技術課題リファインメント
前提条件 - 継続的な開発であるか - スクラムに則った開発であるか - スプリントベロシティが計測できているか
リファインメントの説明 リファインメントの活動を通じて、選択に必要な透明性を獲得する。 プ ロダクトバックログアイテムがより小さく詳細になるように、分割および 定義をする活動である。 これは、説明・並び順・サイズなどの詳細を 追加するための継続的な活動である。多くの場合、属性は作業領域 によって異なる。 作業を行う開発者は、その作業規模の評価に責任 を持つ。
開発者がトレードオフを理解して選択できるように、プロダク トオーナーが開発者を支援することもできる。 引用 スクラムガイド2020
技術課題リファインメント STEP1 課題を見つける - よくないコードを見つけた - バージョンアップ情報があった - DB正規化したい 見つけた課題を技術課題バックログに起票します
新機能のバックログとは別に専用のバックログを作ります
技術課題リファインメント STEP2 リファインメントする 内容の詳細化、分割、優先順位決め、見積もりする 誰がやってもいいようにするために 優先順位決めは大事、チームとして何を大切にするかはチームごと決め よう
STEP3 実施 スプリントプランニングの際に、ベロシティポイントを一定の割合で技術 課題に割り当てる 新規開発とは別軸の優先順でやることを決める 起票した人間がやるとは限らない (弊社だと大体10% + 手が空いたら優先的にやる) ※ベロシティポイント
= 1スプリントでチームが提供できる価値のポイント 技術課題リファインメント
STEP4 繰り返す 継続して習慣化する、1回だけでは変わらない プロダクトが開発される続けるかぎり負債は溜まっていきます 継続的に早い段階での負債の返済をおすすめします 技術課題リファインメント
- 新規の開発とは別軸の優先順位になる - 負債の可視化し、優先順位がつけられる - 誰か特定の人がやっているという状況をさける - いつかやるではなく仕組みでカバーする 技術課題リファインメントの利点
まとめ
- 継続的に開発をするうえで技術的負債は必ず発生する - 負債は早い段階で返済しないとどんどん辛くなる - 負債を可視化しよう - 新機能の開発とは別軸の優先順位をつける - 負債の返済を開発のサイクルに組み込み習慣化する
- 後は継続あるのみ まとめ
ROXX 開発メンバー募集 https://speakerdeck.com/roxxrecurit 宣伝
ご清聴ありがとうございました 沖縄に行きたかった