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
2k
心理的安全性とリファクタリングステップでモブプログラミングはめっちゃ輝く
Scrum Fest Osaka2021のAgile Studio(永和システムマネジメント)のスポンサーセッション、前半で利用した資料です。
一部修正済み。
eiji.ienaga
June 25, 2021
Tweet
Share
More Decks by eiji.ienaga
See All by eiji.ienaga
tdd-hajime-no-ippo
haru01
0
110
テストオートメーションと末長くお付き合いするための17のこと
haru01
3
540
20240913知識ポートフォリオ
haru01
0
22
Agile Studioウェビナー~モブプログラミング&テスト駆動開発はじめの一歩~
haru01
0
270
XP祭り2022 xUnit Test Patterns勉強会
haru01
0
740
agile459-feedback
haru01
1
1.8k
書籍『テスト駆動開発』の紹介(みんなのPython勉強会#37 の発表資料)
haru01
2
7.6k
書籍『テスト駆動開発』7つの魅力のご紹介
haru01
1
1.1k
いえぴょんによる弾丸特急フィードバック講座
haru01
5
600
Other Decks in Programming
See All in Programming
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
2
410
JavaScriptツール群「UnJS」を5分で一気に駆け巡る!
k1tikurisu
9
1.8k
Java Webフレームワークの現状 / java web framework at burikaigi
kishida
9
2.2k
Spring gRPC について / About Spring gRPC
mackey0225
0
220
GAEログのコスト削減
mot_techtalk
0
120
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
120
2024年のWebフロントエンドのふりかえりと2025年
sakito
2
250
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
110
負債になりにくいCSSをデザイナとつくるには?
fsubal
9
2.4k
一休.com のログイン体験を支える技術 〜Web Components x Vue.js 活用事例と最適化について〜
atsumim
0
470
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
250
Amazon Bedrock Multi Agentsを試してきた
tm2
1
290
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
91
5.8k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
RailsConf 2023
tenderlove
29
1k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Typedesign – Prime Four
hannesfritz
40
2.5k
Six Lessons from altMBA
skipperchong
27
3.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
A Philosophy of Restraint
colly
203
16k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Music & Morning Musume
bryan
46
6.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
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に戻す
今⽇のルール