Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Workflow at Hatena Mackerel Team
Search
motemen
October 09, 2014
Programming
9
7.2k
Workflow at Hatena Mackerel Team
はてな Mackerel チームの開発フローについて
motemen
October 09, 2014
Tweet
Share
More Decks by motemen
See All by motemen
AIに実況させる / AI Streamer
motemen
3
1.6k
技術を育てる組織・組織を育てる技術 / technology and organization
motemen
12
4.9k
はてなのエンジニアリングマネジメント、これまでとこれから / Engineering Management in Hatena, Hatena Engineer Seminar 26
motemen
2
2.1k
入門 Bubble Tea
motemen
1
840
ソフトウェア開発と私 / Software Development and I
motemen
13
6.7k
はてなサービスプラットフォームチームにおける Mackerel / Mackerel in Hatena Platform Team
motemen
1
1.3k
はてなシステムの考古学 / History of development at Hatena
motemen
3
300k
Reading Go Tools - GoCon 2016 Spring
motemen
5
2.8k
Diff'ing Go library API changes
motemen
4
2.7k
Other Decks in Programming
See All in Programming
ISUCON研修おかわり会 講義スライド
arfes0e2b3c
1
470
Porting a visionOS App to Android XR
akkeylab
0
810
The Modern View Layer Rails Deserves: A Vision For 2025 And Beyond @ RailsConf 2025, Philadelphia, PA
marcoroth
2
740
PHPカンファレンス関西2025 基調講演
sugimotokei
4
570
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1.1k
「App Intent」よくわからんけどすごい!
rinngo0302
1
110
Agentic Coding: The Future of Software Development with Agents
mitsuhiko
0
140
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
520
生成AI時代のコンポーネントライブラリの作り方
touyou
1
290
ソフトウェア設計とAI技術の活用
masuda220
PRO
22
5.7k
AIともっと楽するE2Eテスト
myohei
9
3k
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
480
Featured
See All Featured
Writing Fast Ruby
sferik
628
62k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
How STYLIGHT went responsive
nonsquared
100
5.6k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Producing Creativity
orderedlist
PRO
346
40k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
700
For a Future-Friendly Web
brad_frost
179
9.8k
Practical Orchestrator
shlominoach
189
11k
Transcript
@motemen 2014-10-09 Workflow at Hatena Mackerel Team
ࢲʹ͍ͭͯ • id:motemen / @motemen • גࣜձࣾͯͳ νʔϑΤϯδχΞ • Mackerel
νʔϜ σΟϨΫλʔ • Vim ͱ Go ͕͖Ͱ͢
Agenda • Mackerel νʔϜʹ͍ͭͯ • From Perl to Scala •
Mackerel νʔϜʹ͓͚ΔεΫϥϜ • ϦϞʔτ
1 About Mackerel Team
Mackerel
Mackerel https://mackerel.io/
Mackerel • ͯͳ ৽αʔϏε • 09/17 ਖ਼ࣜԽ • ৽͍͠ΫϥυύϑΥʔϚϯεཧαʔϏε Mackerel
ਖ਼ࣜϦϦʔεͷ͓Βͤ • αʔόཧɾࢹπʔϧ • πʔϧͷݟΛαʔϏεԽ
Mackerel ͷྺ࢙ • ࣾϏδωεϓϥϯίϯςετ • CTO id:stanaka ʮΫϥυࢹπʔϧʯ
Mackerel νʔϜͷྺ࢙ • 2013-11ʙ ϓϩτλΠϓ։ൃ • P + 1 engineer
+ α • 2014-04ʙ ਖ਼ࣜʹνʔϜԽ • P + 5 engineers + 1 designer • ࠓʹࢸΔ
2 From Perl To Scala
Hatena ❤ Perl • ΄ͱΜͲͷαʔϏε Perl • ۀ (2001)
ʙ ݱࡏ (2014) • ͯͳϒοΫϚʔΫɺͯͳϒϩάɺ…
Why Perl • ߴͳ Trial & Error • ߴͳ։ൃ
Mackerel Chose Scala • Perl ͷ࣍ͷݴޠ • தن։ൃʹ͑ɺݎ࿚ͳͷ • Ϧʔυ։ൃऀͷझຯ
• ʢຊ Haskell ͕Α͔ͬͨʣ
ৄ͘͠ • id:hakobe932 — YAPC::Asia Tokyo 2014
Perl … ਆͷ࣌ • No ίϯύΠϧ • Fast σϓϩΠ •
ۃΊ͍ͯ։ൃαΠΫϧ
Scala • ੩తܕ͚ͷ҆৺ײ • ϨϏϡʔ • ϦϑΝΫλϦϯά • Slow ίϯύΠϧ
• Slow ίϯύΠϧ
Not-So Hotfix • σϓϩΠྃ • ʮ͋ɺͪΐͬͱϛεͬͯ·͢Ͷ…ʯ • ʮΑ͠ٸ͍Ͱͦ͏ʯ • ʢ2࣌ؒܦաʣ
• ʮΓ·ͨ͠ʯ
“ScalaShock” • ΈΜͳͰγϣοΫΛड͚ͨ • “ͷΜͼΓͱͨ͠։ൃ” • ίϯύΠϧͷؒʹϨϏϡʔͱ͔ • σϓϩΠ։࢝ૣΊʹ •
ࠓͰ30ఔͰྃ
࠷ۙͷσϓϩΠ
3 Scrum in Mackerel Team
Scrum • “εΫϥϜʢӳ: ScrumʣɺιϑτΣΞ։ൃ ʹ͓͚Δ෮తͰ૿తͳΞδϟΠϧιϑτΣ Ξ։ൃख๏ͷ1ͭͰ͋Δɻத৺ʮ։ൃνʔ Ϝ͕Ұମʹ͢Δͱڞ༗͞Ε͍ͯΔతΛ͍ٻ ΊΔॊೈͳϓϩμΫτ։ൃετϥςδʔʯͰ͋ Δɻ” •
— Wikipedia: εΫϥϜ
Scrum • ܾ·ͬͨظؒʢεϓϦϯτʣ • εϓϦϯτ։࢝࣌ʹλεΫΛೖՙ • εϓϦϯτྃ࣌ʹৼΓฦΔ • վળ͠ͳ͕ΒεϓϦϯτΛ܁Γฦ͢
༧श
Team Configuration • ։ൃνʔϜ • ϓϩμΫτΦʔφʔ id:stanaka • εΫϥϜϚελʔ id:motemen
• 3+α ΞϓϦΤϯδχΞ / 1 σβΠφ / 1 Πϯϑϥ • εϓϦϯτ: 2 weeks • ։࢝ॳ 1 week
εϓϦϯτͷ։࢝: ୨Է͠ձ • ݄༵ͷே 2 ࣌ؒఔ • ϓϩμΫτόοΫϩάΛݕ౼ • ࠓεϓϦϯτͰΔ͜ͱΛ۩ମԽ
• ԿΛ͢Ε͍͍͔໌֬ʹͳΔ
୨Է͠: ϓϩμΫτόοΫϩά • Google Spreadsheet • ༏ઌॱɺޙΖͷํͪ͝Όͪ͝Ό
୨Է͠: λεΫͷݕ౼ • ۩ମతͳλεΫʹׂ • ཻ = 1 Pull Request
ʹͰ͖Δ͘Β͍ • ྫ:ʮϗετͷੜࢮࢹػೳʯ • ࢹίΞ෦ • ΞϥʔτʹରԠ͢ΔϞσϧ • ϝʔϧૹ৴ • ը໘࣮
εϓϦϯτͷऴྃ: ;Γ͔͑Γձ • ༵ۚͷ༦ํ 1 ࣌ؒ • εϓϦϯτͷୡΛৼΓฦΔ • ݸਓɾνʔϜͷ
KPT Λ͓͜ͳ͏ • ࠓޙͷ֎෦తͳεέδϡʔϧΛ֬ೝ
ࣜ࣍ୈ • ձͷਐΊํࢦΛॻ͍͓͍ͯͨ • Εͳ͍Α͏ʹ • motemen ͕αϘΕΔΑ͏ʹ
Mackerel νʔϜͱ Scrum • ϓϩμΫτνʔϜθϩ͔Β • Γ͍ͨ͜ͱΛண࣮ʹਐΊ͍ͯ͘ • KPT ͠ͳ͕ΒมԽ͍ͯͬͨ͠
εϓϦϯτத: GitHub • λεΫ GitHub Issue ʹ • 1 εϓϦϯτ
= 1 ϚΠϧετʔϯ
Milestones
Milestones • ࣍ͷεϓϦϯτ: • ࠓεϓϦϯτͰͰ͖ͳͦ͏͚ͩͲ͢ ͙Γ͍ͨ • ΞΠσΞஔ͖: • Γ͍͚ͨͲ༏ઌະఆ
قઅײͷ͋ΔεϓϦϯτ • ೋे࢛અؾΛεϓϦϯτ໊ʹ • ʮཱ࣍ळεϓϦϯτͰ͢ʢ8݄ʣʯ ʮ͟Θ…ʢ͏ळ͔…ʣʯ ͪͳΈʹࠓिפ࿐εϓϦϯτͰ͢
λεΫঢ়ଶϥϕϧ • PR ͕ͨ͠Β “ϨϏϡʔґཔ” • “ϨϏϡʔྃ” ʹͳͬͨΒ Ϛʔδ or
मਖ਼
Based on • id:shiba_yu36 — GitHub Kaigi
ݟੵΓϥϕϧ • Issue ͷετʔϦʔϙΠϯτΛϥϕϧԽ • ͜ΕҎ্Ͱ͔͍ͷλεΫԽ͠ͳ͍
Burn-down Chart • radekstepan/github-burndown-chart
ͦͷଞ • λεΫΛ·ͱΊΔ Issue • ٞ༻ • ٞ༻ʢdrunkʣ
VS ϗϫΠτϘʔυᝦ • جຊతʹ GitHub • Ұཡੑ͕͢͞ • λεΫฆࣦʢཧʣ •
ϦϞʔτແཧ
4 Working Remote
ͯͳ౦ژ։ൃηϯλʔ • 2012: ։ઃ • ʢɹʈωʈʣɾɾɾ • 2014: גࣜձࣾͯͳʹೖࣾ͠·ͨ͠ |
͓ͦΒ͘ ͦΕ͑͞ฏຌͳʑ • → Mackerel νʔϜଐ
ड͚ೖΕ४උ • ͱͱϦϞʔτͷ༧ఆʢ1ਓʣ • πʔϧݕ౼ͯ͋ͬͨ͠ • ࠷ॳͷ2िؒɺژ • ϖΞϓϩͱ Λ܁Γฦ͢
༧श • 37 Signals • ϦϞʔτ࠷ߴʂΈ͍ͨͳຊ
ʮ͋ͷਓ࠷ۙଘࡏײͳ͍Ͷʯ • Έ͍ͨʹ͠ͳ͍ • ژ 5 : ౦ژ 1
งғؾΛἧ͑Δ • ΦϑΟεϦϞʔτ • ग़ࣾ͢Δ͚Ͳωοτӽ͠ʹձ • ேձͷલʹࡶஊ
Remote Tools • Zoom • Sqwiggle • GitHub & Slack
• Polycom
ேձ: Zoom • Google Hangouts ͔ΒҠߦ • શһͷإ͕ҰͰ͖Δ
ීஈ Sqwiggle & Slack & GitHub • ΄ͱΜͲจࣈͰࣄΓͯΔ
To Be Continued • ·ͩ࢝·͔ͬͨΓ • ػࡐ͕େࣄͦ͏ • ϝϯόʔશһ͕ϦϞʔτΛҙࣝ͢Δ
Ҏ্ • Mackerel νʔϜͷ։ൃମ੍Ͱͨ͠ • ྑ͍ϚΠΫใ͓͓ͪͯ͠Γ·͢
We are Hiring!