Workflow at Hatena Mackerel Team

9b741203feda475cbeae8b384de9f415?s=47 motemen
October 09, 2014

Workflow at Hatena Mackerel Team

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

9b741203feda475cbeae8b384de9f415?s=128

motemen

October 09, 2014
Tweet

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!