実践エクストリームプログラミング / Extreme Programming in Practice
by
Kotaro Noguchi
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
実践エクストリームプログラミング 2022年6月24日 エクストリームプログラミングで見える開発風景 株式会社ユーザベース Product Division 野口光太郎(@enk_enk)
Slide 2
Slide 2 text
自己紹介 ● 野口光太郎(@enk_enk) ● 株式会社ユーザベース Product Division ○ ソフトウェアエンジニア ● 好きな ○ 価値: シンプリシティ ○ 原則: 人間性 ○ IDE: IntelliJ IDEA ■ Visual Studioではない
Slide 3
Slide 3 text
エクストリームプログラミング XP
Slide 4
Slide 4 text
XP 5つの価値に対する 不断の注意と、 常に最高のあり方を 求め続ける姿勢 (※現時点の私の理解)
Slide 5
Slide 5 text
XPの5つの価値 ● コミュニケーション ● シンプリシティ ● フィードバック ● 勇気 ● リスペクト
Slide 6
Slide 6 text
“「運転というのはね、車を正しい方向に 走らせることじゃないの。常に注意を 払って、こっちに行ったら少し戻して、 あっちに行ったら少し戻して、 そうやって軌道修正していくものよ」 これがXPのパラダイムだ。 注意して、適応して、変更する。” Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、9ページ
Slide 7
Slide 7 text
“XPのポイントは、改善によって ソフトウェア開発の高みを 目指すことだ。改善のサイクルでは、 明日をよりよくするために必要な 気づきや理解を追い求めながら、 今日できる最高のことをやる。” Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、26ページ
Slide 8
Slide 8 text
XP 5つの価値に対する 不断の注意と、 常に最高のあり方を 求め続ける姿勢 (※現時点の私の理解)
Slide 9
Slide 9 text
それを実践する チームの話をします
Slide 10
Slide 10 text
私たちのチーム(構成) ● CTOが(組織図上の)リーダー、残り約100人がメンバー(役職なし) ○ 「全員がリーダー」という言い方もよくする ○ 自己組織化によるシェアド・リーダーシップ ● 4つのロール ○ ソフトウェアエンジニア ○ テストエンジニア ○ データサイエンティスト ○ SRE(s) ● チーム全体として複数のB2B SaaSを開発・運用 ○ ロールをミックスした3〜5人程度のサブチーム(以後「小チーム」)で主に活動
Slide 11
Slide 11 text
私たちのチーム(活動) ● 全員同席(※今はオンライン) ● 常時ペアプログラミング ● 常時TDD(ATDD+TDD) ● トランクベース開発と継続的デリバリー ● ストーリー、週次サイクル、四半期サイクル ● 運用も自分たちで行う ● その他ふつうのアジャイルチームがやってそうなこと ○ 朝会、ふりかえり……
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
チームon1 ペアプロ ペア+ソロ ペア+ソロ ペアプロ モブプロ 個人作業 ペアプロ ペット プランニング プロダクト マネージャ ペアワーク 同じ部屋で ソロワーク モブプロ
Slide 14
Slide 14 text
チームon1 ペアプロ ペア+ソロ ペア+ソロ モブプロ 個人作業 ペット プランニング プロダクト マネージャ 同じ部屋で ソロワーク モブプロ ペアプロ ペアプロ ペアワーク
Slide 15
Slide 15 text
チームon1 ペアプロ ペア+ソロ ペア+ソロ ペアプロ 個人作業 ペアプロ ペット プランニング プロダクト マネージャ ペアワーク 同じ部屋で ソロワーク モブプロ モブプロ
Slide 16
Slide 16 text
チームon1 ペアプロ ペアプロ モブプロ ペアプロ ペット プランニング プロダクト マネージャ ペアワーク モブプロ 同じ部屋で ソロワーク 個人作業 ペア+ソロ ペア+ソロ
Slide 17
Slide 17 text
ペアプロ ペア+ソロ ペア+ソロ ペアプロ モブプロ 個人作業 ペアプロ ペット ペアワーク 同じ部屋で ソロワーク モブプロ プランニング プロダクト マネージャ チームon1
Slide 18
Slide 18 text
×4
Slide 19
Slide 19 text
XP 5つの価値に対する 不断の注意と、 常に最高のあり方を 求め続ける姿勢 (※現時点の私の理解)
Slide 20
Slide 20 text
どうやって?
Slide 21
Slide 21 text
プラクティスから価値へ
Slide 22
Slide 22 text
“プラクティスには、何かを始める きっかけになるという利点もある。 ソフトウェア開発を深く理解して いなくても、コードを変更する前に テストを書き始めることができるし、 そこから恩恵を受けることもできる。” Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、11ページ
Slide 23
Slide 23 text
そして、価値を身体で 理解していくこともできる
Slide 24
Slide 24 text
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ
Slide 25
Slide 25 text
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ プラクティスの実践を通じて価値の理解に至る 全員同席 テストファーストプログラミング ペアプログラミング ストーリー その他色々... コミュニケーション シンプリシティ フィードバック 勇気 リスペクト
Slide 26
Slide 26 text
プラクティスから価値へ - コミュニケーション ● (例)全員同席 ○ 全員同じオフィスに出社(2019年まで) ○ 全員同じGather(オンラインワークスペース)で活動(現在) ○ 「ペアプログラミング」や「チーム全体」の礎
Slide 27
Slide 27 text
プラクティスから価値へ - シンプリシティ ● (例)テストファーストプログラミング ○ シンプリシティ養成ギプス ■ テストを成功させる最小限のコードだけを書く ■ リファクタリングし続ける
Slide 28
Slide 28 text
プラクティスから価値へ - フィードバック ● (例)ストーリー ○ すぐにフィードバックが得られるよう、「顧客の言葉」にこだわる ■ 「技術ストーリー」を避ける
Slide 29
Slide 29 text
プラクティスから価値へ - 勇気 ● (例)週次サイクル ○ 現状をごまかさず、ありのまま顧客(ビジネスサイド)と共有する勇気
Slide 30
Slide 30 text
プラクティスから価値へ - リスペクト ● すべて! ○ すべての活動の根底にはリスペクトがある
Slide 31
Slide 31 text
ペアプログラミングは価値の学校 ● ペアプログラミング ○ ペアの相手と常にコミュニケーションを取り続ける ○ お互いにシンプリシティに気を配り、注意し続ける ○ ペア同士で継続的にフィードバックを与え合う ○ 勇気を持って、常にその場に自分をさらけ出し続ける ○ リスペクトなくしてペアプロなし https://tech.uzabase.com/entry/2020/12/14/121455
Slide 32
Slide 32 text
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ プラクティスの実践を通じて価値の理解に至る 全員同席 テストファーストプログラミング ペアプログラミング ストーリー その他色々... コミュニケーション シンプリシティ フィードバック 勇気 リスペクト
Slide 33
Slide 33 text
価値を知ることで 「不断の注意」に至る
Slide 34
Slide 34 text
そして、 よりよいあり方を探求する
Slide 35
Slide 35 text
価値からプラクティスへ
Slide 36
Slide 36 text
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ
Slide 37
Slide 37 text
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ 原則を通じて、価値を体現するプラクティスを探す 全員同席 テストファーストプログラミング ペアプログラミング ストーリー その他色々... コミュニケーション シンプリシティ フィードバック 勇気 リスペクト
Slide 38
Slide 38 text
価値からプラクティスへ - コミュニケーション ● 100人でチーム全体 ○ 「多様性」をエクストリームに: 100人分の多様性 ○ 100人の「チーム」をフル活用する ○ 話したい(聞きたい)ことがあれば、「小チーム」内の人とも「小チーム」外の人とも話す ■ いつでも話す、すぐに話す ■ 小チーム内の人とも小チーム外の人とも、それぞれ1日10〜20回くらいは話す ■ 他部署(いわゆるビジネスサイド)の人ともすぐ話す ● 頻繁なペア交代(a.k.a. プロミスキャスペアリング) ○ 「冗長性」をエクストリームに: みんなが関わる ○ 1〜1.5時間に1回ペア交代することで、小チーム(3〜5名程度のチーム)の全メンバーとコ ミュニケーションを取り続ける ※小チーム: ロールをミックスした3〜5人程度のサブチーム
Slide 39
Slide 39 text
価値からプラクティスへ - シンプリシティ ● 1時間デプロイ ○ 「経済性」をエクストリームに: 究極のフロー効率 ○ ストーリーを極限まで薄くスライスする ■ バーティカルスライス(顧客の言葉を使う)にはこだわる ○ 但書: まだ1時間には至っていません😂 ■ 目指しているところ ■ ものにもよるが、今はだいたい「半日デプロイ」くらい
Slide 40
Slide 40 text
価値からプラクティスへ - フィードバック ● トランクベース開発 ○ 「ベイビーステップ」をエクストリームに: 小さく、常に統合し続ける ○ リリース可能な状態を保ちながら全員がメインブランチにpushし続けることで、最新のコー ドを常にフィードバック ● 継続的デリバリー ○ 「流れ」をエクストリームに: 価値を目的地に届け続ける ○ ストーリー(数時間〜2日目安)の完了ごとにリリースすることで、最短時間でユーザや本番 環境からのフィードバックを得る(まだ公開できない機能にはフィーチャーフラグを使用)
Slide 41
Slide 41 text
価値からプラクティスへ - 勇気、リスペクト ● チームの自己選択 ○ 「責任の引き受け」をエクストリームに: 「誰と、どの製品に取り組むか」自体を引き受ける ○ チームシャッフル: 毎月、「小チーム」を選択(移動)できる機会がある ■ リーダーやマネージャが決めるのではなく、責任ある大人として自分たちで決める ● キーボードを「奪い合う」(a.k.a. マイクロペアリング) ○ 「自己相似性」をエクストリームに: サイクルを極限まで細かく ○ ドライバーとナビゲータを行き来するのがいいのなら、数秒ごとに行き来すればいいじゃな い ■ ベースはピンポンペアリング ○ 勇気とリスペクトを両立するからこそできる
Slide 42
Slide 42 text
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ 原則を通じて、価値を体現するプラクティスを探す 全員同席 テストファーストプログラミング ペアプログラミング ストーリー その他色々... コミュニケーション シンプリシティ フィードバック 勇気 リスペクト
Slide 43
Slide 43 text
Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、13ページ 「理解」と「実践」を ずっと行き来し続ける フィードバック
Slide 44
Slide 44 text
XP 5つの価値に対する 不断の注意と、 常に最高のあり方を 求め続ける姿勢 (※現時点の私の理解)
Slide 45
Slide 45 text
ところで そもそも、なんで 「5つの価値に対する不断の注意と、 常に最高のあり方を求め続ける姿勢」 が大事なんだっけ
Slide 46
Slide 46 text
ビジネスのニーズと 人(私)のニーズを 同時に満たせるから
Slide 47
Slide 47 text
“XPは、私自身の ソフトウェア開発の実践のなかで 人間性と生産性を調和させ、 その調和を共有しようとする 試みである。” Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、3ページ
Slide 48
Slide 48 text
“XPのプラクティスには、 ビジネスニーズと個人の欲求の 両方を満たせるものを選んでいる。” Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、22ページ
Slide 49
Slide 49 text
XPは「人」
Slide 50
Slide 50 text
人が人らしく、 最高の仕事をして、 最高の成果を出す。 そのための働き方 =XP
Slide 51
Slide 51 text
CM🙏
Slide 52
Slide 52 text
一緒にXPを探求してくれる仲間を探しています! ソフトウェアエンジニア テストエンジニア データサイエンティスト SRE(s)
Slide 53
Slide 53 text
『The Agile Leader』の翻訳が出ます! ● 『SCRUMMASTER THE BOOK』(翔泳社)の著者である Zuzana Šochováさんの本 ● 組織をアジャイルにしていくリーダーシップの話 ● ユーザベースの有志4名で翻訳し、現在制作中 ○ 2022年内刊行予定!
Slide 54
Slide 54 text
FAQ: 「なるほど、いいですね。 でも、できる気がしません」
Slide 55
Slide 55 text
いろんな答え方が あるけど……。
Slide 56
Slide 56 text
A(の一つ): 「かつて、Kent Beckの 言葉を信じて実践を始めた 一人のプログラマーが いました」
Slide 57
Slide 57 text
https://agilejourney.uzabase.com/entry/2022/06/16/101000
Slide 58
Slide 58 text
“どんな状況でも必ず改善できる。 どんなときでもあなたから改善を始められる。 どんなときでも今日から改善を始められる。” Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、 「はじめに」
Slide 59
Slide 59 text
“エクストリームプログラミングは ソーシャルチェンジである。” Kent Beck, Cynthia Andres, 角 征典(訳)『エクストリームプログラミング』オーム社、1ページ