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
実践エクストリームプログラミング / Extreme Programming in Practice
Search
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
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
140
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
110
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
310
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
iOSDC2026登壇資料.pdf
riofujimon
0
130
Security issues being discussed on Web Platforms
petamoriken
0
860
Jetpack Compose メカニズム
skydoves
0
300
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
370
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
110
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
2.8k
AGENTS.md Is Not Enough:Build Skills, Don't Download Them
lx_t
0
110
Java 27新機能 / Java 27 new features
kishida
2
110
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Odyssey Design
rkendrick25
PRO
2
800
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
850
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Optimizing for Happiness
mojombo
378
71k
Amusing Abliteration
ianozsvald
1
290
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
First, design no harm
axbom
PRO
2
1.3k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
460
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
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ページ