Workflow at Hatena Mackerel Team
by
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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!