Slide 1

Slide 1 text

© 2021 ESM, Inc. ⼼理的安全性とリファクタリングのステップ で、モブプログラミングはめっちゃ輝く 1 2021年6月26日 株式会社永和システムマネジメント Scrum Fest Osaka 2021 スポンサーセッション

Slide 2

Slide 2 text

© 2021 ESM, Inc. 今⽇のメンバー いえぴょん くんみほ ふじみ たくみ

Slide 3

Slide 3 text

© 2021 ESM, Inc. 宣伝 3

Slide 4

Slide 4 text

© 2021 ESM, Inc. 永和システムマネジメント 4 福井本社 東京支社/神田 沖縄事務所 ● 金融、医療、組込み(自動車) ● Web/Cloud、アジャイル開発 ● 社員 220名エンジニア集団

Slide 5

Slide 5 text

© 2021 ESM, Inc. アジャイルジャーニーに伴走する、8つのサービス 5 アジャイルの知識を身につける アジャイル研修 アジャイルチームをはじめてみる アジャイルチーム立ち上げ アジャイル内製チームを実現する 内製化支援 モダンエンジニアへの技術転換 技術転換支援 フルリモートでのアジャイル内製化支援 リモートアジャイルBoot Camp モダンエンジニアとアジャイルチームを組む リモートアジャイル開発 経営層やマネジメント向けのセミナーを実施 組織の方向付け マインドチェンジ 組織への横展開や定着を支援する アジャイル推進・定着支援

Slide 6

Slide 6 text

© 2021 ESM, Inc. Agile Studio 見学のご案内 6 Zoomによるスタジオ⾒学は100社500名の実績︕お気軽にお申込みください。 https://www.agile-studio.jp/tour

Slide 7

Slide 7 text

© 2021 ESM, Inc. ”⼈間性尊重と技術的卓越 の両⽅を⼤切にした 躍動感みなぎるチームを つくりたい︕” コーチングのご相談はこちらまで https://www.agile-studio.jp/ienaga いえぴょんXPコーチへのご相談

Slide 8

Slide 8 text

© 2021 ESM, Inc. 宣伝終了︕ 8

Slide 9

Slide 9 text

© 2021 ESM, Inc. ミニ講義 x リファクタリング& モププロの練習⾵景の⾒学会 9

Slide 10

Slide 10 text

© 2021 ESM, Inc. リファクタリング ⼼理的安全性 モブプログラミング 後でリファクタリングx モブプロの練習⾵景の⾒学 10

Slide 11

Slide 11 text

© 2021 ESM, Inc. リファクタリングとは︖ 11

Slide 12

Slide 12 text

© 2021 ESM, Inc. リファクタリング(名詞)とは︖ ”外部から⾒たときの振る舞いを保ちつつ、 理解や修正が簡単になるように、 ソフトウ ェアの内部構造を変化させること

Slide 13

Slide 13 text

© 2021 ESM, Inc. リファクタリングを ⾏う理由は︖ 13

Slide 14

Slide 14 text

© 2021 ESM, Inc. “リファクタリングの⽬的は、 少ない労 ⼒で多くの価値を⽣み出すべくプログラ ミングの速度を上げることにある。

Slide 15

Slide 15 text

© 2021 ESM, Inc. ソフトウェア設計を改善する ソフトウェアを理解しやすくする バグ発⾒を助ける プログラミングを速める (デザインスタミナ仮説) リファクタリングを⾏う理由は

Slide 16

Slide 16 text

© 2021 ESM, Inc. 時間 まずい設計 すぐれた 設計 デザインスタミナ仮説 累積した 機能の量

Slide 17

Slide 17 text

© 2021 ESM, Inc. ビジネスインパクトが 出しづらくなる。 影響範囲調査に時間がかかる。。。 変更コストが⾼く⾼くなる。。。 意図せずバグ混⼊で対応に⼿間取る。。。 Aさんが抜けて、誰も⼿をつけられなくなった。。。 etc.. リファクタリングや継続的イン テグレーション等の内側ループ 活動が⽋けると, 技術的負債の 重みを背負い、やがて。。。

Slide 18

Slide 18 text

© 2021 ESM, Inc. 技術的負債の放置はシステムのメンテナンス費⽤の⾼額化等を招き、後で⼿痛い経営課題となる DXレポート 〜ITシステム「2025年の崖」克服とDXの本格的な展開〜 経済産業省 https://www.meti.go.jp/shingikai/mono_info_service/digital_transformation/20180907_report.html 技術的負債と経営課題

Slide 19

Slide 19 text

© 2021 ESM, Inc. リファクタリング実施理由 の危険な罠

