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

Workflow at Hatena Mackerel Team

motemen
October 09, 2014

Workflow at Hatena Mackerel Team

はてな Mackerel チームの開発フローについて

motemen

October 09, 2014
Tweet

More Decks by motemen

Other Decks in Programming

Transcript

  1. @motemen 2014-10-09 Workflow at
 Hatena Mackerel Team

  2. ࢲʹ͍ͭͯ • id:motemen / @motemen • גࣜձࣾ͸ͯͳ
 νʔϑΤϯδχΞ • Mackerel

    νʔϜ σΟϨΫλʔ • Vim ͱ Go ͕޷͖Ͱ͢
  3. Agenda • Mackerel νʔϜʹ͍ͭͯ • From Perl to Scala •

    Mackerel νʔϜʹ͓͚ΔεΫϥϜ • ϦϞʔτ
  4. 1 About
 Mackerel Team

  5. Mackerel

  6. Mackerel https://mackerel.io/

  7. Mackerel • ͸ͯͳ ৽αʔϏε • 09/17 ਖ਼ࣜԽ • ৽͍͠Ϋϥ΢υύϑΥʔϚϯε؅ཧαʔϏε Mackerel

    ਖ਼ࣜϦϦʔεͷ͓஌Βͤ • αʔό؅ཧɾ؂ࢹπʔϧ • ಺੡πʔϧͷ஌ݟΛαʔϏεԽ
  8. Mackerel ͷྺ࢙ • ࣾ಺Ϗδωεϓϥϯίϯςετ • CTO id:stanaka
 ʮΫϥ΢υ؂ࢹπʔϧʯ

  9. Mackerel νʔϜͷྺ࢙ • 2013-11ʙ ϓϩτλΠϓ։ൃ • P + 1 engineer

    + α • 2014-04ʙ ਖ਼ࣜʹνʔϜԽ • P + 5 engineers + 1 designer • ࠓʹࢸΔ
  10. 2 From Perl
 To Scala

  11. Hatena ❤ Perl • ΄ͱΜͲͷαʔϏε͸ Perl ੡ • ૑ۀ (2001)

    ʙ ݱࡏ (2014) • ͸ͯͳϒοΫϚʔΫɺ͸ͯͳϒϩάɺ…
  12. Why Perl • ߴ଎ͳ Trial & Error • ߴ଎ͳ։ൃ

  13. Mackerel Chose Scala • Perl ͷ࣍ͷݴޠ • தن໛։ൃʹ଱͑ɺݎ࿚ͳ΋ͷ • Ϧʔυ։ൃऀͷझຯ

    • ʢຊ౰͸ Haskell ͕Α͔ͬͨʣ
  14. ৄ͘͠͸ • id:hakobe932 
 — YAPC::Asia Tokyo 2014

  15. Perl … ਆ࿩ͷ࣌୅ • No ίϯύΠϧ • Fast σϓϩΠ •

    ۃΊͯ଎͍։ൃαΠΫϧ
  16. Scala • ੩తܕ෇͚ͷ҆৺ײ • ϨϏϡʔ • ϦϑΝΫλϦϯά • Slow ίϯύΠϧ

    • Slow ίϯύΠϧ
  17. Not-So Hotfix • σϓϩΠ׬ྃ • ʮ͋ɺͪΐͬͱϛεͬͯ·͢Ͷ…ʯ • ʮΑ͠ٸ͍Ͱ௚ͦ͏ʯ • ʢ2࣌ؒܦաʣ

    • ʮ௚Γ·ͨ͠ʯ
  18. “ScalaShock” • ΈΜͳͰγϣοΫΛड͚ͨ • “ͷΜͼΓͱͨ͠։ൃ” • ίϯύΠϧͷؒʹϨϏϡʔͱ͔ • σϓϩΠ։࢝͸ૣΊʹ •

    ࠓͰ͸30෼ఔ౓Ͱ׬ྃ
  19. ࠷ۙͷσϓϩΠ

  20. 3 Scrum in Mackerel Team

  21. Scrum • “εΫϥϜʢӳ: Scrumʣ͸ɺιϑτ΢ΣΞ։ൃ ʹ͓͚Δ൓෮తͰ૿෼తͳΞδϟΠϧιϑτ΢Σ Ξ։ൃख๏ͷ1ͭͰ͋Δɻத৺఺͸ʮ։ൃνʔ Ϝ͕Ұମʹ͢Δͱڞ༗͞Ε͍ͯΔ໨తΛ௥͍ٻ ΊΔॊೈͳϓϩμΫτ։ൃετϥςδʔʯͰ͋ Δɻ” •

    — Wikipedia: εΫϥϜ
  22. Scrum • ܾ·ͬͨظؒʢεϓϦϯτʣ • εϓϦϯτ։࢝࣌ʹλεΫΛೖՙ • εϓϦϯτ׬ྃ࣌ʹৼΓฦΔ • վળ͠ͳ͕ΒεϓϦϯτΛ܁Γฦ͢

  23. ༧श

  24. Team Configuration • ։ൃνʔϜ • ϓϩμΫτΦʔφʔ id:stanaka • εΫϥϜϚελʔ id:motemen

    • 3+α ΞϓϦΤϯδχΞ / 1 σβΠφ / 1 Πϯϑϥ • εϓϦϯτ: 2 weeks • ։࢝౰ॳ͸ 1 week
  25. εϓϦϯτͷ։࢝: ୨Է͠ձ • ݄༵ͷே 2 ࣌ؒఔ౓ • ϓϩμΫτόοΫϩάΛݕ౼ • ࠓεϓϦϯτͰ΍Δ͜ͱΛ۩ମԽ

    • ԿΛ͢Ε͹͍͍͔໌֬ʹͳΔ
  26. ୨Է͠: ϓϩμΫτόοΫϩά • Google Spreadsheet • ༏ઌ౓ॱɺޙΖͷํ͸ͪ͝Όͪ͝Ό

  27. ୨Է͠: λεΫͷݕ౼ • ۩ମతͳλεΫʹ෼ׂ • ཻ౓ = 1 Pull Request

    ʹͰ͖Δ͘Β͍ • ྫ:ʮϗετͷੜࢮ؂ࢹػೳʯ • ؂ࢹίΞ෦෼ • ΞϥʔτʹରԠ͢ΔϞσϧ • ϝʔϧૹ৴ • ը໘࣮૷
  28. εϓϦϯτͷऴྃ: ;Γ͔͑Γձ • ༵ۚ೔ͷ༦ํ 1 ࣌ؒ • εϓϦϯτͷୡ੒౓ΛৼΓฦΔ • ݸਓɾνʔϜͷ

    KPT Λ͓͜ͳ͏ • ࠓޙͷ֎෦తͳεέδϡʔϧΛ֬ೝ
  29. ࣜ࣍ୈ • ձͷਐΊํࢦ਑Λॻ͍͓͍ͯͨ • ๨Εͳ͍Α͏ʹ • motemen ͕αϘΕΔΑ͏ʹ

  30. Mackerel νʔϜͱ Scrum • ϓϩμΫτ΋νʔϜ΋θϩ͔Β • ΍Γ͍ͨ͜ͱΛண࣮ʹਐΊ͍ͯ͘ • KPT ͠ͳ͕ΒมԽ͍ͯͬͨ͠

  31. εϓϦϯτத: GitHub • λεΫ͸ GitHub Issue ʹ • 1 εϓϦϯτ

    = 1 ϚΠϧετʔϯ
  32. Milestones

  33. Milestones • ࣍ͷεϓϦϯτ: • ࠓεϓϦϯτͰͰ͖ͳͦ͏͚ͩͲ͢ ͙΍Γ͍ͨ • ΞΠσΞஔ͖৔: • ΍Γ͍͚ͨͲ༏ઌ౓ະఆ

  34. قઅײͷ͋ΔεϓϦϯτ • ೋे࢛અؾΛεϓϦϯτ໊ʹ • ʮ࣍͸ཱळεϓϦϯτͰ͢ʢ8݄ʣʯ
 ʮ͟Θ…ʢ΋͏ळ͔…ʣʯ ͪͳΈʹࠓि͸פ࿐εϓϦϯτͰ͢

  35. λεΫঢ়ଶϥϕϧ • PR ͕׬੒ͨ͠Β “ϨϏϡʔґཔ” • “ϨϏϡʔ׬ྃ” ʹͳͬͨΒ
 Ϛʔδ or

    मਖ਼
  36. Based on • id:shiba_yu36
 — GitHub Kaigi

  37. ݟੵ΋Γϥϕϧ • Issue ͷετʔϦʔϙΠϯτΛϥϕϧԽ • ͜ΕҎ্Ͱ͔͍ͷ͸λεΫԽ͠ͳ͍

  38. Burn-down Chart • radekstepan/github-burndown-chart

  39. ͦͷଞ • λεΫΛ·ͱΊΔ Issue • ٞ࿦༻ • ٞ࿦༻ʢdrunkʣ

  40. VS ϗϫΠτϘʔυ෇ᝦ • جຊతʹ͸ GitHub • Ұཡੑ͸͕͢͞ • λεΫฆࣦʢ෺ཧʣ •

    ϦϞʔτ͸ແཧ
  41. 4 Working Remote

  42. ͸ͯͳ౦ژ։ൃηϯλʔ • 2012: ։ઃ • ʢɹʈωʈʣɾɾɾ • 2014: גࣜձࣾ͸ͯͳʹೖࣾ͠·ͨ͠ |

    ͓ͦΒ͘͸ ͦΕ͑͞΋ฏຌͳ೔ʑ • → Mackerel νʔϜ΁഑ଐ
  43. ड͚ೖΕ४උ • ΋ͱ΋ͱϦϞʔτͷ༧ఆʢ1ਓʣ • πʔϧ͸ݕ౼ͯ͋ͬͨ͠ • ࠷ॳͷ2िؒɺژ౎΁ • ϖΞϓϩͱ Λ܁Γฦ͢

  44. ༧श • 37 Signals • ϦϞʔτ࠷ߴʂΈ͍ͨͳຊ

  45. ʮ͋ͷਓ࠷ۙଘࡏײͳ͍Ͷʯ • Έ͍ͨʹ͠ͳ͍ • ژ౎ 5 : ౦ژ 1

  46. งғؾΛἧ͑Δ • ΦϑΟεϦϞʔτ • ग़ࣾ͢Δ͚Ͳωοτӽ͠ʹձ࿩ • ேձͷલʹࡶஊ

  47. Remote Tools • Zoom • Sqwiggle • GitHub & Slack

    • Polycom
  48. ேձ: Zoom • Google Hangouts ͔ΒҠߦ • શһͷإ͕Ұ๬Ͱ͖Δ

  49. ීஈ͸ Sqwiggle & Slack & GitHub • ΄ͱΜͲจࣈͰࣄ଍ΓͯΔ

  50. To Be Continued • ·ͩ࢝·ͬͨ͹͔Γ • ػࡐ͕େࣄͦ͏ • ϝϯόʔશһ͕ϦϞʔτΛҙࣝ͢Δ

  51. Ҏ্ • Mackerel νʔϜͷ։ൃମ੍Ͱͨ͠ • ྑ͍ϚΠΫ৘ใ͓଴͓ͪͯ͠Γ·͢

  52. We are Hiring!