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
モブプログラミングの方法 / JavaDO #16
Search
Hiroto YAMAKAWA
October 19, 2019
Programming
0
470
モブプログラミングの方法 / JavaDO #16
Kotlin入門:Kotlinらしい書き方をモブプログラミングで学ぼう!
https://javado.connpass.com/event/147516/
Hiroto YAMAKAWA
October 19, 2019
Tweet
Share
More Decks by Hiroto YAMAKAWA
See All by Hiroto YAMAKAWA
開発環境構築の共通要素:必要なものを手元に持ってきて使えるようにする/JavaDo28
gishi_yama
0
110
ドメイン層×日本語プログラミング/seb_sapporo_04
gishi_yama
1
140
Javaへの新たなHello, World / yuruchitose-04
gishi_yama
0
55
JSR381、知っていますか?Javaの画像認識APIのはなし / SC4Y23-05
gishi_yama
0
250
jPeekでのクラスの凝集度計測の試行 / mild-web-sapporo#24
gishi_yama
0
400
Github CopilotとChatGPTを使って感じた使い分けの糸口 / JavaDo #22
gishi_yama
1
1.7k
子ども向けプログラミング体験教室でのHololens2利用事例 / IoTLT#97
gishi_yama
0
120
AWS Serverless Java Container, Spring Bootで試してみた / javado22
gishi_yama
1
780
Hololens2と 小中高プログラミング教育の利用にむけた試行 / XRMTG 2023-1-18
gishi_yama
0
330
Other Decks in Programming
See All in Programming
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
190
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
750
初学者でも今すぐできる、Claude Codeの生産性を10倍上げるTips
s4yuba
16
12k
Deep Dive into ~/.claude/projects
hiragram
14
8.4k
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
410
ふつうの技術スタックでアート作品を作ってみる
akira888
1
1.1k
Result型で“失敗”を型にするPHPコードの書き方
kajitack
5
970
MCPを使ってイベントソーシングのAIコーディングを効率化する / Streamlining Event Sourcing AI Coding with MCP
tomohisa
0
150
CDK引数設計道場100本ノック
badmintoncryer
1
260
The Niche of CDK Grant オブジェクトって何者?/the-niche-of-cdk-what-isgrant-object
hassaku63
1
430
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
270
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
1k
Featured
See All Featured
Producing Creativity
orderedlist
PRO
346
40k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
How GitHub (no longer) Works
holman
314
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
A Modern Web Designer's Workflow
chriscoyier
695
190k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Transcript
ハッシュタグ:#javado Kotlin練習編: モブプログラミングの方法 山川広人 (@gishi_yama) 公立千歳科学技術大学 情報システム工学科 Javaエンジニアグループ北海道 Java Do 1
ハッシュタグ:#javado 公立千歳科学技術大学 情報システム工学科 専任講師 R&D: Experimental Development of ICT (ex:City-Bus Tacking
System) Computer in Education, Programming and Programmer's Learning Community: Hiroto Yamakawa, @gishi_yama 2
ハッシュタグ:#javado 大学の研究開発やIT勉強会でモブプログラミングを取りいれています! 3
ハッシュタグ:#javado What is "Mob Programming"? 4
ハッシュタグ:#javado A day Of Mob Programming 5 https://youtu.be/p_pvslS4gEI https://youtu.be/dVqUcNKVbYg スクラムの中にとりこんでもよい
⇒カイゼン・ジャーニー等を参考
ハッシュタグ:#javado モブプログラミング(モビング) 6 3人以上でグループを組み、 同じ場所・同じ機材で同じプログラミングを行うチームワーク手法 (≒ペアプログラミングの多人数化) 2012年頃にアメリカのHunter社が本格的に取り入れ、 日本では楽天などの開発現場で実利用されていることが有名。 日本でも書籍や実践事例が増えてきている。 モビング(Mobbing),
モブワーク(MobWork)とも。 図引用:TAKAKING22, Mob Programming Startup Manual(https://takaking22.com/2018/mobpro_manual/) ↑の本では、 ドライバーとナビゲーターではなく タイピストとモブ と呼んでおり、 この資料もそれに倣う
ハッシュタグ:#javado モブプログラミングに期待される効果 7 ? ! モブプログラミング: 複数人の質疑や議論の結果で進む ◦ 難しい課題に複数人の知識・スキルで取り組める ◦ 相互に異なる知識・スキルを共有・継承できる
◦ 開発とレビュー、を兼ねられる ◦ コーチ、マネージャ、レビュアー、プロダクトオーナー もモブの一員とし、フィードバックなども ペアプログラミング: 二人の質疑や議論の結果で進む ◦ 難しい課題に二人の知識・スキルで取り組む ◦ 知識・スキルを継承できる × 技術継承の方向性が一方向になりがち × ドライバーとナビゲーターの関係性やスキルの違いが パフォーマンスに影響しがち
ハッシュタグ:#javado モブプログラミングに期待される効果 8 分業によるアウトプット量よりもモブによるアウトカムの向上を重視する 図引用:TAKAKING22, Mob Programming Startup Manual (https://takaking22.com/2018/mobpro_manual/)
https://twitter.com/t_wada/status/1155691342560808965
ハッシュタグ:#javado モブプログラミングに期待される効果 9 技術・経験が深いメンバーによるモビング 技術・経験が浅いメンバーを含むモビング プロダクトマネージャー or オーナー、 上司などを含むモビング 新入社員研修、
新規配属時のスタートアップ、 コードレビュー時など ・情報、知識、技術、文化の 共有・継承・学習 ・モビング手法の会得 難度や重要度の高の部分、 (開発全体に適用してもよい) レトロスペクティブ時など ・知識・技術の一局集中 ・ボトルネックの解消 ・知識、技術の向上と浸透 ・キーパーソンに変わる チームの組織性の向上 スプリントレビュー 成果物レビュー、デモ時など ・認識の共有、軌道修正 ・オーナーシップの育成 ・チームやプロジェクトの改善
ハッシュタグ:#javado How to try "Mob Programming"? 10
ハッシュタグ:#javado • 全員がタイピストによる操作・コーディングを確認できる大きなディスプレイ(プロジェクター) 1 or 2基 ※コーディングと調査用 • モブが考えをまとめるためのホワイトボード、ふせん(KJ法) •
いくつかのアプリ(モブタイマー、IDE) ※私は Mobster というツールをよく使ってます モブプログラミングに推奨される環境 11 図引用: マーク・パール (著)、長尾高弘(訳)、 及部敬雄(解説):モブプログラミング・ベストプラクティス 使い慣れてないキーボードや マウスだと、若干手こずるが、 個人差があって難しい....
ハッシュタグ:#javado 1. 3名以上で集まる 2. モブを行う時間と、時間内に到達を目指すゴール、役割交代のタイミング(10〜15分ごと)を決める 〈モブ〉 ・ 解決すべきプログラム上の課題や問題点に集中し、問題解決のための方法を考え・推測・提案する ・ 新たな問題が発生していないかを探す ・ わからないことはわかるまで質問して、学ぶ 〈タイピスト〉
・モブの合意がとれた提案を、操作やコードの形にして入力する 3. 役割を交代しながら、一週したら休憩などを取る 4. ゴールが達成できたら、みんなで喜ぶ(ハイタッチ!) 5. モブ終了の時間がきたら、次回のモブにむけてふりかえりを行う (KPT: Keep, Problem, Try 、量的評価など) モブプログラミングの流れ 12 ※モブ側に、コーチやマネージャー、 レビュアーやプロダクトオーナーが参加してもよい モブ タイピスト モブ モブ モブ モブ
ハッシュタグ:#javado 1. 〈全員〉内職禁止! ノートPCやデバイスが手元にあっても良いが、メモや簡易の検索に限る (なんなら閉じておく) 割り込み仕事、時間がかかる調査はルールを定めて別に行う (例:短い感覚でこまめに休憩を取る or 席を外す、サイクルを一旦止めて調査専用の時間を作る) 2. 〈全員〉
分からないこと・確認しておきたいことを残してはいけない 分からない事や不安・不明な点が出てくるのは当然であり、そのままにしておくことを恥じる どんな質問・確認であっても、容認し、受け止め、全員の不明点を解消する 質問・確認を言い出しやすい雰囲気や工夫をする(心理的安全を作り出す) 3. 〈タイピスト〉 モブ全体の合意がない操作やコード化をしてはいけない 特定の誰かの意見や指示だけに従ってPCの操作やコード化をしてはいけない モブ全体が合意していることだけに沿って、PCの操作やコード化をする(合意がとれているか確認する) 〈特に初期〉モビングをうまく進めるためのすべからず6箇条(案) 13
ハッシュタグ:#javado 4. 〈タイピスト〉 自分の想像や知識だけでコードを書いてはいけない モブの指示を勝手に解釈し、自らの知識だけで操作やコードを書かない どのようなPCの操作やコードが必要か、モブにつぶさに確認をして、PC操作やコードに反映する 指示に納得できない点がある場合は、タイピストを交代し、モブとして自分の考えを合意に反映する 5. 〈モブ〉 攻撃や差別、ハラスメントをしない
いうまでもないことですが...どんな場合も相手を傾聴し、チームの力になることが大事 意見の衝突や感情的になりそうな時は、誰かが休憩を促す 6. 〈全員〉 時間や順番を守らずに進めてはいけない 役割の交代や全体の時間の厳守、やらなくてはいけない事柄を厳守する 役割は操作の途中でも交代。全体の時間オーバーの場合は潔く中断し、「ふりかえり」を犠牲にせず行う 〈特に初期〉モビングをうまく進めるためのすべからず6箇条(案) 14 べからず集は堅く見えますが、最初はしっかりと守り、アレンジをした方がモビングの効果が高まります
ハッシュタグ:#javado Kotlin Practice with "Mob Programming" 15
ハッシュタグ:#javado 1. TechFulで、プログラミングの演習問題をKotlinで解く https://techful-programming.com/ 2. 渡部さんの「年賀状の宛名をKotlinで出力するプログラム」をKotlinで改良する https://github.com/susan335/Javado-NewYearCard > src/main/kotlin/Main.kt 3.
フリー課題(グループごとに作るものを決める) 前回(Java回)の例 : じゃんけんゲーム 今日の練習内容 どれか一つをグループで選んでください 16
ハッシュタグ:#javado • モブプログラミング・ベストプラクティス https://www.amazon.co.jp/dp/B07NW2S2XV/ • Mob Programming Startup Manual https://takaking22.com/2018/mobpro_manual/
• モブプログラミング 60分間1本勝負 https://fukabori.fm/episode/6 • モブプログラミング Advent Calendar 2018 https://qiita.com/advent-calendar/2018/mobprogramming 参考資料 17