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ページ