Slide 20

Slide 20 text

© 2021 ESM, Inc. ”しかし、 私が最も危険な罠と思うのは、 「美しいコード」、 「す ばらしいエンジニアリングのプラクティス」 といった道徳的理由に より、 リファクタリングが正当化される状況です。 リファクタリン グは、 コードベースがどれだけ美しいかではなく、 純粋に経済的な 基準で測られるものです。 リファクタリングするのは、 あくまでも スピードを上げるため、 新機能の追加やバグの修正を速めるためで す。 そのことを常に⼼にとどめるべきですし、 メンバにもその観点 を持って接していく必要があります。

Slide 21

Slide 21 text

© 2021 ESM, Inc. はい。 マーチン・ファウラー先⽣、 危険な罠に気をつけます︕

Slide 22

Slide 22 text

© 2021 ESM, Inc. リファクタリングを ⾏うタイミングは︖ 22

Slide 23

Slide 23 text

© 2021 ESM, Inc. 私のアジャイルチームではプログラミング中に A: 少なくとも10分に1回リファクタリングしている B: 少なくとも1時間に1回リファクタリングしている C: 少なくとも1⽇に1回リファクタリングしている D: 少なくとも1週間に1回リファクタリングしている E: リファクタリングは実施していない。知らない。 リファクタリングの実施頻度アンケート

Slide 24

Slide 24 text

© 2021 ESM, Inc. ”プログラミング中は、1時間に1回は リファクタリングしていると思います。

Slide 25

Slide 25 text

© 2021 ESM, Inc. 機に応じてリファクタリング(⼤半) 計画したリファクタリング(まれ) 機能追加の準備にリファクタリング コード理解の際にリファクタリング コードレビュー時のリファクタリング ゴミ拾いのリファクタリング ⻑期のリファクタリング いつリファクタリングをする︖

Slide 26

Slide 26 text

© 2021 ESM, Inc. テスト駆動開発とリファクタリング 1.RED 2.Green 3.Refactor テストを書いて実⾏する => ビジネス仕様の具体例を明確にする => テスト対象をテストしやすい設計に導く => 安⼼してリファクタリングできる⾜場をつくる ソフトウェア開発は分析-設計-実装-テストレビュー、 結合、デプロイの複雑なダンス。 複雑なダンスをテストを使って駆動させる開発技法 テストがGreen状態のときのみ、リファクタリング する。意図せず壊れたらGreen状態に戻る

Slide 27

Slide 27 text

© 2021 ESM, Inc. TDD⽂脈なら1時間よりもっと短いサイクルで 頻繁にリファクタリング テストがGreen状態のときのみ、 リファクタリングする。 意図せず壊れたらGreen状態に戻る。 安⼼安全⼤事

Slide 28

Slide 28 text

© 2021 ESM, Inc. リファクタリング ⼼理的安全性 モブプログラミング 後でリファクタリングx モブプロの練習⾵景 28

Slide 29

Slide 29 text

© 2021 ESM, Inc. ⼼理的安全性とは︖ 29

Slide 30

Slide 30 text

© 2021 ESM, Inc. ”⼼理的安全性とは、⼤まかに⾔えば「みん なが気兼ねなく意⾒を述べることができ、⾃ 分らしくいられる⽂化」のことだ。 心理的安全性とは? 率直に意⾒を述べても⾮難されない確信 ⾔ったもの負けにはならない わからないことがあれば恥ずかしがらずに質問できる 同僚との信頼、尊敬 ...

Slide 31

Slide 31 text

© 2021 ESM, Inc. 5テップの1つ⽬に⼼理的安全性 「効果的なチームとは何か」を知る https://rework.withgoogle.com/jp/guides/understanding-team-effectiveness/steps/introduction/ 1. ⼼理的安全性 2. 相互信頼 3. 構造と明確さ 4. 仕事の意味 5. インパクト Googleのチーム調査。

Slide 32

Slide 32 text

© 2021 ESM, Inc. ⼼理的安全性とは︖ “...つまり、複雑かつ絶えず変化する環 境で活動する組織において、⼼理的安全 性は価値創造の源として絶対に⽋かせな いものなのである。

Slide 33

Slide 33 text

© 2021 ESM, Inc. ⼼理的安全性についての誤解 33

Slide 34

Slide 34 text

© 2021 ESM, Inc. ⼼理的安全性は、 感じよく振る舞うこととは関係ない 性格の問題ではない 信頼の別名ではない ⽬標達成基準を下げることではない ⼼理的安全性についての誤解

Slide 35

Slide 35 text

© 2021 ESM, Inc. ⼼理的安全性と基準 35

