Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How Did Development Team Cope with Startup Chaos at U-NOTE

How Did Development Team Cope with Startup Chaos at U-NOTE

[TECH VALLEY #3]「ノート」にまつわるスタートアップ3社に学ぶ、技術的カオスからの脱却で登壇した時の資料です。

* [ TECH VALLEY#3] 藤井エンジニアの旅~前代未聞のイベント決定までの軌跡~ - https://geechs-magazine.com/4320
* 黒歴史だらけな技術的カオスからの脱却 #techvalley - https://geechs-magazine.com/4755

Tetsuya Kaneko

November 12, 2014
Tweet

More Decks by Tetsuya Kaneko

Other Decks in Programming

Transcript

  1. U-NOTEͷ։ൃνʔϜ͸͍͔ʹͯ͠ ελʔτΞοϓͷΧΦε͔Β ൈ͚ग़ͦ͏ͱ͍ͯ͠Δͷ͔ 2014.11.12 
 ࠇྺ࢙ͩΒ͚ͳٕज़తΧΦε͔Βͷ୤٫ #techvalley

  2. $whoami Tetsuya Kaneko (@tetsuya) U-NOTE since 2014.05~ 2ਓ໨ͷࣾһ

  3. IUUQVOPUFNF

  4. ࢓ࣄΛָ͘͢͠ΔϝσΟΞ

  5. ݱࡏͷ։ൃମ੍ ɾΤϯδχΞY ͏ͪΠϯλʔϯ໊ 
 ɾσβΠφY ֎෦ҕୗ

  6. ɾॳظϦϦʔεظ (2012/07/09~) ɾϦχϡʔΞϧ1ظ (2013/04/10~) ɾϦχϡʔΞϧ2ظ (2013/10/22~) ɾϦχϡʔΞϧ3ظ (2014/02/13~) ɾϦχϡʔΞϧ4ظ (2014/06/08~)

    ←͜͜Ͱ ͕ join ←͜͜ͰॳͷࣾһΤϯδχΞ͕ join
  7. ௚໘ͨ͠໰୊

  8. #1 όʔδϣϯ؅ཧͱ͍͏֓೦͕ଘࡏ͠ͳ͍ࠞಱͳੈք #2 ςετ@͕Μ͹Βͳ͍ 
 #3 ࢓༷ͷফࣦ #4 ίϐϖίʔυ͚ͩͲຊ൪͑͞ಈ͍͍ͯΕ͹ؔ܎ͳ͍ΑͶͬ #5

    ϩʔΧϧͰಈ֬ͨ͠ػೳ͕͜Μͳʹಈ͔ͳ͍Θ͚͕ͳ͍ #6 αʔό͕མͪͨΓϨεϙϯε͕஗͍ཧ༝Λઆ໌Ͱ͖ͳ͍ɻ ※Ξοϓϩʔυ൛௥ه 
 ϥϊϕλΠτϧΛ΋ͬͨ͡ωλͰ͕ͨ͠୭ʹ΋ποί·Εͳ͔ͬͨ😂
  9. $)"04 όʔδϣϯ؅ཧͱ͍͏ ֓೦͕ଘࡏ͠ͳ͍ࠞಱͳੈք

  10. ॳظϦϦʔεظ ec2 
 (prd) SSH ※Ξοϓϩʔυ൛௥ه 
 ຊ൪αʔόʹSSHͯ͠ɺ௚઀࿔Δͱ͍͏։ൃελΠϧɻ 
 ϑΝΠϧΛ࿔Δલʹ͸ɺඞͣએݴΛ͢Δ͜ͱ͕ϧʔϧͩͬͨͦ͏Ͱ͢ɻ

    ҊͷఆίϯϑϦΫτ͕සൃɻফ͞ΕͨΒॻ͖௚͢։ൃͰ10าਐΜͰ9าԼ͕Δຖ೔ ʻࠓ͔Β͜ͷϑΝΠϧ͍͡Γ·͢ʂ
  11. ϦχϡʔΞϧ1ظʙϦχϡʔΞϧ2ظ • ࣾ಺gitαʔόཱ͕ͯΒΕΔ • ίϛοτϝοηʔδͱ͔͸”a"ͱ͔" fi x"ͱ͔ • ʮؒҧͬͯ΋ྺ࢙Λר͖໭ͤΔʂʯఔ౓ͷ࢖ ͍ํ

    • ՝୊؅ཧ͸ Google Spreadsheets
  12. ϦχϡʔΞϧ3ظʙϦχϡʔΞϧ4ظ • Backlog͕ಋೖ͞ΕΔ • ࣾһ͕2ਓʹͳΓίʔυϨϏϡʔͷจԽ͕ੜ·ΕΔ • BacklogͰ͸ίϛοτߦʹରͯ͠ͷίϝϯτ͕Ͱ͖ͳ͍ 😢 • ݁Ռɺίϝϯτʹʮxxxx.phpͷ245-253ߦ໨ͷ࣮૷ͳΜͰ

    ͕͢ʙʯͱॻ͘ඞཁ͕… ※௥ه Backlog Ͱ΋ϓϧϦΫΤετ͕࡞੒Ͱ͖ΔΑ͏ʹͳͬͨΑ͏Ͱ͢ʂ 
 https://backlog.com/ja/product-updates/release/release-201508/
  13. ݱࡏ • GitHub ͷಋೖ 🎉 • Backlog ʹ࢒͍ͬͯͨ՝୊͸શͯɺࣗલͷ python εΫϦϓτͰ

    github ͷ Issues ΁Ҡߦ
  14. $)"04 ςετ!͕Μ͹Βͳ͍

  15. ɾ㱼ɾ ɾ㱼ɾA ŮŖ ςετ͋ͬͨΒ͍͍Ͷ ॳظϦϦʔεʙϦχϡʔΞϧ4ظ

  16. ݱࡏ ŷžŴƅɾɾɾ ɾТɾʆ 1)16OJU͕$PEF*HOJUPSYʹެࣜରԠ͍ͯ͠ͳ͍

  17. ʀƅЧƅ ʻͤɺͤΊͯ৽نߏங͢Δ"1*͚ͩʹ͸ʜ RSpec + ※௥ه 
 ৽نߏஙͨ͠ Rails API͚ͩ͸ςετΛಋೖ͢Δ͜ͱʹ੒ޭɻ 


    PHPͰ։ൃ͞Ε͍ͯΔطଘػೳ΋ɺCapybaraͰ࠷௿ݶͷςετΛͰ͖ΔΑ͏ରԠ͍ͯ͘͠༧ఆͰ͢ɻ ݱࡏ
  18. $)"04 ࢓༷ͷফࣦ

  19. ॳظϦϦʔεʙϦχϡʔΞϧ4ظ • ॳظͷ։ൃϝϯόͰ͋ͬͨΠϯλʔϯੜ͕ɺ2- 3ϲ݄ͷपظͰࣙΊͯߦ͘ • ࣾ಺ʹɺશମͷ࢓༷Λ೺Ѳ͍ͯ͠Δϝϯό͕ ͍ͳ͍ • ϦϓϨʔε࡞ۀ͝ͱʹɺ࣮૷ऀҎ֎஌Βͳ͍ ػೳ͕ࣦΘΕͯߦ͘

  20. ݱࡏ 2JJUB5FBNΛಋೖ͠ɺ࢓༷ΛυΩϡϝϯτͱͯ͠࢒͢

  21. ͳͥͦͷ࣮૷ʹͳͬͨͷ͔ɺௐࠪ΍ҙࢥܾఆͷաఔ΋࢒͢

  22. 4MBDLΛಋೖ͠ɺଞϝϯόͷಈ޲ΛνʔϜʹڞ༗

  23. ͦͷ೔ʹϦϦʔε͞ΕͨػೳͷҰཡΛ࡞੒

  24. CHAOS#4 ίϐϖίʔυ͚ͩͲ ຊ൪͑͞ಈ͍͍ͯΕ͹ؔ܎ͳ͍ΑͶͬ

  25. ॳظϦϦʔεʙϦχϡʔΞϧ4ظ • ʮϦϓϨʔεʯͱݴ͏໊ͷલόʔδϣϯ͔Β ͷίϐϖ • ϦϓϨʔε͕ߦΘΕΔͨͼɺඍົʹҧ͏ॏෳ ίʔυ͕େྔʹੜ੒͞ΕΔ • e.g. ʮΧςΰϦʯͱʮλάʯͰϖʔδωʔ

    γϣϯͷڍಈ͕มΘΔ
  26. ϦϥΠτͱ͍͏બ୒ࢶ • ςετͷͳ͍ϦϑΝΫλϦϯά͸ɺӨڹൣғ͕ಡΊͣʹҙਤͤ͵Օॴ ʹӨڹ͕ग़ΔڪΕ • ͔͠͠લड़ͷ௨Γɺςετίʔυ͸ଘࡏ͠ͳ͍͕ɺ࢓༷΋ଘࡏ͠ͳ͍ • ϦϑΝΫλϦϯά vs ϦϥΠτ

    ͦΕͧΕϝϦσϝ͕͋Δ͕ɺࠓճ͸Ϧ ϥΠτ͕༗ޮͩͱ൑அ • ࢓༷ࡦఆ → νʔϜϨϏϡʔ → ϦϥΠτ → طଘػೳ࡟আ • ϑϧεΫϥονͰॻ͖௚͢ͷͰ͸ͳ͘ɺػೳ୯ҐͰখ͘͞ॻ͖׵͑Δ
  27. ݱࡏ ࡟আߦ௥Ճߦ

  28. CHAOS#5 ϩʔΧϧͰಈ֬ͨ͠ػೳ͕ ͜Μͳʹಈ͔ͳ͍Θ͚͕ͳ͍

  29. ॳظϦϦʔεʙϦχϡʔΞϧ4ظ • AMI ͕શͯ • ϛυϧ΢ΣΞ͕௥Ճ͞Εͨ͜ͱ͕࿈ܞ͞Εͯ ͓ΒͣɺϩʔΧϧ؀ڥ͕յΕΔ • ߏ੒ͷίʔυԽɺมߋͷݟ͑ΔԽ͕ඞཁʹ

  30. ݱࡏ • ߏ੒͸ Ansible Ͱ؅ཧ • σϓϩΠ͸ Capistrano ͔Β࣮ࢪ •

    ৄࡉ͸ Qiita هࣄʮRailsΞϓϦΛAnsibleͰߏ ஙͨ͠؀ڥʹCapistranoͰσϓϩΠ͢Δ·Ͱ ʹ΍ͬͨ͜ͱʯΛ͝ཡ͍ͩ͘͞
  31. $)"04 
 αʔό͕མͪͨΓϨεϙϯε͕ 
 ஗͍ཧ༝Λઆ໌Ͱ͖ͳ͍ɻ

  32. ॳظϦϦʔεʙϦχϡʔΞϧ4ظ • ϩάͳ͠ • ؂ࢹͳ͠ • ௨஌ͳ͠

  33. .BDLFSFMΛಋೖ͠ɺαʔό؂ࢹ /FX3FMJDΛಋೖ͠ɺΞϓϦͷঢ়ଶͷݟ͑ΔԽ ݱࡏ

  34. ରԠத ※௥ه 
 αʔό͕৑௕Խ͞Εͨ݁Ռɺϩά͕෼ࢄͯ͠͠·ͬͨͨΊɺू໿Ͱ͖ΔΑ͏ʹରԠத ݱࡏ

  35. ৼΓฦΔͱ

  36. ɾ2014/05/21 U-NOTE ೖࣾ ɾ2014/06/13 GitHub ಋೖ ɾ2014/06/14 Slack ಋೖ ɾ2014/06/14

    Hubot ಋೖ ɾ2014/08/28 Qiita Team ಋೖ ɾ2014/09/02 Mackerel.io ಋೖ ɾ2014/09/05 Wercker ಋೖ ɾ2014/09/17 Ansible ಋೖ ɾ2014/09/17 New Relic ಋೖ
  37. ਓɺۚɺ࣌ؒͱϦιʔε͕଍Γͳ͍ 
 ελʔτΞοϓ͔ͩΒͦ͜ ͱʹ͔͘࠷୹ڑ཭Λ໛ࡧ

  38. ࠷୹ڑ཭ • ίʔυͷՄಡੑɺมߋͷ௥ैੑͷ୲อ • ՝୊ͷ਺/༏ઌॱҐͷ໌֬Խ • ҉໧஌/ଐਓੑͷഉআ • όά/ϩάͷ௥ैੑͷ୲อ •

    ΞϓϦέʔγϣϯͷ৴པੑɺՄ༻ੑͷ୲อ 
 
 
 → มߋʹڧ͘ɺ߈Ίͨ։ൃ͕Մೳʹ 🎉
  39. ίετײ ίϛϡχςΟͷαΠζ νϟϨϯδੑ όϥϯε͕େࣄ πʔϧબͼͷ࣠

  40. ίϛϡχςΟͷαΠζ • ΤϯδχΞͷ਺͕গͳ͍͏ͪ͸ಛʹॏཁ • ษڧձ͕։͔Ε͍ͯΔස౓ • ωοτ্ʹͲͷఔ౓৘ใ͕ग़ἧ͍ͬͯΔ͔

  41. ίετײ • ձࣾͷن໛͕খ͍͞͏ͪ͸ॏཁ • ֹ݄͍͘Β·Ͱ։ൃπʔϧʹ࢖͑Δͷ͔ • খن໛ͷ͏ͪ͸ແྉͰ࢖͑Δπʔϧ΋ଟ͍ • ϑϦʔϥΠμʔʹͳΔͷͰ͸ͳ͘ɺ੒௕ʹԠ ͡Ͱ͔ͬ͠Γ՝͍ۚͯ͘͠

  42. νϟϨϯδੑ • νϟϨϯδ͍ͨͯ͠͠Έ͍ͨ > લ৬ͳͲͰར༻ܦݧ͕͋Δ • ʮݴ͔ͬͨΒʹ͸΍Γ͖Δʯ • ΍Γ͖ͬͨ࣌ͷୡ੒ײ

  43. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