エッセンシャル モブプログラミング 〜実践者が考えるモブの価値,原則,プラクティス〜 / Essential Mob Programming

エッセンシャル モブプログラミング 〜実践者が考えるモブの価値,原則,プラクティス〜 / Essential Mob Programming

ScrumFestOsaka 2020 発表資料です。

0881bf028854bea223770e6bfc0a4065?s=128

Ikuo Suyama

June 27, 2020
Tweet

Transcript

  1. 7.

    ಉ͜͡ͱΛ ಉ࣌ʹ ಉ͡৔ॴͰ ಉ͡ίϯϐϡʔλʔͰʜ On the same thing... At the

    same time... In the same place... On the same computer... —Mob Programming A Whole Team Approach" / Agile 2014, Woody Zuill ϞϒϓϩάϥϛϯάϞϒϓϩ all the brilliant people working…
  2. 11.

    ಉ͜͡ͱΛ ಉ࣌ʹ ಉ͡৔ॴͰ ಉ͡ίϯϐϡʔλʔͰʜ On the same thing... At the

    same time... In the same place... On the same computer... —Mob Programming A Whole Team Approach" / Agile 2014, Woody Zuill ϞϒϓϩάϥϛϯάϞϒϓϩ all the brilliant people working… ಉ͡৔ॴ ͡Όͳͯ͘΋ྑ͔ͬͨͷʁ
  3. 13.
  4. 14.
  5. 18.
  6. 19.
  7. 20.

    ྑͦ͞͏ͳϞϒϓϩ Πϯλʔωοτ΍ ฉ͖ࠐΈͰूΊΔ ྑͦ͞͏ͳ͙͠͞ʹϓϥΫςΟε ʢ*0͕نఆ͞Εͨؔ਺ ݱ࣮ੈք֤จ຺Ͱͷ ࣮૷ ࣮૷Λ௨ͯ͠؍ଌ ͞ΕΔߦಈ ྑ͍ߦಈΛଋͶͯ

    ࣗ෼ͨͪͰ໊લΛ͚ͭΔ ๻ͨͪͷϓϥΫςΟε ΅ͨͪ͘ͷʮྑ͍͜ͱʯ͕ ू໿͞ΕΔํ޲ʹ ʮݪଇʯͱʮՁ஋ʯΛݟग़͢ ๻ͨͪͷ ʮඒ͍͠Ϟϒϓϩʯ
  8. 22.
  9. 32.

    <","> 4NBSU*OQVU%FWJDF̈4USPOH4UZMF1BJS1SPHSBNNJOḦ̈ <ঢ়گ> w φϏήʔλ͕υϥΠόΛಋ͘ํ๏Λ਎ʹண͚͍ͯͳ͍ɻ w υϥΠό͕๫૸ͨ͠ΓɺφϏήʔλ͕஻Γ͗ͨ͢ΓɺϞϒͷձ࿩͕ۃ୺ʹগͳ͔ͬͨΓ͢Δɻ <)PX> w zΞΠσΟΞ͕಄͔Βίϯϐϡʔλʹೖྗ͞ΕΔͨΊʹ͸ɺଞͷ୭͔ͷखΛܦͳ͚Ε͹ͳΒͳ

    ͍ɻzStrong Style Pair-Programming By Llewellyn Falco w φϏήʔλ͸ɺυϥΠό͕ཧղͰ͖Δ࠷ߴͷந৅౓ͰࢦࣔΛग़͢ɻ w υϥΠό͸ɺφϏήʔλͷࢦࣔΛ৴པ͠ɺͦͷࢦࣔΛ࣮ߦ͢Δɻ w ༏͠͞ɺࢥ͍΍ΓɺܟҙΛ͓࣋ͬͯޓ͍ʹ઀͢Δɻ ίΞϓϥΫςΟε͔͍͜͠ೖྗख 4NBSU*OQVU0QFSBUPS †Mob Programming – A Whole Team Approach[https://www.agilealliance.org/resources/experience-reports/mob-programming-agile2014/] - Woody Zuill ††The Mob Programming Guidebook[http://www.mobprogrammingguidebook.com/] - Llewellyn Falco
  10. 33.

    <","> ʔ 0SJHJOBM  <ঢ়گ> w ಛఆͷΤΩεύʔτ͕ৗʹൃݴ͍ͯ͠Δɻ w จࣈͷೖྗϨϕϧͷࡉ͔͍ࢦࣔΛυϥΠόʹग़͍ͯ͠Δɻ <)PX>

    w φϏήʔλ͸ɺৗʹυϥΠό͕ཧղͰ͖Δ࠷ߴͷந৅౓ͷࢦࣔΛग़͢Α͏৺͕͚Δɻ w υϥΠόͷཧղ౓Λ֬ೝ͠ͳ͕ΒɺঃʑʹࢦࣔΛ۩ମԽ͍ͯ͘͠ɻ w FH ˠ ʮ͋ͦ͜Ͱऔಘ͢Δը૾ΛΩϟογϡ͠Α͏ʯ ˠ ʮ999ΫϥεͰɺ:::ͷ"1*Λ࢖ͬͯʜʯ ˠ ʮ/ߦ໨ʹJGΛೖΕͯʜͷॲཧΛʜʯ ϓϥΫςΟεঃʑʹৄࡉʹ /BWJHBUJPO#BDLP⒎
  11. 34.

    <","> 'PSDFE#SFBL̈ <ঢ়گ> w ΈΜͳ͕Ϟϒʹ೤த͠ɺ࣌ؒΛ๨Ε͍ͯΔɻ w ٳܜ͕ͳ͍··௕࣌ؒଓ͚ΔͱɺঃʑʹύϑΥʔϚϯε͕མͪͯ͘Δ <)PX> w νʔϜͰ࣌ؒΛܾΊͯɺશһͰٳܜΛऔΔɻ

    ˠ ΠϕϯτͰަ୅͍ͯ͠Δ৔߹͸ɺλΠϚʔΛηοτͯ͠ɺҰఆཱ͕࣌ؒͬͨΒ ˠ λΠϚʔͰަ୅͍ͯ͠Δ৔߹͸ɺҰఆճ਺ϩʔςʔγϣϯͨ͠Β w ٳܜ͸෼ʙ࣌ؒʹҰճɺʙ෼ɻ ˠ νʔϜͰ࠷దͳִؒΛ୳Δͱྑ͍ɻ ϓϥΫςΟεͪΌΜͱٳܜ 'PSDFE#SFBL †Harvesting Mob Programming Patterns: Observing how we work[https://www.agilealliance.org/resources/experience-reports/harvesting-mob-programming-patterns- observing-how-we-work/] - Michael Keeling, Joe round
  12. 35.

    <","> :FTBOË <ঢ়گ> w ʢଟ͘͸ΤΩεύʔτͷʣυϥΠό͕ɺઌఔ·ͰͷίʔυΛফͯ͠ॻ͖௚ͯ͠͠·͏ɻ w υϥΠό͕φϏήʔλͷࢦࣔʹैΘͣɺࣗ෼ͷࢥ͍௨ΓͷίʔυΛॻ͖࢝ΊΔɻ <)PX> w ଈڵܶͷ:FT

    BOEʢલͷΦϑΝʔΛߠఆͯ͠ɺ৽ͨͳΦϑΝʔΛ௥Ճ͢Δʣϧʔϧɻ w લճ·ͰͷίʔυΛ൱ఆϦϥΠτͤͣɺ௥ՃϦϑΝΫλͯ͠ҭ͍ͯͯ͘ɻ ˠ ݁Ռগ͠͏·͘ߦ͔ͳͯ͘΋ɺͦͷࣦഊ͸νʔϜͷֶͼʹͳΔɻ ϓϥΫςΟεͦ͏ͦ͏ʂͦΕ͔Β :FTBOE †The Mob Programming Guidebook[http://www.mobprogrammingguidebook.com/] - Llewellyn Falco
  13. 38.

    <","> ʔ 0SJHJOBM  <ঢ়گ> w ϞϒΛผʑʹ࡞ۀͨ࣌͠ͱಉ౳Ҏ্ͷྔɾ࣭ɾεϐʔυʹҾ্͖͛Α͏ͱ͍ͯ͠Δɻ w φϏήʔλ͸ҰਓΛ࠾༻͍ͯ͠Δ࣌ɺଞͷϞόʔ͕Ջͦ͏ʹ͍ͯ͠Δɻ <)PX>

    w ΈΜͳ͕φϏήʔλʹͳΓɺৗʹ୭͔ͷઐ໳஌ࣝʹߴ଎ʹΞΫηε͢Δɻ w ίʔυΛॻ͘͜ͱҎ֎ͷɺ͞·͟·ͳϞϒ΁ͷߩݙํ๏Λशಘ͢Δɻ ˠ νʔϜʹφϨοδ͕ͳ͍͜ͱΛૉૣ͘ௐࠪ͠ɺ৘ใΛఏڙ͢ΔϦαʔνϟʔ̈ ˠ ܾఆࣄ߲ΛυΩϡϝϯτʹμϯϓ͢ΔϨίʔμʔ̈ ίΞϓϥΫςΟεΈΜͳ͕ߩݙऀ "MM$POUSJCVUPS †Mob Programming RPG[https://github.com/willemlarsen/mobprogrammingrpg] - Willem Larsen
  14. 39.

    <","> ʔ5SFBTVSF.BQ̈ <ঢ়گ> w ෳࡶͳ໰୊ʹ௚໘͠ɺυϥΠόʔͷख͕ࢭ·ΔφϏήʔλͷࢦ͕ࣔग़ͤͳ͘ͳΔɻ w ࣍ʹਐΉ΂͖ํ޲ʹ͍ͭͯҙݟ͕Ұகͤ͞ΒΕͳ͍ɻ <)PX> w νʔϜ͕ํ޲ΛࣦͬͨΒɺҰ౓ίʔυΛ཭ΕɺϗϫΠτϘʔυʹू·ͬͯٞ࿦͢Δɻ

    w ֓೦ΛਤͰ੔ཧͨ͠Βɺ50%0ϦετΛॻ͍ͯ࣍ʹ΍Δ͜ͱΛ໌֬ʹɻ w ׬શͳ߹ҙΛ໨ࢦ͢ΑΓɺےͷྑͦ͞͏ͳ෺Λݟ͚ͭͨΒɺͱΓ͋͑ͣ΍ͬͯΈΔͷ΋Ұखɻ ϓϥΫςΟεϗϫΠτϘʔυͰʂ 5SFBTVSF.BQ †Mobbing Pattern Language[https://jay.bazuzi.com/Mobbing-Pattern-Language/]
  15. 40.

    <","> ʔ5IFFEHFPGUIFNPC̈ <ঢ়گ> w 10΍ಛఆͷΤΩεύʔτͳͲɺৗʹൃݴ͢Δඞཁ͕ͳ͍ਓΛϞϒʹࢀՃ͍ͤͨ͞ɻ w ΦϯϥΠϯ؀ڥʹ͍Δ౳ͷཧ༝Ͱɺϝϯόʔ͕ϞϒʹूதͰ͖͍ͯͳ͍ɻ <)PX> w ϞϏϯά͍ͯ͠Δ৔ॴʹշదͳҜࢠΛ४උͯ͠ɺʮͪΐͬͱ͚ͩͭͳ͕͍ͬͯΔʯঢ়ଶΛ࡞Δɻ

    w ಺৬ʁ͍͍ΑʂϧʔϧΛ࠾༻͢Δɻ ˠ ϞϒͰ΍Δ·Ͱ΋ͳ͍ࡉ͔ͳ؆୯ͳλεΫΛย෇͚Δɺ౳ w Ϟϒͱܨ͕ΓͭͭɺίʔυΛॻ͘͜ͱҎ֎Ͱͷߩݙͷ༨஍Λ޿͛Δɻ ϓϥΫςΟεϞϒͷ୺ͬ͜ 5IFFEHFPGUIFNPC †Mobbing Pattern Language[https://jay.bazuzi.com/Mobbing-Pattern-Language/] †Remote Mob Programming Patterns[https://www.youtube.com/watch?v=Hy9O9VABeXs&feature=youtu.be] / Mob Mentality Show
  16. 43.

    <","> ʔ 0SJHJOBM  <ঢ়گ> w νʔϜશһ͕ࣗ෼ͷಛٕઐ໳ͰϞϒʹߩݙ͢Δํ๏Λ਎ʹண͚ͨɻ w νʔϜ͕ݸʑਓͷೳྗͷ࠷େҎ্ͷྗΛൃش͠Α͏ͱ͍ͯ͠Δɻ <)PX>

    w ߹੍ٞͰͳ͍νʔϜͷҙࢥܾఆͷํ๏Λཱ֬͠ɺͦΕΛߴ଎ʹ࣮ߦ͠ଓ͚Δɻ w νʔϜશମ͕໨తͷୡ੒ʹ޲͔ͬͯूத͍ͯ͠Δঢ়ଶɺϑϩʔʹೖΔɻɹ w සൟʹҙࢥܾఆ͕ߋ৽͞ΕΔͨΊɺμΠφϛοΫ50%0ϦετΛͭ͘Γͳ͕ΒਐΊΔɻ ίΞϓϥΫςΟε๻͕νʔϜɺνʔϜ͕๻ 0OFJT"MM "MMJT0OF
  17. 44.

    <","> ʔ 0SJHJOBM  <ঢ়گ> w ϞϒͷϝϦοτΛ࠷େݶڗड͠ͳ͕Βɺεϧʔϓοτ΋࠷େԽ͍ͨ͠ɻ <)PX> w 74$PEF-JWF4IBSFͳͲɺಉ࣌ʹෳ਺ਓͰಉ͡ϓϩδΣΫτΛฤूͰ͖Δٕज़Λར༻͢Δɻ

    w φϏήʔλͱυϥΠόΛશһ͕ಉ࣌ʹ͜ͳ͢ɻ w ྫɿ ˠ ΠϯλʔϑΣʔεΛॻ͍ͨͱಉ࣌ʹ࣮૷Λॻ͘ ˠ αʔόʔΫϥΠΞϯτΛಉ࣌ʹߏங͢Δ ϓϥΫςΟεΈΜͳ͕υϥΠόʔ .BOZ%SJWFS ·ͩ੒ޭͨ͜͠ͱ͕ͳ͍ɺະདྷ΁ͷνϟϨϯδɻٕज़తͳ໰୊΋ղܾ͢Δඞཁ͕͋Δɻ
  18. 48.

    <ಛੑར఺> ಉ͡৔ॴʹΈΜͳ͕͍Δ w ඇݴޠͷ৘ใ΍पΓͷۭؾ͕Θ͔Δ ˠ νʔϜΛूதͨ͠ঢ়ଶʹಋ͘ w Ϛγϯ͕ڞ༻ ˠ υϥΠόަ୅ʹ͔͔Δίετ͕θϩ

    ˠ λΠϚʔͰසൟʹυϥΠόΛަ୅ͯ͠ɺूதͨ͠ঢ়ଶΛอͭ w ಉ࣌ଟൃతʹɺෳ਺ͷձ࿩͕Մೳ ˠ ԾʹϞϒΛ෼͚ͨͱͯ͠΋ɺยํʹूத͠ͳ͕Βɺଞͷձ࿩΋ฉ͚Δ ˠ ಉظϞϒ઀ଓϞϒͷΑ͏ͳฒྻԽ͕Մೳ <੍໿> ࡾີ ΦϯαΠτϞϒ
  19. 51.
  20. 52.

    <ಛੑར఺> ΏΔͭ͘ͳ͕͍ͬͯΔ w ΦϯϥΠϯʹৗʹ৔͕͋ΔͷͰϞϒʹਓΛݺͼ΍͍͢ w ผʑͷϚγϯͰɺΰϦοΰϦʹΧελϚΠζͨ͠ϚΠ؀ڥ͕࢖͑Δ <੍໿> ஫ҙྗࢄອ w ίϛϡχέʔγϣϯͷ࣭͕Լ͕Δ

    ˠ Ի੠ϊΠζ΍ΧϝϥʹөΒͳ͍৔߹ͳͲɺඇݴޠͷ৘ใ͕όοαϦམͪͯؾ͖͕ͮݮΔ ˠ ಉ࣌ൃ࿩͕ฉ͖औΓͮΒ͘ɺΠϯλϥΫςΟϒͳ΍ΓͱΓ͕ݮΔ w ৗʹࣗ෼ͷ1$͕໨ͷલʹ͋Δ w HJUૢ࡞΍CVJMEͳͲɺ଴͕ͪ࣌ؒ૿͑ΔɻλΠϚʔͰަ୅͢Δͱ௕͘ͳΓ͕ͪɻ ϦϞʔτϞϒ ੍໿͕͚ͬ͜͏ΩπΠ
  21. 57.
  22. 66.
  23. 74.

    • Patterns ◦ Mobbing Pattern Language ◦ github ◦ Harvesting

    Mob Programming Patterns: Observing how we work / Michael Keeling, Joe round ◦ Remote Mob Programming ◦ A Few Tips for Mob Programming / Tim Ottinger, Industrial logic • Paper/Articles ◦ Mob Programming – A Whole Team Approach / Woody Zuill ◦ Effective Mob Programming Patterns / Maaret Pyhäjärvi and Jeff Langr ▪ ޮՌతͳϞϒϓϩάϥϛϯάύλʔϯ ◦ Solo Programming, Pairing, and Mobbing: Which Is Right for You? / Jeff Langr ◦ Remote Mob-Programming @Hunter Industries (Week 1) • Mob Mentality Show ◦ Remote Mob Programming Patterns / Mob Mentality Show ◦ The Essence of Mob Programming with Woody Zuill / Mob Mentality Show ࢀߟɾҾ༻
  24. 75.

    • Books ◦ Mob Programming A Whole Team Approach /

    Woody Zuill and Kevin Meadows ◦ Mob Programming Guidebook / Maaret Pyhäjärvi ◦ The Mob Programming Guidebook / Llewellyn Falco ◦ Code with the Wisdom of the Crowd Get Better Together with Mob Programming / Mark Pearl ▪ ϞϒϓϩάϥϛϯάɾϕετϓϥΫςΟε • Articles in Japan ◦ ϦϞʔτɾϞϒϓϩάϥϛϯάͱ͍͏ಇ͖ํ ◦ Ϟϒϓϩάϥϛϯά͕౰ͨΓલʹͳΔ·Ͱ ʙಋೖ͔ΒϑϧϦϞʔτԽ·Ͱͷ՝୊ͱղܾʙ ◦ ϦϞʔτͰͰ͖ΔɺϞϒϓϩάϥϛϯάͷקΊ ◦ ϦϞʔτͰϞϒϓϩΛͯ͠ΈͨΒҙ֎ͱྑ͔ͬͨ ◦ ϦϞʔτϫʔΫͰίϛϡχέʔγϣϯ͕଍Γͳ͍ͳΒɺϞϒϓϩ͢Ε͹͍͍͡Όͳ͍ ࢀߟɾҾ༻