Gunosyの地味で高速な 新規事業開発・改善の実際 / How to make your team productive.

Gunosyの地味で高速な 新規事業開発・改善の実際 / How to make your team productive.

The presentation slides at Forkwell Meetup #5

5bfed9aa3a9ebccb0c0f0cb65ee9e012?s=128

Seiji Takahashi

October 14, 2017
Tweet

Transcript

  1. Gunosyͷ஍ຯͰߴ଎ͳ ৽نࣄۀ։ൃɾվળͷ࣮ࡍ @__timakin__ / Forkwell Meetup#5

  2. ࣗݾ঺հ • Seiji Takahashi • Github: timakin / Twitter: @__timakin__

    • גࣜձࣾGunosy ৽نࣄۀ։ൃࣨ • Go / Swift
  3. ΞδΣϯμ • Gunosy৽نࣄۀ։ൃࣨͱ͸ʁ • ੜ࢈ੑΛ্͛ΔͨΊͷऔΓ૊Έ

  4. Gunosy৽نࣄۀ։ൃࣨͱ͸ʁ

  5. Gunosyͷ5ʙ10೥ޙͷ੒௕Λ࡞Δ΂͘ɺ VR΍ARɺԻ੠UIͳͲࠓޙීٴ͢ΔՄೳੑͷ͋Δ
 ৽͍͠σόΠε΍ٕज़Λݚڀ͠ɺ
 ৽نαʔϏεͷ্ཱͪ͛ͳͲΛߦ͏෦ॺ

  6. ΍Δ͜ͱ • Ϧαʔν • ւ֎ͷઌਐࣄྫͷ·ͱΊ • SDKͷެࣜDocs΍Github repoͷίʔυΛړͬͯ࠷৽ٕ ज़ͷνϡʔτϦɾԠ༻ྫΛ୳Δ •

    SlackʹRSS௨஌ɺϨϙʔτڞ༗ • ։ൃ • ͓ன͍ͭͰʹνϡʔτϦϋοΧιϯ • ্ཱ͕ͪΓظ͸ۃྗখن໛νʔϜͰ
  7. ࣮ࡍͷ༷ࢠ

  8. None
  9. ੜ࢈ੑΛ্͛ΔͨΊͷऔΓ૊Έ

  10. ͦ΋ͦ΋ੜ࢈ੑͱ͸ʁ

  11. ੜ࢈ੑ = Output / Input

  12. ౤ࢿޮ཰ੑͰ͋ͬͯ
 ੜ࢈(Output)૯ྔͰ͸ͳ͍

  13. Output: ࿑ಇʹΑΔ੒Ռ • Ϣʔβʔ΁ͷ෇ՃՁ஋
 • اۀͷܦࡁత෇ՃՁ஋ʢརӹʣ
 • ଈ࠲ʹརӹʹ௚݁͠ͳ͍͕
 ओཁKPIʹߩݙ͢ΔऔΓ૊Έ

  14. Input: ࢿݯͷ౤ೖྔ • ਓతࢿݯͷ౤ೖྔ • ্هؚΉࢿݯ΁ͷࡒݯͷ౤ೖྔ • ࡞ۀ࣌ؒ

  15. ੜ࢈ੑΛ্͛Δํ๏ OutputΛ૿΍͢ InputΛݮΒ͢

  16. ੜ࢈ੑΛ্͛ΔͨΊͷऔΓ૊Έ • νʔϜن໛ͷ཈੍ • ։ൃظؒͱ࢓༷ͷ཈੍ • ֤ΤϯδχΞͷ୲౰෼໺ͷ֦ு • ։ൃϑϩʔͷࣗಈԽ •

    ΠϯηϓγϣϯσοΩ • εϓϦϯτ • ੵۃతͳKPIڞ༗
  17. ੜ࢈ੑΛ্͛ΔͨΊͷऔΓ૊Έ • νʔϜن໛ͷ཈੍ • ։ൃظؒͱ࢓༷ͷ཈੍ • ֤ΤϯδχΞͷ୲౰෼໺ͷ֦ு • ։ൃϑϩʔͷࣗಈԽ •

    ΠϯηϓγϣϯσοΩ • εϓϦϯτ • ੵۃతͳKPIڞ༗
  18. νʔϜن໛ͷ཈੍ • Ϧαʔν • جຊ͸։ൃνʔϜ • ࣄۀ෦શମͰɺଞͷνʔϜ͔Β΋ڵຯ͋Δਓ΋Slackͳ ͲͰίϝϯτ • ։ൃ

    • ։ൃɺ࢓༷ࡦఆશମΛΤϯδχΞ2, 3໊Ͱߦ͏
  19. νʔϜ͕গͳ͍ͱɺ
 ࡞ۀ޻਺ / ਓ͕๲ΒΜͰ
 ਏ͍ݱ৔ʹͳΔͷͰ͸ʁ

  20. ͦ͏Ͱ΋ͳ͍Ͱ͢Αʂ

  21. খن໛νʔϜͷϝϦσϝ • ҙࢥܾఆ଎౓͕୯७ʹ্ ͕Δ • Ϗδϣϯͷޡ͕ࠩগͳ͘ ͯ͢Ή • ਐḿ֬ೝʹཁ͢Δ͕࣌ؒ গͳ͍

    • গ਺Ͱ৐Γ੾Δ੍໿
 => ҙࣝతʹແବͳ։ൃ Λ͠ͳ͘ͳΔ ϝϦοτ σϝϦοτ • ୯७ʹ࣮૷Մೳͳػೳͷ ਺͕ݮΔ • ٕज़ελοΫ͕ภΔͱΧ όʔࠔ೉ • ࢓༷࡟ݮͷ౒ྗΛ੯͠Ή ͱࣦഊ͠΍͍͢
  22. খن໛νʔϜͷϝϦσϝ • ҙࢥܾఆ଎౓͕୯७ʹ্ ͕Δ • Ϗδϣϯͷޡ͕ࠩগͳ͘ ͯ͢Ή • ਐḿ֬ೝʹཁ͢Δ͕࣌ؒ গͳ͍

    • গ਺Ͱ৐Γ੾Δ੍໿
 => ҙࣝతʹແବͳ։ൃ Λ͠ͳ͘ͳΔ ϝϦοτ σϝϦοτ • ୯७ʹ࣮૷Մೳͳػೳͷ ਺͕ݮΔ • ٕज़ελοΫ͕ภΔͱΧ όʔࠔ೉ • ࢓༷࡟ݮͷ౒ྗΛ੯͠Ή ͱࣦഊ͠΍͍͢
  23. ࠓඞཁͳ΋ͷΛݟۃΊͯ ༰ࣻແ͘ྔΛݮΒ͢ ͕ॏཁ

  24. ੜ࢈ੑΛ্͛ΔͨΊͷऔΓ૊Έ • νʔϜن໛ͷ཈੍ • ։ൃظؒͱ࢓༷ͷ཈੍ • ֤ΤϯδχΞͷ୲౰෼໺ͷ֦ு • ։ൃϑϩʔͷࣗಈԽ •

    ΠϯηϓγϣϯσοΩ • εϓϦϯτ • ੵۃతͳKPIڞ༗
  25. ։ൃظؒͱ࢓༷ͷ཈੍ ෆཁͳػೳΛॳظ࢓༷͔Β࡟Δج४ 1. ΞϓϦͷίϯηϓτΛ࠷খݶͷൣғͰݕূ͢Δͷʹඞཁ ͔ 2. ਺ඦສDAUʹεέʔϧ͢Δମ੍͕੔͏͔ 3. ෼ੳɾӡ༻ɾվળͷϑϩʔΛ଺Γͳ͘౿ΉͨΊͷػೳ͕ ἧ͍ͬͯΔ͔

  26. ࢓༷Λ࡟Δͱྑ͍͜ͱ • ίϯϙʔωϯτؒͷ඼࣭͕ۉҰʹͳͬͯɺ ϦϦʔε࣌఺Ͱͷૈ͕ݮΔ • ׬੒஍఺͕໌ྎʹͳΔͷͰϞνϕͷ௿Լ͕ গͳ͘ͳΔ • ୯७ʹૣ͘ؼΕΔ

  27. ੜ࢈ੑΛ্͛ΔͨΊͷऔΓ૊Έ • νʔϜن໛ͷ཈੍ • ։ൃظؒͱ࢓༷ͷ཈੍ • ֤ΤϯδχΞͷ୲౰෼໺ͷ֦ு • ։ൃϑϩʔͷࣗಈԽ •

    ΠϯηϓγϣϯσοΩ • εϓϦϯτ • ੵۃతͳKPIڞ༗
  28. ֤ΤϯδχΞͷ୲౰෼໺ͷ֦ு ৽نࣄۀ։ൃࣨͷجຊελϯε ෯޿͍։ൃՄೳൣғ ࣄۀ࡞ΓʹϑΥʔΧε

  29. ෯޿͍։ൃՄೳൣғ ❌ ઙ͘޿͘ ઈରʹTܕਓࡐɺΠܕਓࡐͰߏ੒͢Δɻ ex) iOS͕ಘҙͰɺͦͷ෼໺Ͱ͸ଞͷਓͷഒͷ
 ɹ ੜ࢈ੑΛग़ͤΔ͕ɺ͍͟ͱͳͬͨΒ
 ɹ αʔόʔαΠυ΋ରԠՄೳͰڵຯ΋͋Δɻ

  30. ੜ࢈ੑΛ্͛ΔͨΊͷऔΓ૊Έ • νʔϜن໛ͷ཈੍ • ։ൃظؒͱ࢓༷ͷ཈੍ • ֤ΤϯδχΞͷ୲౰෼໺ͷ֦ு • ։ൃϑϩʔͷࣗಈԽ •

    ΠϯηϓγϣϯσοΩ • εϓϦϯτ • ੵۃతͳKPIڞ༗
  31. খ͍͞νʔϜͰͷ࣮૷ελϯε ۪௚ʹҰ͔Β࣮૷ͯͨ͠Βؒʹ߹Θͳ͍ => ࣗಈԽͰ͖Δ࡞ۀ͸పఈͯ͠ޮ཰Խ

  32. ۩ମతͳվળϙΠϯτ • AWS OpsworksʹΑΔηοτΞοϓ • codenize-toolsʹΑΔInfrastructure as Code • DigdagʹΑΔETL

    Workflow • CircleCI 2.0ʹΑΔtest, vet, deploy • Pushج൫ͳͲ͸OSSͷAPIΛར༻
  33. ੜ࢈ੑΛ্͛ΔͨΊͷऔΓ૊Έ • νʔϜن໛ͷ཈੍ • ։ൃظؒͱ࢓༷ͷ཈੍ • ֤ΤϯδχΞͷ୲౰෼໺ͷ֦ு • ։ൃϑϩʔͷࣗಈԽ •

    ΠϯηϓγϣϯσοΩ • εϓϦϯτ • ੵۃతͳKPIڞ༗
  34. ΠϯηϓγϣϯσοΩͱ͸ʁ ϓϩδΣΫτͷશମ૾
 (໨తɺഎܠɺ༏ઌॱҐɺํ޲ੑ౳)Λ
 ୺తʹ఻͑ΔͨΊͷυΩϡϝϯτ ֎޲͚ͷҙٛ: ୺తʹϓϩμΫτΛઆ໌Ͱ͖Δ ಺޲͚ͷҙٛ: Ϗδϣϯͷ౷Ұ

  35. ੔ཧ͢Δ߲໨ • ϓϩμΫτͷҙٛ(ͳͥզʑ͸͜͜ʹ͍Δͷ͔) • ΤϨϕʔλʔϐον༻ͷจݴ • ΍Δ/΍Βͳ͍͜ͱϦετ • νʔϜߏ੒ •

    ໨ඪKPIͱୡ੒ظؒ • είʔϓ, ༧ࢉ, ࣌ؒ, ඼࣭ͳͲͷ΢ΣΠτ • ࣮ࡍʹඞཁͳࢿݯ
  36. ੜ࢈ੑΛ্͛ΔͨΊͷऔΓ૊Έ • νʔϜن໛ͷ཈੍ • ։ൃظؒͱ࢓༷ͷ཈੍ • ֤ΤϯδχΞͷ୲౰෼໺ͷ֦ு • ։ൃϑϩʔͷࣗಈԽ •

    ΠϯηϓγϣϯσοΩ • εϓϦϯτ • ੵۃతͳKPIڞ༗
  37. KPT Keep: ࠓޙଓ͚͍ͯ͘΂͖ྑ͔ͬͨ͜ͱ Problem: վળ͢΂͖໰୊ Try: վળࢪࡦ΍৽ࢪࡦͱͯ͠ࢼ͢͜ͱ Λఆظత(݄Ұఔ౓)ʹ֬ೝ

  38. εϓϦϯτ͝ͱͷҙࣝ߹Θͤ ࠓͷSprintͰूத͢΂͖͜ͱ ɹ࠷ॏཁKPIͷݟ௚͠ɺ໨ඪ஋ͷઃఆ εέδϡʔϧ ɹϦϦʔε༧ఆ೔ͱଧͪख ࠔΓ͝ͱ ɹ͙͢ରॲ͢Δ͔͸ஔ͍ͱ͍ͯ΍Δ΂͖͜ͱ

  39. ੜ࢈ੑΛ্͛ΔͨΊͷऔΓ૊Έ • νʔϜن໛ͷ཈੍ • ։ൃظؒͱ࢓༷ͷ཈੍ • ֤ΤϯδχΞͷ୲౰෼໺ͷ֦ு • ։ൃϑϩʔͷࣗಈԽ •

    ΠϯηϓγϣϯσοΩ • εϓϦϯτ • ੵۃతͳKPIڞ༗
  40. ਺஋ڞ༗ͯ͠·͔͢ʁ ڞ༗ํ๏ • Slack • ຖ೔ͷேձ • Sprint͝ͱͷৼΓฦΓ ͳͲͳͲ

  41. ͳͥ਺஋ڞ༗͢΂͖͔ʁ ਺ࣈ͸ਆΑΓਖ਼͍͠ Ϗδϣϯ͸νʔϜΛޑ෣͢Δͷʹྑ͍͕ɺ
 ਺ࣈͱ͍͏ࣄ࣮͔Β໨Λഎ͚ͯ
 ݴ͍༁ʹ࢖͍ͬͯͳ͍͔ʁ
 
 ࣮ࡍͷϢʔβʔͷಈ͖Λݟͯɺ
 ҙຯͷ͋Δվળํ޲ΛݟۃΊΔ

  42. ͳͥ਺஋ڞ༗͢΂͖͔ʁ KPIʹޮ͔ͳ͍ࢪࡦΛଧ͍ͬͯͳ͍͔ʁ
 ࣮ࡍͷϢʔβʔͷಈ͖Λݟͯɺ
 ҙຯͷ͋Δվળํ޲ΛݟۃΊΔ

  43. ͳͥৗʹ਺஋ڞ༗͢΂͖͔ʁ ཧ૝ͱݱ࣮͸༰қʹͣΕΔ ͷͰɺ͍ͭͷ·ʹ͔ζϨ͕ੜ͡ͳ͍Α͏ʹৗʹ਺ࣈΛݟͯɺ
 
 ɾKPIͱͷࠩ෼
 ɾ૿ݮ܏޲, पظ
 ɾ௕ظతʹҙຯ͕͋ΔࢪࡦΛଧ͍ͯͯΔ͔
 
 ͷೝࣝ߹ΘͤΛ͢Δɻ

  44. ͲΜͳ਺஋Λڞ༗͢΂͖͔ʁ • ୹ظɾ௕ظܧଓ཰ • ίϯόʔδϣϯ཰ • ܧଓ཰ʹޮ͖΍͍͢ػೳͷར༻཰ • PushڐՄ཰, ։෧཰

    • ABࢪࡦͷޮՌܭଌ݁Ռ • Ϣʔβʔ֫ಘܦ࿏ผ֫ಘ਺ɾܧଓ཰ • ޿ࠂޮՌ(CTR, CPI, CPD, etc…)
  45. ·ͱΊ • ੜ࢈ੑ = Output / Input • νʔϜߏ੒ɺKPIڞ༗ɺ࢓༷ͷμΠΤοτɺ
 Ϗδϣϯ߹ΘͤɺࣗಈԽͳͲͳͲɺ


    ΍ΕΔ͜ͱΛ஍ຯʹɺॗʑͱɻ • શͯ৽نνʔϜͰ΍ΕͯΔ͜ͱɻ
 Ϧιʔεͷ͋Δେن໛νʔϜͳΒঘߋ΍Δ΂͖ɻ