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
心理的安全性とリファクタリングステップでモブプログラミングはめっちゃ輝く
Search
eiji.ienaga
June 25, 2021
Programming
4
1.9k
心理的安全性とリファクタリングステップでモブプログラミングはめっちゃ輝く
Scrum Fest Osaka2021のAgile Studio(永和システムマネジメント)のスポンサーセッション、前半で利用した資料です。
一部修正済み。
eiji.ienaga
June 25, 2021
Tweet
Share
More Decks by eiji.ienaga
See All by eiji.ienaga
20240913知識ポートフォリオ
haru01
0
8
Agile Studioウェビナー~モブプログラミング&テスト駆動開発はじめの一歩~
haru01
0
180
XP祭り2022 xUnit Test Patterns勉強会
haru01
0
660
agile459-feedback
haru01
1
1.7k
書籍『テスト駆動開発』の紹介(みんなのPython勉強会#37 の発表資料)
haru01
2
7.4k
書籍『テスト駆動開発』7つの魅力のご紹介
haru01
1
1.1k
いえぴょんによる弾丸特急フィードバック講座
haru01
5
580
アプレンティスシップ・パターンの紹介
haru01
0
310
組織パターンの紹介
haru01
0
110
Other Decks in Programming
See All in Programming
XStateでReactに秩序を与えたい
gizm000
0
740
実践!難読化ガイド
mitchan
0
240
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
0
130
Desafios e Lições Aprendidas na Migração de Monólitos para Microsserviços em Java
jessilyneh
2
150
Composing an API the *right* way (Droidcon New York 2024)
zsmb
2
160
いつか使える ObjectSpace / Maybe useful ObjectSpace
euglena1215
2
140
僕が思い描くTypeScriptの未来を勝手に先取りする
yukukotani
9
2.4k
Swiftコードバトル必勝法
toshi0383
0
170
今インフラ技術をイチから学び直すなら
yuhta28
1
140
Using Livebook to build and deploy internal tools @ ElixirConf 2024
hugobarauna
0
250
Some more adventure of Happy Eyeballs
coe401_
2
190
Google Sign-inの移行から始めるCredential Manager活用
clockvoid
0
410
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
28
1.6k
Scaling GitHub
holman
458
140k
The Brand Is Dead. Long Live the Brand.
mthomps
53
38k
Bash Introduction
62gerente
608
210k
Building Flexible Design Systems
yeseniaperezcruz
325
38k
Designing for humans not robots
tammielis
248
25k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
0
130
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
A better future with KSS
kneath
235
17k
Art, The Web, and Tiny UX
lynnandtonic
294
20k
Fashionably flexible responsive web design (full day workshop)
malarkey
401
65k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
38
9.2k
Transcript
© 2021 ESM, Inc. ⼼理的安全性とリファクタリングのステップ で、モブプログラミングはめっちゃ輝く 1 2021年6月26日 株式会社永和システムマネジメント Scrum
Fest Osaka 2021 スポンサーセッション
© 2021 ESM, Inc. 今⽇のメンバー いえぴょん くんみほ ふじみ たくみ
© 2021 ESM, Inc. 宣伝 3
© 2021 ESM, Inc. 永和システムマネジメント 4 福井本社 東京支社/神田 沖縄事務所 •
金融、医療、組込み(自動車) • Web/Cloud、アジャイル開発 • 社員 220名エンジニア集団
© 2021 ESM, Inc. アジャイルジャーニーに伴走する、8つのサービス 5 アジャイルの知識を身につける アジャイル研修 アジャイルチームをはじめてみる アジャイルチーム立ち上げ
アジャイル内製チームを実現する 内製化支援 モダンエンジニアへの技術転換 技術転換支援 フルリモートでのアジャイル内製化支援 リモートアジャイルBoot Camp モダンエンジニアとアジャイルチームを組む リモートアジャイル開発 経営層やマネジメント向けのセミナーを実施 組織の方向付け マインドチェンジ 組織への横展開や定着を支援する アジャイル推進・定着支援
© 2021 ESM, Inc. Agile Studio 見学のご案内 6 Zoomによるスタジオ⾒学は100社500名の実績︕お気軽にお申込みください。 https://www.agile-studio.jp/tour
© 2021 ESM, Inc. ”⼈間性尊重と技術的卓越 の両⽅を⼤切にした 躍動感みなぎるチームを つくりたい︕” コーチングのご相談はこちらまで https://www.agile-studio.jp/ienaga
いえぴょんXPコーチへのご相談
© 2021 ESM, Inc. 宣伝終了︕ 8
© 2021 ESM, Inc. ミニ講義 x リファクタリング& モププロの練習⾵景の⾒学会 9
© 2021 ESM, Inc. リファクタリング ⼼理的安全性 モブプログラミング 後でリファクタリングx モブプロの練習⾵景の⾒学 10
© 2021 ESM, Inc. リファクタリングとは︖ 11
© 2021 ESM, Inc. リファクタリング(名詞)とは︖ ”外部から⾒たときの振る舞いを保ちつつ、 理解や修正が簡単になるように、 ソフトウ ェアの内部構造を変化させること
© 2021 ESM, Inc. リファクタリングを ⾏う理由は︖ 13
© 2021 ESM, Inc. “リファクタリングの⽬的は、 少ない労 ⼒で多くの価値を⽣み出すべくプログラ ミングの速度を上げることにある。
© 2021 ESM, Inc. ソフトウェア設計を改善する ソフトウェアを理解しやすくする バグ発⾒を助ける プログラミングを速める (デザインスタミナ仮説) リファクタリングを⾏う理由は
© 2021 ESM, Inc. 時間 まずい設計 すぐれた 設計 デザインスタミナ仮説 累積した
機能の量
© 2021 ESM, Inc. ビジネスインパクトが 出しづらくなる。 影響範囲調査に時間がかかる。。。 変更コストが⾼く⾼くなる。。。 意図せずバグ混⼊で対応に⼿間取る。。。 Aさんが抜けて、誰も⼿をつけられなくなった。。。
etc.. リファクタリングや継続的イン テグレーション等の内側ループ 活動が⽋けると, 技術的負債の 重みを背負い、やがて。。。
© 2021 ESM, Inc. 技術的負債の放置はシステムのメンテナンス費⽤の⾼額化等を招き、後で⼿痛い経営課題となる DXレポート 〜ITシステム「2025年の崖」克服とDXの本格的な展開〜 経済産業省 https://www.meti.go.jp/shingikai/mono_info_service/digital_transformation/20180907_report.html 技術的負債と経営課題
© 2021 ESM, Inc. リファクタリング実施理由 の危険な罠
© 2021 ESM, Inc. ”しかし、 私が最も危険な罠と思うのは、 「美しいコード」、 「す ばらしいエンジニアリングのプラクティス」 といった道徳的理由に
より、 リファクタリングが正当化される状況です。 リファクタリン グは、 コードベースがどれだけ美しいかではなく、 純粋に経済的な 基準で測られるものです。 リファクタリングするのは、 あくまでも スピードを上げるため、 新機能の追加やバグの修正を速めるためで す。 そのことを常に⼼にとどめるべきですし、 メンバにもその観点 を持って接していく必要があります。
© 2021 ESM, Inc. はい。 マーチン・ファウラー先⽣、 危険な罠に気をつけます︕
© 2021 ESM, Inc. リファクタリングを ⾏うタイミングは︖ 22
© 2021 ESM, Inc. 私のアジャイルチームではプログラミング中に A: 少なくとも10分に1回リファクタリングしている B: 少なくとも1時間に1回リファクタリングしている C:
少なくとも1⽇に1回リファクタリングしている D: 少なくとも1週間に1回リファクタリングしている E: リファクタリングは実施していない。知らない。 リファクタリングの実施頻度アンケート
© 2021 ESM, Inc. ”プログラミング中は、1時間に1回は リファクタリングしていると思います。
© 2021 ESM, Inc. 機に応じてリファクタリング(⼤半) 計画したリファクタリング(まれ) 機能追加の準備にリファクタリング コード理解の際にリファクタリング コードレビュー時のリファクタリング ゴミ拾いのリファクタリング
⻑期のリファクタリング いつリファクタリングをする︖
© 2021 ESM, Inc. テスト駆動開発とリファクタリング 1.RED 2.Green 3.Refactor テストを書いて実⾏する =>
ビジネス仕様の具体例を明確にする => テスト対象をテストしやすい設計に導く => 安⼼してリファクタリングできる⾜場をつくる ソフトウェア開発は分析-設計-実装-テストレビュー、 結合、デプロイの複雑なダンス。 複雑なダンスをテストを使って駆動させる開発技法 テストがGreen状態のときのみ、リファクタリング する。意図せず壊れたらGreen状態に戻る
© 2021 ESM, Inc. TDD⽂脈なら1時間よりもっと短いサイクルで 頻繁にリファクタリング テストがGreen状態のときのみ、 リファクタリングする。 意図せず壊れたらGreen状態に戻る。 安⼼安全⼤事
© 2021 ESM, Inc. リファクタリング ⼼理的安全性 モブプログラミング 後でリファクタリングx モブプロの練習⾵景 28
© 2021 ESM, Inc. ⼼理的安全性とは︖ 29
© 2021 ESM, Inc. ”⼼理的安全性とは、⼤まかに⾔えば「みん なが気兼ねなく意⾒を述べることができ、⾃ 分らしくいられる⽂化」のことだ。 心理的安全性とは? 率直に意⾒を述べても⾮難されない確信 ⾔ったもの負けにはならない
わからないことがあれば恥ずかしがらずに質問できる 同僚との信頼、尊敬 ...
© 2021 ESM, Inc. 5テップの1つ⽬に⼼理的安全性 「効果的なチームとは何か」を知る https://rework.withgoogle.com/jp/guides/understanding-team-effectiveness/steps/introduction/ 1. ⼼理的安全性 2.
相互信頼 3. 構造と明確さ 4. 仕事の意味 5. インパクト Googleのチーム調査。
© 2021 ESM, Inc. ⼼理的安全性とは︖ “...つまり、複雑かつ絶えず変化する環 境で活動する組織において、⼼理的安全 性は価値創造の源として絶対に⽋かせな いものなのである。
© 2021 ESM, Inc. ⼼理的安全性についての誤解 33
© 2021 ESM, Inc. ⼼理的安全性は、 感じよく振る舞うこととは関係ない 性格の問題ではない 信頼の別名ではない ⽬標達成基準を下げることではない ⼼理的安全性についての誤解
© 2021 ESM, Inc. ⼼理的安全性と基準 35
© 2021 ESM, Inc. ⼼理的安全性x業績基準が⾼い 基準の⾼い≒ スクラムで表現しなおすなら、プロダクトゴール、スプリント ゴール、完成の定義への確約(コミットメント)
© 2021 ESM, Inc. アンケート A B C D 今の職場やチームは、A,
B, C, D の どれに近そうですか︖
© 2021 ESM, Inc. ”エクストリーム・プログラミングは最も古くからあるアジャイル開発⼿法[mf- nm] の⼀つであ り、 アジャイルの牽引役でした。 今やアジャイル開発⼿法を
⽤いているプロジェクトはかなり多くなり、 アジャイルな考え⽅は⼀般に受け⼊ れられ主流になったと⾔えます。 しかし現実的にはほとんどの 「アジャイル」 プロジェクトは名ばかりのものです。 真にアジャイルなやり⽅を実践するには、 チームメンバはリファクタリングの技能を持ち、 かつ熱⼼に取り組む⼈たちでな ければなりません。 そのために、 開発プロセスの多くは、リファクタリングが 通常の作業の⼀部になることに適合する必要があります。
© 2021 ESM, Inc. はい。 マーチン・ファウラー先⽣、 名ばかりにならないよう 精進します︕
© 2021 ESM, Inc. リファクタリング ⼼理的安全性 モブプログラミング 後でリファクタリングx モブプロの練習⾵景 40
© 2021 ESM, Inc. モブプログラミング︖ 41
© 2021 ESM, Inc. 3⼈以上の⼈々がコンピュータに 集まって問題を解決していく活動 モブプログラミング https://www.youtube.com/watch?v=dVqUcNKVb Yg https://www.youtube.com/watch?v=p_pvslS4gEI
© 2021 ESM, Inc. ⼼理的安全性を保ちながらモブプログラミング ≒ 過去のリリース結果の傾向、ユーザニーズの有無、 ニーズに応える解決案A,B,Cのトレードオフ、仕様の 抜け漏れや⽭盾、コードの不吉な臭い等を、チーム メンバー同⼠が気兼ねなく意⾒し合う状態を保つこ
とで相互学習を促進し、仕事の質の基準を引き上げ て、インパクトを⽣成し続ける活動
© 2021 ESM, Inc. なぜモブプログラミング︖ 44
© 2021 ESM, Inc. 素早く1つの問題を解決しリリースするため (フロー効率>リソース効率) 外部品質・内部品質UPのため (顧客やユーザ&メンテナンスする⼈にとっての嬉しさUP) 相互学習によるスキル熟達のため (ニーズを理解する、複数の実現⼿段から選ぶ等は難しい作業)
なぜモブプログラミング︖
© 2021 ESM, Inc. モブプログラミングの 最低限の原則 46
© 2021 ESM, Inc. 優しさ、思いやり、尊敬 多様なメンバーで⾒解が⼀致しない対話が続くことが”ふつう”だからこそ、⼤切にする原則 https://github.com/kawaguti/mobprogramming-woodyzuill-ja/blob/master/mobprogramming-ja.md
© 2021 ESM, Inc. モブプログラミングの よくあるパターン・コツ 48
© 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 チームでパターンを読み合わせて試してみるはお勧め
© 2021 ESM, Inc. 本家モブは実務で学びのほかに 1⽇1時間スキルラーニングセッション
© 2021 ESM, Inc. スキルラーニングセッション 練習お題を使って リファクタリング X モブ の練習しましょう。
51
© 2021 ESM, Inc. 今⽇のルール
© 2021 ESM, Inc. 優しさ、思いやり、尊敬 タスクリスト(Punch List) ナチュラルスワップ うまくいったら喜び表現150%増々 ⻑考RedになったらGreenに戻す
今⽇のルール