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
440
モブプログラミングの方法 / 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
73
ドメイン層×日本語プログラミング/seb_sapporo_04
gishi_yama
1
120
Javaへの新たなHello, World / yuruchitose-04
gishi_yama
0
38
JSR381、知っていますか?Javaの画像認識APIのはなし / SC4Y23-05
gishi_yama
0
210
jPeekでのクラスの凝集度計測の試行 / mild-web-sapporo#24
gishi_yama
0
360
Github CopilotとChatGPTを使って感じた使い分けの糸口 / JavaDo #22
gishi_yama
1
1.5k
子ども向けプログラミング体験教室でのHololens2利用事例 / IoTLT#97
gishi_yama
0
100
AWS Serverless Java Container, Spring Bootで試してみた / javado22
gishi_yama
1
650
Hololens2と 小中高プログラミング教育の利用にむけた試行 / XRMTG 2023-1-18
gishi_yama
0
310
Other Decks in Programming
See All in Programming
Lambdaの監視、できてますか?Datadogを用いてLambdaを見守ろう
nealle
2
800
ナレッジイネイブリングにAIを活用してみる ゆるSRE勉強会 #9
nealle
0
170
The Clean ArchitectureがWebフロントエンドでしっくりこないのは何故か / Why The Clean Architecture does not fit with Web Frontend
twada
PRO
57
18k
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
310
PEPCは何を変えようとしていたのか
ken7253
3
310
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
260
The Price of Micro Frontends… and Your Alternatives @bastacon 2025 in Frankfurt
manfredsteyer
PRO
0
140
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
5
1.9k
読まないコードリーディング術
hisaju
1
130
推しメソッドsource_locationのしくみを探る - はじめてRubyのコードを読んでみた
nobu09
2
360
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
21
4.4k
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
320
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
183
22k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Site-Speed That Sticks
csswizardry
4
420
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Product Roadmaps are Hard
iamctodd
PRO
51
11k
Building an army of robots
kneath
303
45k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
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