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
実践エクストリームプログラミング / Extreme Programming in Practice
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kotaro Noguchi
June 24, 2022
Programming
4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
実践エクストリームプログラミング / Extreme Programming in Practice
Kotaro Noguchi
June 24, 2022
More Decks by Kotaro Noguchi
See All by Kotaro Noguchi
アジャイルなチームをつくる『アジャイルリーダーシップ』 / Agile Leadership for Agile Teams
enk
1
1.2k
あなたとスレッドダンプ - 第八回 #渋谷java
enk
10
46k
Other Decks in Programming
See All in Programming
Agentic UI
manfredsteyer
PRO
0
210
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
560
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
220
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
250
SREは、MCPとSRE Agentをこう使え!
kazumax55
0
130
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.7k
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
160
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
370
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
320
Lessons from Spec-Driven Development
simas
PRO
0
230
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.1k
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
The agentic SEO stack - context over prompts
schlessera
0
830
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
My Coaching Mixtape
mlcsv
0
160
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
240
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
150
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Color Theory Basics | Prateek | Gurzu
gurzu
0
380
Discover your Explorer Soul
emna__ayadi
2
1.2k
Transcript
実践エクストリームプログラミング 2022年6月24日 エクストリームプログラミングで見える開発風景 株式会社ユーザベース Product Division 野口光太郎(@enk_enk)
自己紹介 • 野口光太郎(@enk_enk) • 株式会社ユーザベース Product Division ◦ ソフトウェアエンジニア •
好きな ◦ 価値: シンプリシティ ◦ 原則: 人間性 ◦ IDE: IntelliJ IDEA ▪ Visual Studioではない
エクストリームプログラミング XP
XP 5つの価値に対する 不断の注意と、 常に最高のあり方を 求め続ける姿勢 (※現時点の私の理解)
XPの5つの価値 • コミュニケーション • シンプリシティ • フィードバック • 勇気 •
リスペクト
“「運転というのはね、車を正しい方向に 走らせることじゃないの。常に注意を 払って、こっちに行ったら少し戻して、 あっちに行ったら少し戻して、 そうやって軌道修正していくものよ」 これがXPのパラダイムだ。 注意して、適応して、変更する。” Kent Beck, Cynthia
Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、9ページ
“XPのポイントは、改善によって ソフトウェア開発の高みを 目指すことだ。改善のサイクルでは、 明日をよりよくするために必要な 気づきや理解を追い求めながら、 今日できる最高のことをやる。” Kent Beck, Cynthia Andres,
角 征典(訳)『エクストリームプログラミング』オーム社、26ページ
XP 5つの価値に対する 不断の注意と、 常に最高のあり方を 求め続ける姿勢 (※現時点の私の理解)
それを実践する チームの話をします
私たちのチーム(構成) • CTOが(組織図上の)リーダー、残り約100人がメンバー(役職なし) ◦ 「全員がリーダー」という言い方もよくする ◦ 自己組織化によるシェアド・リーダーシップ • 4つのロール ◦
ソフトウェアエンジニア ◦ テストエンジニア ◦ データサイエンティスト ◦ SRE(s) • チーム全体として複数のB2B SaaSを開発・運用 ◦ ロールをミックスした3〜5人程度のサブチーム(以後「小チーム」)で主に活動
私たちのチーム(活動) • 全員同席(※今はオンライン) • 常時ペアプログラミング • 常時TDD(ATDD+TDD) • トランクベース開発と継続的デリバリー •
ストーリー、週次サイクル、四半期サイクル • 運用も自分たちで行う • その他ふつうのアジャイルチームがやってそうなこと ◦ 朝会、ふりかえり……
None
チームon1 ペアプロ ペア+ソロ ペア+ソロ ペアプロ モブプロ 個人作業 ペアプロ ペット プランニング
プロダクト マネージャ ペアワーク 同じ部屋で ソロワーク モブプロ
チームon1 ペアプロ ペア+ソロ ペア+ソロ モブプロ 個人作業 ペット プランニング プロダクト マネージャ
同じ部屋で ソロワーク モブプロ ペアプロ ペアプロ ペアワーク
チームon1 ペアプロ ペア+ソロ ペア+ソロ ペアプロ 個人作業 ペアプロ ペット プランニング プロダクト
マネージャ ペアワーク 同じ部屋で ソロワーク モブプロ モブプロ
チームon1 ペアプロ ペアプロ モブプロ ペアプロ ペット プランニング プロダクト マネージャ ペアワーク
モブプロ 同じ部屋で ソロワーク 個人作業 ペア+ソロ ペア+ソロ
ペアプロ ペア+ソロ ペア+ソロ ペアプロ モブプロ 個人作業 ペアプロ ペット ペアワーク 同じ部屋で
ソロワーク モブプロ プランニング プロダクト マネージャ チームon1
×4
XP 5つの価値に対する 不断の注意と、 常に最高のあり方を 求め続ける姿勢 (※現時点の私の理解)
どうやって?
プラクティスから価値へ
“プラクティスには、何かを始める きっかけになるという利点もある。 ソフトウェア開発を深く理解して いなくても、コードを変更する前に テストを書き始めることができるし、 そこから恩恵を受けることもできる。” Kent Beck, Cynthia Andres,
角 征典(訳)『エクストリームプログラミング』オーム社、11ページ
そして、価値を身体で 理解していくこともできる
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ プラクティスの実践を通じて価値の理解に至る 全員同席 テストファーストプログラミング ペアプログラミング
ストーリー その他色々... コミュニケーション シンプリシティ フィードバック 勇気 リスペクト
プラクティスから価値へ - コミュニケーション • (例)全員同席 ◦ 全員同じオフィスに出社(2019年まで) ◦ 全員同じGather(オンラインワークスペース)で活動(現在) ◦
「ペアプログラミング」や「チーム全体」の礎
プラクティスから価値へ - シンプリシティ • (例)テストファーストプログラミング ◦ シンプリシティ養成ギプス ▪ テストを成功させる最小限のコードだけを書く ▪
リファクタリングし続ける
プラクティスから価値へ - フィードバック • (例)ストーリー ◦ すぐにフィードバックが得られるよう、「顧客の言葉」にこだわる ▪ 「技術ストーリー」を避ける
プラクティスから価値へ - 勇気 • (例)週次サイクル ◦ 現状をごまかさず、ありのまま顧客(ビジネスサイド)と共有する勇気
プラクティスから価値へ - リスペクト • すべて! ◦ すべての活動の根底にはリスペクトがある
ペアプログラミングは価値の学校 • ペアプログラミング ◦ ペアの相手と常にコミュニケーションを取り続ける ◦ お互いにシンプリシティに気を配り、注意し続ける ◦ ペア同士で継続的にフィードバックを与え合う ◦
勇気を持って、常にその場に自分をさらけ出し続ける ◦ リスペクトなくしてペアプロなし https://tech.uzabase.com/entry/2020/12/14/121455
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ プラクティスの実践を通じて価値の理解に至る 全員同席 テストファーストプログラミング ペアプログラミング
ストーリー その他色々... コミュニケーション シンプリシティ フィードバック 勇気 リスペクト
価値を知ることで 「不断の注意」に至る
そして、 よりよいあり方を探求する
価値からプラクティスへ
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ 原則を通じて、価値を体現するプラクティスを探す 全員同席 テストファーストプログラミング ペアプログラミング
ストーリー その他色々... コミュニケーション シンプリシティ フィードバック 勇気 リスペクト
価値からプラクティスへ - コミュニケーション • 100人でチーム全体 ◦ 「多様性」をエクストリームに: 100人分の多様性 ◦ 100人の「チーム」をフル活用する
◦ 話したい(聞きたい)ことがあれば、「小チーム」内の人とも「小チーム」外の人とも話す ▪ いつでも話す、すぐに話す ▪ 小チーム内の人とも小チーム外の人とも、それぞれ1日10〜20回くらいは話す ▪ 他部署(いわゆるビジネスサイド)の人ともすぐ話す • 頻繁なペア交代(a.k.a. プロミスキャスペアリング) ◦ 「冗長性」をエクストリームに: みんなが関わる ◦ 1〜1.5時間に1回ペア交代することで、小チーム(3〜5名程度のチーム)の全メンバーとコ ミュニケーションを取り続ける ※小チーム: ロールをミックスした3〜5人程度のサブチーム
価値からプラクティスへ - シンプリシティ • 1時間デプロイ ◦ 「経済性」をエクストリームに: 究極のフロー効率 ◦ ストーリーを極限まで薄くスライスする
▪ バーティカルスライス(顧客の言葉を使う)にはこだわる ◦ 但書: まだ1時間には至っていません😂 ▪ 目指しているところ ▪ ものにもよるが、今はだいたい「半日デプロイ」くらい
価値からプラクティスへ - フィードバック • トランクベース開発 ◦ 「ベイビーステップ」をエクストリームに: 小さく、常に統合し続ける ◦ リリース可能な状態を保ちながら全員がメインブランチにpushし続けることで、最新のコー
ドを常にフィードバック • 継続的デリバリー ◦ 「流れ」をエクストリームに: 価値を目的地に届け続ける ◦ ストーリー(数時間〜2日目安)の完了ごとにリリースすることで、最短時間でユーザや本番 環境からのフィードバックを得る(まだ公開できない機能にはフィーチャーフラグを使用)
価値からプラクティスへ - 勇気、リスペクト • チームの自己選択 ◦ 「責任の引き受け」をエクストリームに: 「誰と、どの製品に取り組むか」自体を引き受ける ◦ チームシャッフル:
毎月、「小チーム」を選択(移動)できる機会がある ▪ リーダーやマネージャが決めるのではなく、責任ある大人として自分たちで決める • キーボードを「奪い合う」(a.k.a. マイクロペアリング) ◦ 「自己相似性」をエクストリームに: サイクルを極限まで細かく ◦ ドライバーとナビゲータを行き来するのがいいのなら、数秒ごとに行き来すればいいじゃな い ▪ ベースはピンポンペアリング ◦ 勇気とリスペクトを両立するからこそできる
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ 原則を通じて、価値を体現するプラクティスを探す 全員同席 テストファーストプログラミング ペアプログラミング
ストーリー その他色々... コミュニケーション シンプリシティ フィードバック 勇気 リスペクト
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ 「理解」と「実践」を ずっと行き来し続ける フィードバック
XP 5つの価値に対する 不断の注意と、 常に最高のあり方を 求め続ける姿勢 (※現時点の私の理解)
ところで そもそも、なんで 「5つの価値に対する不断の注意と、 常に最高のあり方を求め続ける姿勢」 が大事なんだっけ
ビジネスのニーズと 人(私)のニーズを 同時に満たせるから
“XPは、私自身の ソフトウェア開発の実践のなかで 人間性と生産性を調和させ、 その調和を共有しようとする 試みである。” Kent Beck, Cynthia Andres, 角
征典(訳)『エクストリームプログラミング』オーム社、3ページ
“XPのプラクティスには、 ビジネスニーズと個人の欲求の 両方を満たせるものを選んでいる。” Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、22ページ
XPは「人」
人が人らしく、 最高の仕事をして、 最高の成果を出す。 そのための働き方 =XP
CM🙏
一緒にXPを探求してくれる仲間を探しています! ソフトウェアエンジニア テストエンジニア データサイエンティスト SRE(s)
『The Agile Leader』の翻訳が出ます! • 『SCRUMMASTER THE BOOK』(翔泳社)の著者である Zuzana Šochováさんの本 •
組織をアジャイルにしていくリーダーシップの話 • ユーザベースの有志4名で翻訳し、現在制作中 ◦ 2022年内刊行予定!
FAQ: 「なるほど、いいですね。 でも、できる気がしません」
いろんな答え方が あるけど……。
A(の一つ): 「かつて、Kent Beckの 言葉を信じて実践を始めた 一人のプログラマーが いました」
https://agilejourney.uzabase.com/entry/2022/06/16/101000
“どんな状況でも必ず改善できる。 どんなときでもあなたから改善を始められる。 どんなときでも今日から改善を始められる。” Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、 「はじめに」
“エクストリームプログラミングは ソーシャルチェンジである。” Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、1ページ