Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
心理的安全性とリファクタリングステップでモブプログラミングはめっちゃ輝く
Search
eiji.ienaga
June 25, 2021
Programming
2.2k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
心理的安全性とリファクタリングステップでモブプログラミングはめっちゃ輝く
Scrum Fest Osaka2021のAgile Studio(永和システムマネジメント)のスポンサーセッション、前半で利用した資料です。
一部修正済み。
eiji.ienaga
June 25, 2021
More Decks by eiji.ienaga
See All by eiji.ienaga
tdd-hajime-no-ippo
haru01
0
250
テストオートメーションと末長くお付き合いするための17のこと
haru01
3
960
20240913知識ポートフォリオ
haru01
0
75
Agile Studioウェビナー~モブプログラミング&テスト駆動開発はじめの一歩~
haru01
0
400
XP祭り2022 xUnit Test Patterns勉強会
haru01
0
1k
agile459-feedback
haru01
1
2.3k
書籍『テスト駆動開発』の紹介(みんなのPython勉強会#37 の発表資料)
haru01
2
8.2k
書籍『テスト駆動開発』7つの魅力のご紹介
haru01
1
1.3k
いえぴょんによる弾丸特急フィードバック講座
haru01
5
680
Other Decks in Programming
See All in Programming
Family mrubyの進捗
kishima
1
110
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
130
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
190
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
910
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
650
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
270
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
150
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
Laravelのアプリケーションをどこにデプロイするか #ツナギメオフライン.9
akase244
0
120
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
130
業務時間外もAIに働いてもらう話
colorful12
3
10k
Press start. Python's next generation.
willingc
PRO
3
330
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
420
Faster Mobile Websites
deanohume
310
32k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
470
Visualization
eitanlees
152
17k
Amusing Abliteration
ianozsvald
1
290
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Documentation Writing (for coders)
carmenintech
77
5.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
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に戻す
今⽇のルール