モブプログラミングという働き方 #DevLOVE

モブプログラミングという働き方 #DevLOVE

2017年6月18日(日)DevLOVE 200 Bridgeにて。

95aaab3d693889550fd2e7ae02f2f789?s=128

TAKAKING22

June 18, 2017
Tweet

Transcript

  1. !5",",*/( Ϟϒϓϩάϥϛϯάͱ͍͏ಇ͖ํ ϞϒϓϩάϥϛϯάΛ௨ͯ͠ݟͨΞδϟΠϧͷਅ਷ 2017/06/18 DevLOVE 200 Bridge Takao Oyobe (@TAKAKING22)

    Rakuten, Inc.
  2. !5",",*/( ݩؾ ࠓ೔ͷ͓౔࢈

  3. !5",",*/( ஫ҙࣄ߲ 0, ࣸਅࡱӨ0,Ͱ͢ γϟολʔԻʹ͝஫ҙΛ εϥΠυ͸ެ։ࡁͰ͢ ձࣾશମͷ࿩͸͠·ͤΜ ࢲୡͷ࿩Ͱ͢ʢυϯʣ ڭՊॻͷ࿩͸͠·ͤΜ ࢲୡͷ࿩Ͱ͢ʢυϯʣ

    Ϟϒϓϩάϥϛϯά͸ ۜͷ஄ؙͰ͸͋Γ·ͤΜ ແԻΧϝϥΞϓϦ͕͋Δͦ͏Ͱ͢
  4. !5",",*/( ճ͓ΊͰͱ͏͍͟͝·͢

  5. !5",",*/( ॳΊͯͷίϛϡχςΟࢀՃˍൃද͸%FW-07&Ͱͨ͠ IUUQTXXXTMJEFTIBSFOFUEBJQSFTFOUTEFWMPWFIBOHBSGMJHIUTOPXCBSSBHF

  6. !5",",*/( !5",",*/( ٴ෦ܟ༤ ָఱגࣜձࣾΠϯΩϡϕʔγϣϯ։ൃ෦ Ұൠࣾஂ๏ਓΞδϟΠϧνʔϜΛࢧ͑ΔձΛࢧ͑Δձ  ۭલઈޙͷΞδϟΠϧϞϯελʔ ௒ઈౖ౭ͷے೑୲౰ ਪ͠ϝϯɿࢁຊ࠼

  7. !5",",*/( ΤϯδχΞྺ೥ ΞδϟΠϧྺ೥

  8. !5",",*/( ࢲͷΞϓϩʔνํ๏ ΤϯδχΞͷཱ৔Ͱ lϓϩμΫτͷ੒ޭͷͨΊz νʔϜͱҰॹʹվળ׆ಈΛͯ͠Ұॹʹ੒௕͢Δ CZ64"SNZ$PSQTPG&OHJOFFST IUUQTHPPHM38+QK

  9. !5",",*/( Α͘΍Δ͜ͱ ✓ ;Γ͔͑Γ ✓ 4DSVN ✓ 91 ✓ %FW0QT

    ✓ ૊৫վળʢະདྷձٞʣ
  10. !5",",*/( େ੾ͩͱࢥ͏͜ͱ 8IZ 8IBU )PX 4501  $0/5*/6& )PXͷલʹ 8IZͱ8IBUΛߟ͑Δ

    ਎ͷৎʹ߹Θͤͨ վળΛண࣮ʹ౿Ή ΍ΊΔ͜ͱɾଓ͚Δ͜ͱ Λৗʹҙࣝ͢Δ νʔϜશһͰ νʔϜͷͨΊʹߟ͑ͯ νʔϜͷखʹΑͬͯਐΊΔ
  11. !5",",*/( IUUQTTQFBLFSEFDLDPNUBLBLJOH IUUQTXXXTMJEFTIBSFOFU5BLBP0ZPCFQSFTFOUBUJPOT

  12. !5",",*/( ෳ਺ͷݱ৔Ͱ܁Γฦ͠࠶ݱ͖ͯͯ͠ ͜Ε͔Β΋ͨͿΜͰ͖ΔͰ͋Ζ͏ࣗ৴͸͋Δ ݱঢ়Λ஌Γɺ ໰୊Λચ͍ग़͢ ༏ઌॱҐΛ͚ͭΔ ࣮ͭͣͭ֬ʹ ໰୊ղܾΛ͢Δ νʔϜͷ੒௕ͱ Ϗδωε΁ͷߩݙ

  13. !5",",*/( ΤϯδχΞϦϯά νʔϜ Ϗδωε ϓϩμΫτ։ൃʹ͓͚Δཁૉ

  14. !5",",*/( ΤϯδχΞϦϯά νʔϜ Ϗδωε ϓϩμΫτ։ൃʹ͓͚Δཁૉ ͜ͷ͋ͨΓ͔Βೖͬͯ

  15. !5",",*/( ΤϯδχΞϦϯά νʔϜ Ϗδωε ϓϩμΫτ։ൃʹ͓͚Δཁૉ গͣͭ͠޿͍͛ͯ͘ Πϝʔδ

  16. !5",",*/( ͕͔͔ͦͦ࣌ؒ͜͜Δ͠ɺ ຊ౰ͷಆ͍͸ͦͷઌʹ͋Δ 1IPUPCZ4QFODFS)BSSJT IUUQTHPPHMJ)C3O

  17. !5",",*/( IUUQRJJUBDPN5",",*/(JUFNTFEGCFBCBE

  18. !5",",*/( ࠓ೔ͷ͓࿩ ΞδϟΠϧ։ൃΛ௨ͯ͡ ݱ৔ͷ໰୊ղܾͱ޲͖߹͍ଓ͚͖ͯͨࢲ͕ɺ Ϟϒϓϩάϥϛϯάͱ͍͏ಇ͖ํΛ ͸͡ΊͯΈͯಘΒΕֶͨͼ΍ؾ෇͖ͱɺ ͦͷதͰݟͨΞδϟΠϧͷਅ਷ʹ͍͓ͭͯ࿩͠·͢ɻ

  19. !5",",*/( Ϟϒϓϩάϥϛϯάͱ͸ ✓ νʔϜશһ͕Օॴʹू·ͬͯɺ
 ͭͷը໘ɾͭͷ1$Ͱ࡞ۀΛߦ͏͜ͱ ✓ ೥ࠒʹ)VOUFS͕ࣾऔΓ૊Έ࢝Ίͨ ✓ "HJMFͰ8PPEZ;VJMM͕঺հͨ͠ ✓

    ೥݄ʹ͸ॳΊͯͷ.PC1SPHSBNNJOH $POGFSFODF͕։࠵͞Εͨ
  20. !5",",*/( IUUQTXXXZPVUVCFDPNXBUDI WQ@QWTM4H&*

  21. !5",",*/( )VOUFSࣾͷϞϒϓϩάϥϛϯά ✓ ͭͷ෦ॺʢ໿ਓʣ͕ಋೖΛ͍ͯ͠Δ ✓ ͭͷϞϒʹ෇͖ʙਓ͕ଟ͍ ✓ ৗʹϞϒϓϩάϥϛϯάΛ͍ͯ͠Δ ✓ Ϟϒ΁ͷग़ೖΓ͸ࣗ༝

    ✓ ߩݙͰ͖ͳ͔ͬͨΒྡͷϞϒʹҠಈͯ͠΋Α͍
  22. !5",",*/( )VOUFSࣾͷ൴Β͸ɺ ϓϥΫςΟεͱͯ͠Ͱ͸ͳ͘ ಇ͖ํͱͯ͠Ϟϒϓϩάϥϛϯά Λ΍͍ͬͯΔײ͡ )VOUFSࣾΛ๚໰ͨ͠઒ޱ͞Μᐌ͘

  23. !5",",*/( ॳΊͯͷϞϒϓϩάϥϛϯά

  24. !5",",*/( :΍ͬͨ͜ͱ ✓ (8୩ؒͷ೔ؒͰ͓ࢼ͠Ϟϒϓϩάϥϛϯά ✓ ̐ਓνʔϜ ✓ ৽نࣄۀ্ཱͪ͛ͷͨΊͷ10$  ✓

    ٕज़ݕূΛ݉ͶͯϑΝʔετϓϩτλΠϓΛ࡞੒ ˎ10$1SPPG0G$PODFQUʢ֓೦࣮ূʣ
  25. !5",",*/(

  26. !5",",*/( σΟεϓϨΠ 1$

  27. !5",",*/( υϥΠόʔ φϏήʔλʔ φϏήʔλʔ φϏήʔλʔ φϏήʔλʔ (6&45

  28. !5",",*/( ϓϩςΠϯ ).#

  29. !5",",*/( ૝ఆΑΓ΋͏·͍ͬͨ͘ͷͰʜ ✓ ೔ؒͯ͠࠷ऴ೔ʹϏδωεϝϯόʔ޲͚ʹ
 σϞΛ൸࿐ͨ͠ ✓ σϞ൸࿐·Ͱʹࣾ಺ʹ͍Δ૝ఆϢʔβʔʹ
 ෳ਺ճϑΟʔυόοΫΛ΋Βͬͯଈ࣌൓ө

  30. !5",",*/( 8Θ͔ͬͨ͜ͱɾͰ͖ͨ͜ͱ ✓ ϋϚͬͨΓ͠ͳ͕Β΋࣮֬ͳखԠ͑ΛಘΒΕͨ ✓ ೔ؒͰϑΟʔυόοΫϧʔϓΛ਺ճճͤΒΕͨ ✓ ૝ఆϢʔβʔɾϏδωεϝϯόʔΛεϐʔυײͰ
 ڻ͔ͤΔ͜ͱ͕Ͱ͖ͨ Ϟϒϓϩάϥϛϯά͸ୡ੒ײ͕͋ͬͯർΕΔ͚Ͳָ͍͠

  31. !5",",*/( 5࣍ʹ΍Δ͜ͱ ✓ ಇ͖ํͱͯ͠ͷϞϒϓϩάϥϛϯάΛଓ͚ͯΈΔ

  32. !5",",*/( ࢲͨͪͷϞϒϓϩάϥϛϯά
 ʲܧଓதʳ

  33. !5",",*/( ࢲͨͪͷϞϒϓϩάϥϛϯά ✓ ৗʹϞϒϓϩάϥϛϯά ✓ Ϟϒ΁ͷग़ೖΓ͸ࣗ༝ ✓ ϧʔϧ͸ࡉ͔ܾ͘Ίͣʹ΍Γͳ͕Βม͍͑ͯ͘ ✓ ϦʔϯελʔτΞοϓ

    ✓ ։ൃ΋Ӧۀ΋ͳΜͰ΋ϞϒͰߦ͏ ಇ͖ํͱͯ͠ͷϞϒϓϩάϥϛϯάΛऔΓೖΕΔ
  34. !5",",*/( ݸਓͷ׆ಈ࣌ؒ લ೔;Γ͔͑Γˍࠓ೔΍Δ͜ͱ Ϟϒϓϩάϥϛϯά ன৯ Ϟϒϓϩάϥϛϯά Ϟϒ;Γ͔͑Γ Ұ೔ͷྲྀΕ

  35. !5",",*/( ϞϒϓϩάϥϛϯάΛϲ݄ܦͬͨͷͰৼΓฦͬͯΈͨ

  36. !5",",*/( ੜ࢈ੑɾεϐʔυ ৺ཧత҆શੑ ϓϩμΫτ։ൃ ϊ΢ϋ΢ɾεΩϧ఻ൖ

  37. !5",",*/( ੜ࢈ੑɾεϐʔυ ৺ཧత҆શੑ ϓϩμΫτ։ൃ ϊ΢ϋ΢ɾεΩϧ఻ൖ

  38. !5",",*/( ✓ ૝ఆϢʔβʔɾϏδωεϝϯόʔʹ
 εϐʔυͰڻ͖Λ༩͑ΒΕͨ ✓ ٕज़తʹϋϚΔ͕࣌ؒ࠷খݶʹͳΔ ✓ ޙ௥͍ίϛϡχέʔγϣϯ͕ෆཁʹͳΔ ✓ ಇ͘͜ͱʹूதͰ͖Δ

    ੜ࢈ੑɾ։ൃεϐʔυ
  39. !5",",*/( ✓ ேྱ ✓ υΩϡϝϯτ ✓ ϨϏϡʔ ✓ (JU'MPX ✓

    Χϯόϯ ✓ εϓϦϯτϓϥϯχϯά ✓ εϓϦϯτόοΫϩά ✓ ݟੵ΋Γ ϞϒΛ࢝Ίͯͳ͘ͳͬͨ΋ͷ ˰࡞ۀใࠂ͸ෆཁ ˰ඞཁ࠷௿ݶͷΈ ˰ෆཁ ˰࡞ۀϒϥϯν͸ෆཁ ˰ΧονϦͨ͠΋ͷ͸ෆཁ ˰ࠓͷϑΣʔζͰ͸ෆཁ ˰ࠓͷϑΣʔζͰ͸ෆཁ ˰ࠓͷϑΣʔζͰ͸ෆཁ
  40. !5",",*/( ෼୲࡞ۀͷ৔߹ ࡞ۀͷ಺༰Λਂ۷Γͯ͠ΈΔͱʜ ෼୲ͨ͠࡞ۀͷಉظ΍ ෼୲͢ΔͨΊͷίϛϡχέʔγϣϯ ͷ͕࣌ؒҙ֎ͱଟ͍ FY ✓ ϨϏϡʔ ✓

    ೝࣝ߹Θͤ ✓ ใࠂձ ✓ ேྱ
  41. !5",",*/( ෼୲࡞ۀͷ৔߹ ࡞ۀͷ಺༰Λਂ۷Γͯ͠ΈΔͱʜ ΋ͪΖΜϛείϛϡχέʔγϣϯʹ Αͬͯख໭ΓΛ͢ΔՄೳੑ΋͋Δ

  42. !5",",*/( Ϟϒͷ৔߹ ࡞ۀͷ಺༰Λਂ۷Γͯ͠ΈΔͱʜ ✓ ෼୲͢ΔͨΊͷίϛϡχέʔγϣϯ͸ඞཁͳ͍ ✓ νʔϜ಺ͷϛείϛϡχέʔγϣϯʹΑΔ
 ख໭Γ΋جຊతʹ͸ͳ͍

  43. !5",",*/( Ϟϒͷ৔߹ ࡞ۀͷ಺༰Λਂ۷Γͯ͠ΈΔͱʜ ʮ΍ͬͯͳ͍ʯͰ͸ͳͯ͘ৗʹʮ΍͍ͬͯΔʯঢ়ଶ ;Γ͔͑ΓɺϨϏϡʔɺઃܭɺೝࣝ߹Θͤɺݟੵ΋Γɺܭըʜ

  44. !5",",*/( ੜ࢈ੑɾεϐʔυ ৺ཧత҆શੑ ϓϩμΫτ։ൃ ϊ΢ϋ΢ɾεΩϧ఻ൖ

  45. !5",",*/( ✓ ͓ޓ͍ͷಘҙ෼໺Λิ׬͠߹͑Δ ✓ Θ͔Βͳ͍͜ͱΛڭ͑߹͑Δ ✓ ॻ͖ํ΍ਐΊํʹର͢Δߟ͑ํ΍૝͍Λ
 ৗʹ͢Γ߹ΘͤΔ͜ͱ͕Ͱ͖Δ ✓ શһͰμϝͳΒ͠ΐ͏͕ͳ͍ͱࢥ͑Δ

    ✓ ୡ੒ײΛڞ༗Ͱ͖Δ ৺ཧత҆શੑ
  46. !5",",*/( ʮ΍ͬͨʔʂʂʯΛڞ༗Ͱ͖Δ

  47. !5",",*/( ੜ࢈ੑɾεϐʔυ ৺ཧత҆શੑ ϓϩμΫτ։ൃ ϊ΢ϋ΢ɾεΩϧ఻ൖ

  48. !5",",*/( ✓ ৗʹશһ͕஌͍ͬͯΔঢ়ଶΛ࡞ΕΔ ✓ ݁Ռ͚ͩ͡Όͳ͘աఔɾܦҢ͕Θ͔Δ ✓ ํ਑Λৗʹ͢Γ߹ΘͤΒΕΔ ϊ΢ϋ΢ɾεΩϧ఻ൖ

  49. !5",",*/( νʔϜͷ஌ࣝൣғͱͯ͠ͷϕετ #͞Μ $͞Μ "͞Μ

  50. !5",",*/( νʔϜͷ஌ࣝൣғͱͯ͠ͷϕετ #͞Μ $͞Μ "͞Μ ෼୲࡞ۀͷ৔߹ "͞Μͷ஌ࣝൣғ ͳͷͰରԠՄೳ "͞Μͷ஌ࣝൣғ֎Ͱɺ
 #͞ΜʹϨϏϡʔͯ͠

    ΋Βͬͨ৔߹ͷΈ ϑΥϩʔՄೳ "͞Μͷ஌ࣝൣғ֎Ͱɺ $͞ΜʹϨϏϡʔͯ͠ ΋Βͬͨ৔߹ͷΈ ϑΥϩʔՄೳ
  51. !5",",*/( νʔϜͷ஌ࣝൣғͱͯ͠ͷϕετ #͞Μ $͞Μ "͞Μ Ϟϒͷ৔߹ ରԠՄೳ

  52. !5",",*/( ੜ࢈ੑɾεϐʔυ ৺ཧత҆શੑ ϓϩμΫτ։ൃ ϊ΢ϋ΢ɾεΩϧ఻ൖ

  53. !5",",*/( ✓ ৗʹνʔϜʹର࿩͕ੜ·Ε͍ͯΔ ✓ ಈ͘ϓϩμΫτ͕νʔϜͷத৺ʹ͋Δ ✓ िϖʔεͰސ٬ʹ௚઀ձ͍͑ͯΔ ✓ ܭը͸ৗʹมԽ͍ͯ͠Δ ϓϩμΫτ։ൃ

  54. !5",",*/( ͦ΋ͦ΋ৗʹର࿩Λ͠ͳ͍ͱ࢓ࣄ͕ਐ·ͳ͍

  55. !5",",*/( ಈ͘ϓϩμΫτ ϝλϑΝͱͯ͠ಈ͘ϓϩμΫτ͕ৗʹνʔϜͷத৺ʹ͋Δ

  56. !5",",*/( ✓ ৗʹνʔϜʹର࿩͕ੜ·Ε͍ͯΔ ✓ ಈ͘ϓϩμΫτ͕νʔϜͷத৺ʹ͋Δ ✓ िϖʔεͰސ٬ʹ௚઀ձ͍͑ͯΔ ✓ ܭը͸ৗʹมԽ͍ͯ͠Δ ϓϩμΫτ։ൃ

    ͜Εͬͯɾɾɾʂʁ
  57. !5",",*/( IUUQBHJMFNBOJGFTUPPSHJTPKBNBOJGFTUPIUNM

  58. !5",",*/( ࠓ೔͸ࣄྫͷ࿩Λத৺ʹͨ͠ͷͰ Ϟϒϓϩάϥϛϯάͷίπ΍)PXUPͷ࿩Λ͍ͯ͠·ͤΜ

  59. !5",",*/( ࢲୡͱҰॹʹಇ͖·ͤΜ͔ʁ Ϟϒ͠ ✓ ϞϒݟֶˍମݧπΞʔ ✓ Ϟϒϓϩάϥϛϯάษڧձ $POUBDUNF!5",",*/(

  60. !5",",*/( ·ͱΊ

  61. !5",",*/( IUUQTTQFBLFSEFDLDPNUBLBLJOH IUUQTXXXTMJEFTIBSFOFU5BLBP0ZPCFQSFTFOUBUJPOT ࠷ऴతʹʮ΋ͬͱҰॹʹಇ͚͹͍͍ʯ ͱ͍͏݁࿦ʹͳΔ͜ͱ͕ଟ͍

  62. !5",",*/( ✓ ͳͥ࢓ࣄΛ෼୲͢Δඞཁ͕͋Δͷ͔ ✓ Ұॹʹ΍ΔΑΓ΋࢓ࣄΛ෼୲͢Δํ͕ޮ཰తͳͷ͔ ✓ ͳͥόʔδϣϯ؅ཧ͕ඞཁͳͷ͔ ઌೖ؍ʹͱΒΘΕ͍ͯͳ͔͔ͬͨʁ

  63. !5",",*/( ιϑτ΢ΣΞ։ൃ্ͷ໰୊ͷଟ͘͸ɺ ٕज़తͱ͍͏ΑΓࣾձֶతͳ΋ͷͰ͋Δ τϜɾσϚϧίςΟϞγʔɾϦελʔʢϐʔϓϧ΢ΣΞʣ

  64. !5",",*/( ෼୲͢Δ͜ͱΛલఏʹɺ ͦͷͨΊͷίϛϡχέʔγϣϯΛ ͏·͘΍Ζ͏ͱ͍͗ͯ͢͠ͳ͔ͬͨͩΖ͏͔

  65. !5",",*/( %FW -07&

  66. !5",",*/( ϓϩμΫτ͕ಈ͍ͨ࣌ɺ ϓϩμΫτΛ࢖͓ͬͨ٬͞Μ͕تΜͰ͘Εͨ࣌ɺ ஥ؒͱҰॹʹʮ΍ͬͨʔʂʂʯͱݴ͍ͬͯ·͔͢ʁ

  67. !5",",*/( IUUQBHJMFNBOJGFTUPPSHJTPKBNBOJGFTUPIUNM ΞδϟΠϧͷਅ਷͸ͦ͜ʹ͋ΔΜ͡Όͳ͍͔ͳʁ

  68. !5",",*/( ࢥ͍ग़ͤͯ͘͞Εͨͷ͕Ϟϒϓϩάϥϛϯάͩͬͨ

  69. !5",",*/( ୭΋͕͜ͷಇ͖ํΛؾʹೖΔΘ͚Ͱ͸ͳ͍ ஫ҙ

  70. !5",",*/( 1IPUPCZ5IF64"SNZ IUUQTHPPHM:F7VX ೃΕ߹͍Ͱ͸ͳܹࢗ͘͠߹͑Δ ᪳᪯͏͜ͱͳ͘ڞʹӽڥͰ͖Δ ઓ༑

  71. !5",",*/( ͦ͏͍͏ਓୡͱࢲ͸ҰॹʹϞϒ͍ͨ͠ ͸ͨΒ͖

  72. !5",",*/( %FW -07&Ͱ͔͢ʁ ͸ !5",",*/(