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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
390
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
250
AIの中の人になってみる
htkym
0
160
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
670
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
0
420
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
130
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
110
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.3k
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
1
480
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
560
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
110
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
420
30 Presentation Tips
portentint
PRO
1
390
The World Runs on Bad Software
bkeepers
PRO
72
12k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Discover your Explorer Soul
emna__ayadi
2
1.3k
First, design no harm
axbom
PRO
2
1.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
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ページ