Slide 36

Slide 36 text

© 2021 ESM, Inc. ⼼理的安全性x業績基準が⾼い 基準の⾼い≒ スクラムで表現しなおすなら、プロダクトゴール、スプリント ゴール、完成の定義への確約(コミットメント)

Slide 37

Slide 37 text

© 2021 ESM, Inc. アンケート A B C D 今の職場やチームは、A, B, C, D の どれに近そうですか︖

Slide 38

Slide 38 text

© 2021 ESM, Inc. ”エクストリーム・プログラミングは最も古くからあるアジャイル開発⼿法[mf- nm] の⼀つであ り、 アジャイルの牽引役でした。 今やアジャイル開発⼿法を ⽤いているプロジェクトはかなり多くなり、 アジャイルな考え⽅は⼀般に受け⼊ れられ主流になったと⾔えます。 しかし現実的にはほとんどの 「アジャイル」 プロジェクトは名ばかりのものです。 真にアジャイルなやり⽅を実践するには、 チームメンバはリファクタリングの技能を持ち、 かつ熱⼼に取り組む⼈たちでな ければなりません。 そのために、 開発プロセスの多くは、リファクタリングが 通常の作業の⼀部になることに適合する必要があります。

Slide 39

Slide 39 text

© 2021 ESM, Inc. はい。 マーチン・ファウラー先⽣、 名ばかりにならないよう 精進します︕

Slide 40

Slide 40 text

© 2021 ESM, Inc. リファクタリング ⼼理的安全性 モブプログラミング 後でリファクタリングx モブプロの練習⾵景 40

Slide 41

Slide 41 text

© 2021 ESM, Inc. モブプログラミング︖ 41

Slide 42

Slide 42 text

© 2021 ESM, Inc. 3⼈以上の⼈々がコンピュータに 集まって問題を解決していく活動 モブプログラミング https://www.youtube.com/watch?v=dVqUcNKVb Yg https://www.youtube.com/watch?v=p_pvslS4gEI

Slide 43

Slide 43 text

© 2021 ESM, Inc. ⼼理的安全性を保ちながらモブプログラミング ≒ 過去のリリース結果の傾向、ユーザニーズの有無、 ニーズに応える解決案A,B,Cのトレードオフ、仕様の 抜け漏れや⽭盾、コードの不吉な臭い等を、チーム メンバー同⼠が気兼ねなく意⾒し合う状態を保つこ とで相互学習を促進し、仕事の質の基準を引き上げ て、インパクトを⽣成し続ける活動

Slide 44

Slide 44 text

© 2021 ESM, Inc. なぜモブプログラミング︖ 44

Slide 45

Slide 45 text

© 2021 ESM, Inc. 素早く1つの問題を解決しリリースするため (フロー効率>リソース効率) 外部品質・内部品質UPのため (顧客やユーザ&メンテナンスする⼈にとっての嬉しさUP) 相互学習によるスキル熟達のため (ニーズを理解する、複数の実現⼿段から選ぶ等は難しい作業) なぜモブプログラミング︖

Slide 46

Slide 46 text

© 2021 ESM, Inc. モブプログラミングの 最低限の原則 46

Slide 47

Slide 47 text

© 2021 ESM, Inc. 優しさ、思いやり、尊敬 多様なメンバーで⾒解が⼀致しない対話が続くことが”ふつう”だからこそ、⼤切にする原則 https://github.com/kawaguti/mobprogramming-woodyzuill-ja/blob/master/mobprogramming-ja.md

Slide 48

Slide 48 text

© 2021 ESM, Inc. モブプログラミングの よくあるパターン・コツ 48

Slide 49

Slide 49 text

© 2021 ESM, Inc. https://www.agilealliance.org/resources/experience-reports/harvesting-mob-programming-patterns-observing-how-we-work/ https://github.com/michaelkeeling/mob-programming-patterns チームでパターンを読み合わせて試してみるはお勧め

Slide 50

Slide 50 text

© 2021 ESM, Inc. 本家モブは実務で学びのほかに 1⽇1時間スキルラーニングセッション

Slide 51

Slide 51 text

© 2021 ESM, Inc. スキルラーニングセッション 練習お題を使って リファクタリング X モブ の練習しましょう。 51

Slide 52

Slide 52 text

© 2021 ESM, Inc. 今⽇のルール

Slide 53

Slide 53 text

© 2021 ESM, Inc. 優しさ、思いやり、尊敬 タスクリスト(Punch List) ナチュラルスワップ うまくいったら喜び表現150%増々 ⻑考RedになったらGreenに戻す 今⽇のルール