Team development at Ubiregi Inc. (Rails Developers Meetup 2019)

Fb3abcfe726ed35ed15befacc256bbfe?s=47 katorie
March 22, 2019

Team development at Ubiregi Inc. (Rails Developers Meetup 2019)

株式会社ユビレジでは主に3つのプロダクトを、すべて自社メンバーによるチームで開発・運用しています。1年半ほど前から取り入れているスクラム開発でどんな日々を過ごしているのかお話したいと思います。

We, at Ubiregi Inc., build and run three software products all by ourselves. I will talk about how our team work together, after introducting Scrum one and a half years ago.

Fb3abcfe726ed35ed15befacc256bbfe?s=128

katorie

March 22, 2019
Tweet

Transcript

  1. ϢϏϨδͷνʔϜ։ൃ RAILS DEVELOPERS MEETUP 2019 2019/3/22 @katorie

  2. katorieͱ͍͍·͢ • Rails Girls Tokyo 2ndଔۀੜ • ϢϏϨδͰΤϯδχΞσϏϡʔ͠·ͨ͠ • 2ࡀࣇͱ෉ͷ3ਓ฻Β͠

    • খּݪྲྀḦ஡ಓڭत
  3. ͍͍ͩͨ͜ͷΞΠίϯ ֆͷ্खͳํʹඳ͍͍͖ͯͨͩ·ͨ͠

  4. ϢϏϨδྺ ʹ ΤϯδχΞྺ! • ϢϏϨδ͔͠஌Βͳ͍ • ʮ͜ΕͰɺ͍͍ͷ͔ͳ…ʁʯͱࢥ͏͜ͱ͕ ͋Δ

  5. ʮॆ෼Ͱ͢ɻʯˌŪůŠŪ

  6. ϢϏϨδͷνʔϜ։ൃʹ͍ͭͯ ͷ͓࿩ • ಛʹ͜͜1೥൒͘Β͍ͷεΫϥϜ։ൃ • ͲΜͳ෩ʹ΍͍ͬͯΔ͔

  7. ԿͰ͜ͷ࿩ʹ͔ͨ͠ • ୯७ʹಇ͖΍͍͢ͳͬͯࢥ͍ͬͯΔ͔Β࿩͠ ͔ͨͬͨʢޙ൒ʹ࿩͠·͢ʣ • ଞʹ͍͍΍Γํ͕͋ͬͨΒڭ͑ͯཉ͍͔͠Β ·ͣ͸ൃ৴ͯ͠ΈΑ͏

  8. εΫϥϜνʔϜ • ਓ਺͸10ʙ15ਓ͘Β͍ • ͜͜਺ϲ݄Ͱೖࣾͨ͠ϝϯόʔ͕໿൒਺ • 2νʔϜʹͳͬͨ

  9. iPadΛ࢖ͬͨPOSϨδ ϢϏϨδ • iPad޲͚ΞϓϦ • Objective-C / Swift • αʔόʔαΠυ

    • Ruby on Rails / React.js • Heroku • MySQL • Ubiregi for Salesforce
  10. ΦʔμʔγεςϜɹFlickOrder • iPhone / iPod touch / iPad޲͚ΞϓϦ • Objective-C

    / Swift • αʔόʔαΠυ • Scala • Google App Engine • Google Cloud Datastore
  11. ࡏݿ؅ཧγεςϜɹStockScan • iPhone / iPod touch / iPad޲͚ΞϓϦ • Objective-C

    / Swift • αʔόʔαΠυ • Python / JavaScript • Google App Engine • MySQL
  12. ಛ௃ • ΋ͱ΋ͱϓϩμΫτ͝ͱʹ։ൃ͕όϥόϥͩͬͨ ͱ͍͏ྺ࢙తഎܠ • αʔόʔαΠυͷݴޠ • iOSΞϓϦͷઃܭ • ϓϩμΫτ͝ͱʹνʔϜΛ෼͚ΔͷͰ͸ͳ͘ɺશ

    һͰશϓϩμΫτΛ։ൃɾӡ༻͢Δ
  13. Ͳ͏ͯ͠εΫϥϜ։ൃʁ • ΋ͱ΋ͱ͸iOSνʔϜʴαʔόʔαΠυνʔϜ • ͦΕͧΕͰ։ൃ͍ͯ͠ΔͱɺϦϦʔε·ͰͷಓͷΓ͕ ݥ͍͠ • ݟੵ΋Γͷਫ਼౓ • ਐḿ֬ೝ

    • ଐਓԽ
  14. εΫϥϜ։ൃ 1εϓϦϯτɿ2िؒ

  15. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ εΫϥϜνʔϜ

    ͷिؒ
  16. ετʔϦʔ PBIʢϓϩμΫτόοΫϩάΞ ΠςϜʣ ୯ҐͰͷ։ൃ

  17. PBI͕ϦϦʔε͞ΕΔ·Ͱ ϓϩμΫτ όοΫϩά ΞΠςϜ ʢ1#*ʣ 3FWJFX BQQ ࣾ಺഑෍༻ ΞϓϦ ϦϦʔε

    &Pull Request &POνΣοΫ ϨϏϡʔ ։ൃ PO PO εΫϥϜνʔϜ εΫϥϜνʔϜ
  18. PBIΛ؅ཧ͢ΔϦϙδτϦ 10͸ཁ݅ΛNBSLEPXOϑΝΠϧʹ·ͱΊͯ13 ༏ઌॱҐ͸͜͜Ͱ֬ೝ

  19. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ ि͕ؒ

    ͸͡·ΔΑʂ
  20. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ •

    εϓϦϯτͷ੒Ռ෺Λશࣾ޲͚ʹσϞ • ಈ͘΋ͷΛݟͤͯϑΟʔυόοΫ΋ΒͬͨΓ • ࣭໰ड͚ͨΓ ଞνʔϜͷ൓Ԡ͕͏Ε͍͠ʂୡ੒ײ͋Δʂ
  21. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ •

    λΠϜϥΠϯ֬ೝɺKPTग़͠ • λΠϜϥΠϯ͸๨Ε͕ͪͳͷͰຖ೔ॻ͍͍ͯ Δ • ݸਓతͳ͜ͱ΋ॻ͘ʢ஀ੜ೔ͱ͔ه೦೔ͱ͔ ཱྀߦઌͱ͔ʣ
  22. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ •

    ͸͡ΊʹΩϟύγςΟ֬ೝʢॕ೔΍ࣾ಺Πϕϯτ΍༗څر๬ͳ Ͳʣ • ੵ·Ε͍ͯΔPBIͷ༏ઌॱҐͷ্͔Β • PBI͝ͱʹλεΫΛચ͍ग़͠ΧϯόϯʹషΓ෇͚ • షΓग़ͨ͠λεΫ͕׬ྃͰ͖Δ͔֬ೝ • ग़དྷͳͦ͞͏ͳΒݮΒ͢ɺ΋ͬͱ͍͚ͦ͏ͩͬͨΒ଍͢ • ߹ҙܗ੒ͷ্ɺεϓϦϯτ։࢝
  23. ΧϯόϯͰλεΫ؅ཧ ϓϩμΫτόοΫ ϩάΞΠςϜ όοΫϩά ։ൃத In Review αΠϯΞοϓͨ͠λεΫʹ໊લ ิ଍ʢ଴ͪཧ༝౳ʣ

  24. ͜͜Ͱͪΐͬͱখ࿩

  25. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ •

    εϓϦϯτͷऴΘΓʹʮ͓ർΕʯΛ͢Δձ • SUSHI͸ͷ࣌΋͋Ε͹ͦ͏Ͱͳ͍࣌΋͋Δ • ʢϦϑΝΫλϦϯάத…ʣ
  26. εϓϦϯτSUSHI ͯ͠·͔͢ʁ

  27. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ

  28. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ •

    ετʔϦʔ͝ͱʹϦϦʔεલνΣοΫ • αʔόʔɿHeroku Review App / staging • iOSɿApple Developer Enterprise Program
  29. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ •

    िʹҰ౓ͷΧελϚʔαΫηεɾηʔϧεɾϚʔέςΟϯά νʔϜͱϦϦʔεձٞΛߦ͍λΠϛϯάΛௐ੔ • αʔόʔଆ͸౎౓ʢຊ൪ == masterʣ • iOSΞϓϦ͸೔༵23͔࣌Βஈ֊తϦϦʔε • ҿ৯ళͰͷར༻͕ଟ͍ͷͰɺ೔༵ਂ໷͔Β݄༵ޕલத͸ͪΐ ͬͱམͪண͍͍ͯΔ͜ͱ͕ଟ͍ • ฏ೔ϥϯνλΠϜ΍༵ۚ༦ํҎ߱ͷσϓϩΠ͸ආ͚Δ
  30. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ •

    ઃܭͷೝࣝ߹Θͤ • ௐࠪ΍εύΠΫ͕ඞཁͳ΋ͷΛ֬ೝ • PBIͷTγϟπαΠζݟੵ΋Γ
  31. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ ετʔϦʔͱ

    ௚઀ؔ܎ͳ͍͚Ͳʜ
  32. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ •

    ओʹ։ൃνʔϜશମ΁޲͚ͯɺٕज़ωλڞ༗ձ • νʔϜશମͷ஌ࣝϨϕϧΞοϓ • ԶͷϥΠϒϥϦΛݟͯ͘Εɺͱ͔ • ΈΜͳͰνϡʔτϦΞϧ΍ͬͯΈΑ͏ɺͱ͔ • ΠϕϯτࢀՃใࠂɺͱ͔
  33. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ •

    ۓٸ౓͕ͦ͜·Ͱߴ͘ͳ͍issueΛ౗͢೔ • Πϯγσϯτ༝དྷͷissue͸ͳΔ΂͘ૣ͘ରԠ ͍ͨ͠ • GitHub ProjectͰ؅ཧ
  34. BugMashϓϩδΣΫτ • GitHub Projects issue࡞੒࣌ʹProjectsΛ௥Ճ ࢛൒ظ͝ͱͷClosed਺͕Θ͔Δ

  35. σϞɾৼΓฦΓɾܭըͮ͘Γ 1 on 1 όάϚογϡσʔ POνΣοΫɾϦϦʔε४උ ϢϏςοΫ εϓϦϯτSUSHI ϓϩμΫτόοΫϩάɾϦϑΝΠϯϝϯτ •

    ී௨ʹ΍͍ͬͯ·͢ • ۙྡͷΧϑΣͰ΍Δ͜ͱ΋ ☕☺
  36. ೔ʑͷਐḿ֬ೝɾ૬ஊ͸ σΠϦʔελϯυΞοϓ

  37. σΠϦʔελϯυΞοϓ • ֤νʔϜͰࡢ೔΍ͬͨ͜ͱɺࠓ೔΍Δ͜ͱɺࠔ͍ͬͯΔ͜ͱ Λڞ༗ • Πϯγσϯτͷঢ়گ • Ξφ΢ϯεʢۈଵ৘ใ΍प஌͍ͨ͜͠ͱʣ • ৼΓฦΓͷ࣌ͷͨΊʹʮࡢ೔͋ͬͨ͜ͱʯΛΧϨϯμʔʹ෇

    ᝦͰష͓ͬͯ͘ • ଍Γͳ͍࿩͸2࣍ձ΁
  38. ͜͜·Ͱ͸ ܭը͍ͯ͠Δ

  39. ΠϯγσϯτରԠ • ΧελϚʔαΫηενʔϜ͔ΒͷΤεΧϨ͕ඈΜͰ͘Δ • ʮΠϯγσϯτνϟϯωϧʯ͕࡞੒͞ΕΔͷͰͦ͜Ͱ ٞ࿦͢Δ • Ҏલ͸ि͝ͱʹ୲౰ΛܾΊ͍͚ͯͨͲɺࠓ͸ओͳ୲౰ ͕2ਓʢϦʔμʔͱࢲʣ •

    ख͕ۭ͍͍ͯΔਓ͕ௐࠪʹऔΓֻ͔Δ
  40. Πϯγσϯτൃੜ ͓໰͍߹Θͤ౳ Basecamp TODO࡞੒ !ௐࠪ #inc_xxxxx !ରԠ !ใࠂʢ#BTFDBNQʣ ֬ೝ !ΠϯγσϯτϨϙʔτ

    !߃ٱରԠ͸JTTVFʹͯ͠όάϚογϡϓϩδΣΫτ΁ ͳʹ͔
  41. Πϯγσϯτൃੜ ͓໰͍߹Θͤ౳ Basecamp TODO࡞੒ !ௐࠪ #inc_xxxxx !ରԠ !ใࠂʢ#BTFDBNQʣ ֬ೝ !ΠϯγσϯτϨϙʔτ

    !߃ٱରԠ͸JTTVFʹͯ͠όάϚογϡϓϩδΣΫτ΁ ͳʹ͔ • ʮΠϯγσϯτνϟϯωϧʯ͕࡞੒͞ΕΔͷ Ͱͦ͜Ͱٞ࿦͢ΔʢεϨουېࢭʣ • Ұ࣍ड͚୲౰͕͍Δ͚ΕͲɺ୭͕ௐࠪɾରԠ ͯ͠΋͍͍
  42. Πϯγσϯτൃੜ ͓໰͍߹Θͤ౳ Basecamp TODO࡞੒ !ௐࠪ #inc_xxxxx !ରԠ !ใࠂʢ#BTFDBNQʣ ֬ೝ !ΠϯγσϯτϨϙʔτ

    !߃ٱରԠ͸JTTVFʹͯ͠όάϚογϡϓϩδΣΫτ΁ ͳʹ͔
  43. Πϯγσϯτൃੜ ͓໰͍߹Θͤ౳ Basecamp TODO࡞੒ !ௐࠪ #inc_xxxxx !ରԠ !ใࠂʢ#BTFDBNQʣ ֬ೝ !ΠϯγσϯτϨϙʔτ

    !߃ٱରԠ͸JTTVFʹͯ͠όάϚογϡϓϩδΣΫτ΁ ͳʹ͔ • ໰୊ͷ֓ཁɺରԠͷ֓ཁɺࠓޙͷରԠɺͦͷ ଞॏཁͳ৘ใ • Ұ࣌ରԠ·ͰͰϨϙʔτ͸ऴྃ
  44. ͦͷ΄͔

  45. ͋Εཉ͍͠ɺͦ͜ߦ͖͍ͨ • ٕज़ॻಡΈ͔ͨͬͨΒ • ΧϯϑΝϨϯεߦ͖͔ͨͬͨΒ • ׻ܴձ͔ͨͬͨ͠Β • େը໘ཉ͔ͬͨ͠Β ɿΓΜٞਃ੥ͷ͜ͱ

  46. Slack • times_***ʢ෼ใʣ • reacjichanneler • ༷ʑͳझຯνϟϯωϧ

  47. ͜͜·Ͱ͸ ΍Γํͱ͔πʔϧͷ࿩

  48. νʔϜࣗຫ͠·͢ʂʂ

  49. ͳΜͰ͜Μͳʹ ؾ࣋ͪΑ͘ಇ͚ΔΜͩΖ͏

  50. ී௨ͷߟ͑Λී௨ʹେ੾ʹ͢Δ • ୭͔͕ݏͳ͜ͱ͸ΈΜͳ͕ݏͳ͜ͱ • ୭͔͕΍Γ͍ͨ͜ͱ͸ΈΜͳ͕΍Γ͍ͨ͜ͱ • ΈΜͳͷੑ֨ɾಛٕͳͲύʔιφϦςΟΛଚ ॏ͍ͯ͠Δ

  51. ೔ৗ෩ܠ

  52. ͍͍ͱ͜Ζ • νʔϜશһͰ߹ҙ • ཧղͰ͖͍ͯͳ͍ਓ͕͍ͳ͘ͳΔ·Ͱ࿩͢ • ୭͕΍ͬͯ΋͍͍ • ୭͔͕΍Ε͹͍͍ͷͰ͸ͳ͘ɺ୭΋͕ཧղ͍ͯ͠Δ •

    νʔϜશһͰ੒ՌΛग़͢͜ͱΛେࣄʹ͍ͯ͠Δ
  53. ͍͍ͱ͜Ζ • ࣗ෼͕Ͱ͖Δͱ͜Ζʹૉૣ͘ίϛοτ • ΍Γ͍ͨʂͱ͍͏ͱ΍Βͤͯ͘ΕΔงғؾ • ͨ·ʹϑΥϩʔͷίϛοτ͕ੵ·ΕΔ

  54. ΈΜͳͷ͍͍ͱ͜Ζ ಘҙͳ͜ͱΛҾ͖ग़ͯ͠ νʔϜશମͷύϫʔʹ ม͑Δ

  55. ϓϨογϟʔʹײͨ͡Β • ग़དྷΔ͜ͱ͕ͳ͍͔΋ • ࣗ৴ͳ͍͔΋ • ͦΜͳ࣌͸ϖΞϓϩʢϞϒϓϩʣ • PRʹͳͬͨ΋ͷΛݟΔΑΓɺѹ౗తʹཧղͰ͖Δ •

    ஌ݟ΋ڞ༗Ͱ͖Δ
  56. ؾΛ͚͍ͭͯΔ͜ͱ • νʔϜϝϯόʔ͕ݟ͑Δͱ͜ΖʹιʔεΛஔ͘ • νʔϜϝϯόʔ͕ݟ͑Δͱ͜ΖͰൃݴ͢Δ • ٙ໰ɺࢥͬͨ͜ͱΛ͙ͭ͢Ϳ΍͍ͯΈΔʢҧͬ ͨΒҧͬͨͰOKͷؾ࣋ͪʣ • ్தͰ͍͍͔Βڞ༗͢Δ

  57. ௕͗͢Δ

  58. Α͋͘Δߦಈ • ࡞ۀܦաΛSlackͰ͜·Ίʹใࠂʢ#times_***, #inc_***ʣ • ݟ͍ͯΔϦϯΫઌɺΤϥʔϩάΛ͙͢షΔ • [WIP] Λ͚ͭͯ͜·Ίʹpush •

    ࠣࡉͳ͜ͱ΋஌ݟͱͯ͠Qiita teamʹ࢒͢ • ΈΜͳͷҙݟ͕ཉ͍͠ͱ͖͸issueΛͨͯΔ
  59. ൃݴू • ʮ΋͔ͯ͠͠ʯʢͪΐͬͱͨ͠ؾ͖ͮ΍ٙ໰Λ͙͢ൃ͢Δʣ • ʮͪΐͬͱڭ͍͑ͯͩ͘͞ʯ • ʮ͜͏͍͏ҙຯͰ߹ͬͯ·͔͢ʁʯ • ʮͰ͸ɺ͓ئ͍͍͍ͯ͠Ͱ͔͢ʁʯ •

    ʮҰॹʹ΍ͬͯ΋Β͑·͔͢ʁʯ • ʮେৎ෉Ͱ͔͢ʁʯ
  60. ͍͢͝ϝϯόʔͱҰॹʹ ΋ͷͮ͘Γ͕Ͱָ͖͍ͯ͠

  61. ऴΘΓʹ • ձࣾ΍νʔϜʹΑͬͯࣄ৘͸༷ʑ • ϢϏϨδͱ͍͏Ұྫͷ࿩ • ʮ͍͍ͳʯͱࢥ͏ͱ͜Ζ͸ࣗ෼ͷνʔϜʹ ϑΟοτ͢ΔΑ͏ʹΞϨϯδͯ͠ΈΔͱ͍͍ ͔΋

  62. νʔϜ։ൃ ͍͢͝ʂ ָ͍͠ʂʂ νʔϜࣗຫ͠·͠ΐ͏ʂʂ