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

    View Slide

  2. ࢲʹ͍ͭͯ
    • id:motemen / @motemen
    • גࣜձࣾ͸ͯͳ

    νʔϑΤϯδχΞ
    • Mackerel νʔϜ σΟϨΫλʔ
    • Vim ͱ Go ͕޷͖Ͱ͢

    View Slide

  3. Agenda
    • Mackerel νʔϜʹ͍ͭͯ
    • From Perl to Scala
    • Mackerel νʔϜʹ͓͚ΔεΫϥϜ
    • ϦϞʔτ

    View Slide

  4. 1
    About

    Mackerel Team

    View Slide

  5. Mackerel

    View Slide

  6. Mackerel
    https://mackerel.io/

    View Slide

  7. Mackerel
    • ͸ͯͳ ৽αʔϏε
    • 09/17 ਖ਼ࣜԽ
    • ৽͍͠Ϋϥ΢υύϑΥʔϚϯε؅ཧαʔϏε Mackerel
    ਖ਼ࣜϦϦʔεͷ͓஌Βͤ
    • αʔό؅ཧɾ؂ࢹπʔϧ
    • ಺੡πʔϧͷ஌ݟΛαʔϏεԽ

    View Slide

  8. Mackerel ͷྺ࢙
    • ࣾ಺Ϗδωεϓϥϯίϯςετ
    • CTO id:stanaka

    ʮΫϥ΢υ؂ࢹπʔϧʯ

    View Slide

  9. Mackerel νʔϜͷྺ࢙
    • 2013-11ʙ ϓϩτλΠϓ։ൃ
    • P + 1 engineer + α
    • 2014-04ʙ ਖ਼ࣜʹνʔϜԽ
    • P + 5 engineers + 1 designer
    • ࠓʹࢸΔ

    View Slide

  10. 2
    From Perl

    To Scala

    View Slide

  11. Hatena ❤ Perl
    • ΄ͱΜͲͷαʔϏε͸ Perl ੡
    • ૑ۀ (2001) ʙ ݱࡏ (2014)
    • ͸ͯͳϒοΫϚʔΫɺ͸ͯͳϒϩάɺ…

    View Slide

  12. Why Perl
    • ߴ଎ͳ Trial & Error
    • ߴ଎ͳ։ൃ

    View Slide

  13. Mackerel Chose Scala
    • Perl ͷ࣍ͷݴޠ
    • தن໛։ൃʹ଱͑ɺݎ࿚ͳ΋ͷ
    • Ϧʔυ։ൃऀͷझຯ
    • ʢຊ౰͸ Haskell ͕Α͔ͬͨʣ

    View Slide

  14. ৄ͘͠͸
    • id:hakobe932 

    — YAPC::Asia Tokyo 2014

    View Slide

  15. Perl … ਆ࿩ͷ࣌୅
    • No ίϯύΠϧ
    • Fast σϓϩΠ
    • ۃΊͯ଎͍։ൃαΠΫϧ

    View Slide

  16. Scala
    • ੩తܕ෇͚ͷ҆৺ײ
    • ϨϏϡʔ
    • ϦϑΝΫλϦϯά
    • Slow ίϯύΠϧ
    • Slow ίϯύΠϧ

    View Slide

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

    View Slide

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

    View Slide

  19. ࠷ۙͷσϓϩΠ

    View Slide

  20. 3
    Scrum in
    Mackerel Team

    View Slide

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

    View Slide

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

    View Slide

  23. ༧श

    View Slide

  24. Team Configuration
    • ։ൃνʔϜ
    • ϓϩμΫτΦʔφʔ id:stanaka
    • εΫϥϜϚελʔ id:motemen
    • 3+α ΞϓϦΤϯδχΞ / 1 σβΠφ / 1 Πϯϑϥ
    • εϓϦϯτ: 2 weeks
    • ։࢝౰ॳ͸ 1 week

    View Slide

  25. εϓϦϯτͷ։࢝: ୨Է͠ձ
    • ݄༵ͷே 2 ࣌ؒఔ౓
    • ϓϩμΫτόοΫϩάΛݕ౼
    • ࠓεϓϦϯτͰ΍Δ͜ͱΛ۩ମԽ
    • ԿΛ͢Ε͹͍͍͔໌֬ʹͳΔ

    View Slide

  26. ୨Է͠: ϓϩμΫτόοΫϩά
    • Google Spreadsheet
    • ༏ઌ౓ॱɺޙΖͷํ͸ͪ͝Όͪ͝Ό

    View Slide

  27. ୨Է͠: λεΫͷݕ౼
    • ۩ମతͳλεΫʹ෼ׂ
    • ཻ౓ = 1 Pull Request ʹͰ͖Δ͘Β͍
    • ྫ:ʮϗετͷੜࢮ؂ࢹػೳʯ
    • ؂ࢹίΞ෦෼
    • ΞϥʔτʹରԠ͢ΔϞσϧ
    • ϝʔϧૹ৴
    • ը໘࣮૷

    View Slide

  28. εϓϦϯτͷऴྃ: ;Γ͔͑Γձ
    • ༵ۚ೔ͷ༦ํ 1 ࣌ؒ
    • εϓϦϯτͷୡ੒౓ΛৼΓฦΔ
    • ݸਓɾνʔϜͷ KPT Λ͓͜ͳ͏
    • ࠓޙͷ֎෦తͳεέδϡʔϧΛ֬ೝ

    View Slide

  29. ࣜ࣍ୈ
    • ձͷਐΊํࢦ਑Λॻ͍͓͍ͯͨ
    • ๨Εͳ͍Α͏ʹ
    • motemen ͕αϘΕΔΑ͏ʹ

    View Slide

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

    View Slide

  31. εϓϦϯτத: GitHub
    • λεΫ͸ GitHub Issue ʹ
    • 1 εϓϦϯτ = 1 ϚΠϧετʔϯ

    View Slide

  32. Milestones

    View Slide

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

    View Slide

  34. قઅײͷ͋ΔεϓϦϯτ
    • ೋे࢛અؾΛεϓϦϯτ໊ʹ
    • ʮ࣍͸ཱळεϓϦϯτͰ͢ʢ8݄ʣʯ

    ʮ͟Θ…ʢ΋͏ळ͔…ʣʯ
    ͪͳΈʹࠓि͸פ࿐εϓϦϯτͰ͢

    View Slide

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

    Ϛʔδ or मਖ਼

    View Slide

  36. Based on
    • id:shiba_yu36

    — GitHub Kaigi

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  41. 4
    Working Remote

    View Slide

  42. ͸ͯͳ౦ژ։ൃηϯλʔ
    • 2012: ։ઃ
    • ʢɹʈωʈʣɾɾɾ
    • 2014: גࣜձࣾ͸ͯͳʹೖࣾ͠·ͨ͠ | ͓ͦΒ͘͸
    ͦΕ͑͞΋ฏຌͳ೔ʑ
    • → Mackerel νʔϜ΁഑ଐ

    View Slide

  43. ड͚ೖΕ४උ
    • ΋ͱ΋ͱϦϞʔτͷ༧ఆʢ1ਓʣ
    • πʔϧ͸ݕ౼ͯ͋ͬͨ͠
    • ࠷ॳͷ2िؒɺژ౎΁
    • ϖΞϓϩͱ Λ܁Γฦ͢

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  52. We are Hiring!

    View Slide