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.3k
Workflow at Hatena Mackerel Team
はてな Mackerel チームの開発フローについて
motemen
October 09, 2014
Tweet
Share
More Decks by motemen
See All by motemen
旧から新へ: 大規模ウェブクローラの Perl から Go への移行 / YAPC::Fukuoka 2025
motemen
3
2.2k
AIに実況させる / AI Streamer
motemen
4
7.5k
技術を育てる組織・組織を育てる技術 / technology and organization
motemen
13
5.1k
はてなのエンジニアリングマネジメント、これまでとこれから / Engineering Management in Hatena, Hatena Engineer Seminar 26
motemen
2
2.2k
入門 Bubble Tea
motemen
1
890
ソフトウェア開発と私 / Software Development and I
motemen
13
6.9k
はてなサービスプラットフォームチームにおける 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.9k
Other Decks in Programming
See All in Programming
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
120
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
210
Data-Centric Kaggle
isax1015
2
780
Fluid Templating in TYPO3 14
s2b
0
130
Package Management Learnings from Homebrew
mikemcquaid
0
230
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
100
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
140
並行開発のためのコードレビュー
miyukiw
0
1.1k
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
790
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
470
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
106
230k
Documentation Writing (for coders)
carmenintech
77
5.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
GraphQLとの向き合い方2022年版
quramy
50
14k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
330
Marketing to machines
jonoalderson
1
4.6k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
70
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
87
Building AI with AI
inesmontani
PRO
1
700
Bash Introduction
62gerente
615
210k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
100
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!