Workflow at Hatena Mackerel Team
by
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
@motemen 2014-10-09 Workflow at Hatena Mackerel Team
Slide 2
Slide 2 text
ࢲʹ͍ͭͯ • id:motemen / @motemen • גࣜձࣾͯͳ νʔϑΤϯδχΞ • Mackerel νʔϜ σΟϨΫλʔ • Vim ͱ Go ͕͖Ͱ͢
Slide 3
Slide 3 text
Agenda • Mackerel νʔϜʹ͍ͭͯ • From Perl to Scala • Mackerel νʔϜʹ͓͚ΔεΫϥϜ • ϦϞʔτ
Slide 4
Slide 4 text
1 About Mackerel Team
Slide 5
Slide 5 text
Mackerel
Slide 6
Slide 6 text
Mackerel https://mackerel.io/
Slide 7
Slide 7 text
Mackerel • ͯͳ ৽αʔϏε • 09/17 ਖ਼ࣜԽ • ৽͍͠ΫϥυύϑΥʔϚϯεཧαʔϏε Mackerel ਖ਼ࣜϦϦʔεͷ͓Βͤ • αʔόཧɾࢹπʔϧ • πʔϧͷݟΛαʔϏεԽ
Slide 8
Slide 8 text
Mackerel ͷྺ࢙ • ࣾϏδωεϓϥϯίϯςετ • CTO id:stanaka ʮΫϥυࢹπʔϧʯ
Slide 9
Slide 9 text
Mackerel νʔϜͷྺ࢙ • 2013-11ʙ ϓϩτλΠϓ։ൃ • P + 1 engineer + α • 2014-04ʙ ਖ਼ࣜʹνʔϜԽ • P + 5 engineers + 1 designer • ࠓʹࢸΔ
Slide 10
Slide 10 text
2 From Perl To Scala
Slide 11
Slide 11 text
Hatena ❤ Perl • ΄ͱΜͲͷαʔϏε Perl • ۀ (2001) ʙ ݱࡏ (2014) • ͯͳϒοΫϚʔΫɺͯͳϒϩάɺ…
Slide 12
Slide 12 text
Why Perl • ߴͳ Trial & Error • ߴͳ։ൃ
Slide 13
Slide 13 text
Mackerel Chose Scala • Perl ͷ࣍ͷݴޠ • தن։ൃʹ͑ɺݎ࿚ͳͷ • Ϧʔυ։ൃऀͷझຯ • ʢຊ Haskell ͕Α͔ͬͨʣ
Slide 14
Slide 14 text
ৄ͘͠ • id:hakobe932 — YAPC::Asia Tokyo 2014
Slide 15
Slide 15 text
Perl … ਆͷ࣌ • No ίϯύΠϧ • Fast σϓϩΠ • ۃΊ͍ͯ։ൃαΠΫϧ
Slide 16
Slide 16 text
Scala • ੩తܕ͚ͷ҆৺ײ • ϨϏϡʔ • ϦϑΝΫλϦϯά • Slow ίϯύΠϧ • Slow ίϯύΠϧ
Slide 17
Slide 17 text
Not-So Hotfix • σϓϩΠྃ • ʮ͋ɺͪΐͬͱϛεͬͯ·͢Ͷ…ʯ • ʮΑ͠ٸ͍Ͱͦ͏ʯ • ʢ2࣌ؒܦաʣ • ʮΓ·ͨ͠ʯ
Slide 18
Slide 18 text
“ScalaShock” • ΈΜͳͰγϣοΫΛड͚ͨ • “ͷΜͼΓͱͨ͠։ൃ” • ίϯύΠϧͷؒʹϨϏϡʔͱ͔ • σϓϩΠ։࢝ૣΊʹ • ࠓͰ30ఔͰྃ
Slide 19
Slide 19 text
࠷ۙͷσϓϩΠ
Slide 20
Slide 20 text
3 Scrum in Mackerel Team
Slide 21
Slide 21 text
Scrum • “εΫϥϜʢӳ: ScrumʣɺιϑτΣΞ։ൃ ʹ͓͚Δ෮తͰ૿తͳΞδϟΠϧιϑτΣ Ξ։ൃख๏ͷ1ͭͰ͋Δɻத৺ʮ։ൃνʔ Ϝ͕Ұମʹ͢Δͱڞ༗͞Ε͍ͯΔతΛ͍ٻ ΊΔॊೈͳϓϩμΫτ։ൃετϥςδʔʯͰ͋ Δɻ” • — Wikipedia: εΫϥϜ
Slide 22
Slide 22 text
Scrum • ܾ·ͬͨظؒʢεϓϦϯτʣ • εϓϦϯτ։࢝࣌ʹλεΫΛೖՙ • εϓϦϯτྃ࣌ʹৼΓฦΔ • վળ͠ͳ͕ΒεϓϦϯτΛ܁Γฦ͢
Slide 23
Slide 23 text
༧श
Slide 24
Slide 24 text
Team Configuration • ։ൃνʔϜ • ϓϩμΫτΦʔφʔ id:stanaka • εΫϥϜϚελʔ id:motemen • 3+α ΞϓϦΤϯδχΞ / 1 σβΠφ / 1 Πϯϑϥ • εϓϦϯτ: 2 weeks • ։࢝ॳ 1 week
Slide 25
Slide 25 text
εϓϦϯτͷ։࢝: ୨Է͠ձ • ݄༵ͷே 2 ࣌ؒఔ • ϓϩμΫτόοΫϩάΛݕ౼ • ࠓεϓϦϯτͰΔ͜ͱΛ۩ମԽ • ԿΛ͢Ε͍͍͔໌֬ʹͳΔ
Slide 26
Slide 26 text
୨Է͠: ϓϩμΫτόοΫϩά • Google Spreadsheet • ༏ઌॱɺޙΖͷํͪ͝Όͪ͝Ό
Slide 27
Slide 27 text
୨Է͠: λεΫͷݕ౼ • ۩ମతͳλεΫʹׂ • ཻ = 1 Pull Request ʹͰ͖Δ͘Β͍ • ྫ:ʮϗετͷੜࢮࢹػೳʯ • ࢹίΞ෦ • ΞϥʔτʹରԠ͢ΔϞσϧ • ϝʔϧૹ৴ • ը໘࣮
Slide 28
Slide 28 text
εϓϦϯτͷऴྃ: ;Γ͔͑Γձ • ༵ۚͷ༦ํ 1 ࣌ؒ • εϓϦϯτͷୡΛৼΓฦΔ • ݸਓɾνʔϜͷ KPT Λ͓͜ͳ͏ • ࠓޙͷ֎෦తͳεέδϡʔϧΛ֬ೝ
Slide 29
Slide 29 text
ࣜ࣍ୈ • ձͷਐΊํࢦΛॻ͍͓͍ͯͨ • Εͳ͍Α͏ʹ • motemen ͕αϘΕΔΑ͏ʹ
Slide 30
Slide 30 text
Mackerel νʔϜͱ Scrum • ϓϩμΫτνʔϜθϩ͔Β • Γ͍ͨ͜ͱΛண࣮ʹਐΊ͍ͯ͘ • KPT ͠ͳ͕ΒมԽ͍ͯͬͨ͠
Slide 31
Slide 31 text
εϓϦϯτத: GitHub • λεΫ GitHub Issue ʹ • 1 εϓϦϯτ = 1 ϚΠϧετʔϯ
Slide 32
Slide 32 text
Milestones
Slide 33
Slide 33 text
Milestones • ࣍ͷεϓϦϯτ: • ࠓεϓϦϯτͰͰ͖ͳͦ͏͚ͩͲ͢ ͙Γ͍ͨ • ΞΠσΞஔ͖: • Γ͍͚ͨͲ༏ઌະఆ
Slide 34
Slide 34 text
قઅײͷ͋ΔεϓϦϯτ • ೋे࢛અؾΛεϓϦϯτ໊ʹ • ʮཱ࣍ळεϓϦϯτͰ͢ʢ8݄ʣʯ ʮ͟Θ…ʢ͏ळ͔…ʣʯ ͪͳΈʹࠓिפ࿐εϓϦϯτͰ͢
Slide 35
Slide 35 text
λεΫঢ়ଶϥϕϧ • PR ͕ͨ͠Β “ϨϏϡʔґཔ” • “ϨϏϡʔྃ” ʹͳͬͨΒ Ϛʔδ or मਖ਼
Slide 36
Slide 36 text
Based on • id:shiba_yu36 — GitHub Kaigi
Slide 37
Slide 37 text
ݟੵΓϥϕϧ • Issue ͷετʔϦʔϙΠϯτΛϥϕϧԽ • ͜ΕҎ্Ͱ͔͍ͷλεΫԽ͠ͳ͍
Slide 38
Slide 38 text
Burn-down Chart • radekstepan/github-burndown-chart
Slide 39
Slide 39 text
ͦͷଞ • λεΫΛ·ͱΊΔ Issue • ٞ༻ • ٞ༻ʢdrunkʣ
Slide 40
Slide 40 text
VS ϗϫΠτϘʔυᝦ • جຊతʹ GitHub • Ұཡੑ͕͢͞ • λεΫฆࣦʢཧʣ • ϦϞʔτແཧ
Slide 41
Slide 41 text
4 Working Remote
Slide 42
Slide 42 text
ͯͳ౦ژ։ൃηϯλʔ • 2012: ։ઃ • ʢɹʈωʈʣɾɾɾ • 2014: גࣜձࣾͯͳʹೖࣾ͠·ͨ͠ | ͓ͦΒ͘ ͦΕ͑͞ฏຌͳʑ • → Mackerel νʔϜଐ
Slide 43
Slide 43 text
ड͚ೖΕ४උ • ͱͱϦϞʔτͷ༧ఆʢ1ਓʣ • πʔϧݕ౼ͯ͋ͬͨ͠ • ࠷ॳͷ2िؒɺژ • ϖΞϓϩͱ Λ܁Γฦ͢
Slide 44
Slide 44 text
༧श • 37 Signals • ϦϞʔτ࠷ߴʂΈ͍ͨͳຊ
Slide 45
Slide 45 text
ʮ͋ͷਓ࠷ۙଘࡏײͳ͍Ͷʯ • Έ͍ͨʹ͠ͳ͍ • ژ 5 : ౦ژ 1
Slide 46
Slide 46 text
งғؾΛἧ͑Δ • ΦϑΟεϦϞʔτ • ग़ࣾ͢Δ͚Ͳωοτӽ͠ʹձ • ேձͷલʹࡶஊ
Slide 47
Slide 47 text
Remote Tools • Zoom • Sqwiggle • GitHub & Slack • Polycom
Slide 48
Slide 48 text
ேձ: Zoom • Google Hangouts ͔ΒҠߦ • શһͷإ͕ҰͰ͖Δ
Slide 49
Slide 49 text
ීஈ Sqwiggle & Slack & GitHub • ΄ͱΜͲจࣈͰࣄΓͯΔ
Slide 50
Slide 50 text
To Be Continued • ·ͩ࢝·͔ͬͨΓ • ػࡐ͕େࣄͦ͏ • ϝϯόʔશһ͕ϦϞʔτΛҙࣝ͢Δ
Slide 51
Slide 51 text
Ҏ্ • Mackerel νʔϜͷ։ൃମ੍Ͱͨ͠ • ྑ͍ϚΠΫใ͓͓ͪͯ͠Γ·͢
Slide 52
Slide 52 text
We are Hiring!