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
クックパッドの "体系的" サービス開発 / "Systematic" service dev...
Search
Kohei Arai
February 11, 2018
How-to & DIY
2.9k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クックパッドの "体系的" サービス開発 / "Systematic" service development at cookpad
Cookpad TechConf 2018 の登壇資料です。
社内での開発サイクルの回し方や、注意しているポイントについてお話しました
Kohei Arai
February 11, 2018
More Decks by Kohei Arai
See All by Kohei Arai
Service development lecture in 2019 cookpad summer internship
spicycoffee
3
14k
サービス開発者コミュニティを開発している話(@北大 2019.1)
spicycoffee
0
140
サービス開発者コミュニティを開発している話 / Develop service developers community
spicycoffee
1
580
ユーザーインタビューを開発プロセスに "馴染ませる" / How to "fit" user interviews to development process
spicycoffee
1
1.4k
Service development lecture in 2018 summer internship - 10 Day Tech for service engineers -
spicycoffee
1
10k
AB テストの落とし穴 / "Pitfalls" of AB test
spicycoffee
0
620
Other Decks in How-to & DIY
See All in How-to & DIY
JAWS-UG/AWS Community Update - 2026/6/13 JAWS-UG TOHOKU 仙台
awsjcpm
0
1.2k
JAWS-UG/AWS Community Update
awsjcpm
0
300
JAWS-UG/AWS Community Update 彩の国埼玉支部1周年記念
awsjcpm
1
150
エッジAIでBBQの肉の焼き加減判定をやってみた #iotlt #seeed
n0bisuke2
2
330
5年間ぐらい、 スプリントレトロスペクティブは、 「+/Δ」しかしてないので、 あらためて良いのか悪いか考えてみる / Doing Plus Delta for about five years
camel_404
1
470
AWS Community/JAWS-UG Update - JAWS-UG 上越妙高支部リブート
awsjcpm
2
130
Goカードゲームを 作ってみた!
senoue
0
290
サイボウズには100名以上の社員が出演する"夏フェス"があるって本当?
oguemon
1
930
Node-REDでセンサーなどから起動させるカメラノードを作ったよ IoTLT vol123 #iotlt
n0bisuke2
0
170
EjecTea 2026 / 20260228-osc26tk-ejectea
akkiesoft
0
1k
How to make the Groovebox
asonas
2
2.3k
私がカンファレンスのプロポーザルを書くときに考えていること
kotomin_m
1
780
Featured
See All Featured
Designing Powerful Visuals for Engaging Learning
tmiket
1
480
A designer walks into a library…
pauljervisheath
211
24k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
610
Abbi's Birthday
coloredviolet
3
9.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Rails Girls Zürich Keynote
gr2m
96
14k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
360
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
230
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
160
Transcript
৽Ҫ ߁ฏ ձһࣄۀ෦ ΤϯδχΞ ΫοΫύουͷ “ମܥత” αʔϏε։ൃ
ࣗݾհ 2 ৽Ҫ ߁ฏ @SpicyCoffee66 ɾ2017 ৽ଔೖࣾ ΤϯδχΞ ɾαʔϏε։ൃ෦ ͕͢͞νʔϜଐ
ɹ* ݕূͷΈཱ͔ͯΒ࣮ɾੳ·Ͱ ɹ* cookpad studio ͷ ɹ αʔόʔαΠυϝΠϯΤϯδχΞ ɾࠓظ͔Βձһࣄۀ෦ଐ ɾRails, SQL
ຊͷओ ΫοΫύουͰ ͲͷΑ͏ʹ։ൃαΠΫϧΛճ͍ͯ͠Δ͔ 3
αʔϏε։ൃ͍͠ 4
αʔϏε։ൃͷ͠͞ ɾϢʔβʔͷ࣋ͭཉٻɺຊਓΛؚΊͯ୭ʹΘ͔Βͳ͍ ɾϢʔβʔͷ࣋ͭཉٻɺ࣌ؒͱͱʹมΘ͍ͬͯ͘ 5 ΰʔϧ͕Θ͔Βͳ͍ ࠓ͍Δॴ͕Θ͔Βͳ͍ ɾ։ൃऀࣗͷαʔϏεΛਖ਼͘͠ཧղͰ͖͍ͯͳ͍
αʔϏε։ൃͷ͠͞ 6 ΰʔϧ͕نఆͰ͖Δ ઃܭ ΰʔϧ͕نఆͰ͖ͳ͍ αʔϏε։ൃ
αʔϏε։ൃͷ͠͞ 7 ΰʔϧ͕نఆͰ͖ͳ͍ αʔϏε։ൃ ։ൃαΠΫϧ ֶͼͷαΠΫϧ ԾઆΛཱͯͯ ࣮ߦͯ͠ ϢʔβʔͷԠΛݟΔ
ֶͼͷαΠΫϧ 8 BML ϧʔϓ Measure Learn product idea data Build
Ծઆ͔ΒϓϩμΫτʹ ϓϩμΫτ͔Βσʔλʹ σʔλ͔Β Ծઆʹ
ֶͼͷαΠΫϧ ʙཧʙ 9 BML ϧʔϓ Measure Learn product idea data
Build ࠷Ͱ࠷খͷ ϓϩμΫτ A/B ςετͰޮՌଌఆ ৫ʹ ݟڞ༗
ֶͼͷαΠΫϧ ʙݱ࣮ʙ 10 BML ϧʔϓ Measure Learn product idea data
Build ͍͍ͩͨ ͲͷϑΣʔζͰ ࣦഊ͢Δ
Case: 1 11
ֶͼͷαΠΫϧࣦഊྫ 12 Push ௨ͬͯͲͷ͘Β͍ޮՌ͕͋Δͷ͔Γ͍ͨ ࣮ͯ͠ݕূͯ͠Έ·͠ΐ͏ Push ௨ͷޮՌ͕Γ͍ͨ Push ௨ͷ࣮ ʹ
ֶͼͷαΠΫϧࣦഊྫ 13 Ͳ͏ͤͳΒը૾͚͍ͭͨͰ͢Ͷ Push ௨ͷޮՌ͕Γ͍ͨ Push ௨ͷ࣮ ≦ Push ௨ʹը૾
ֶͼͷαΠΫϧࣦഊྫ 14 Ϩγϐ͕Ϧίϝϯυग़དྷΔΑ͏ʹͳΓ·ͨ͠ʂ ͦͷػೳͤ·͠ΐ͏ʂ Push ௨ͷޮՌ͕Γ͍ͨ Push ௨ͷ࣮ < Push
௨ʹը૾ Ϧίϝϯυػೳ
ֶͼͷαΠΫϧࣦഊྫ 15 Push ௨ͷޮՌ͕Γ͍ͨ Push ௨ͷ࣮ <<< Push ௨ʹը૾ Ϧίϝϯυػೳ
͡Ό͋ઐ༻ͷ LP ࡞Γ·͠ΐ͏ʂʂʂ ઐ༻ LP !ʁʁʁ
ֶͼͷαΠΫϧࣦഊྫ 16 Build ͷࣦഊ ɾϓϩμΫτ͕ෆඞཁʹେ͖͘ͳ࣮ͬͯʹ͕͔͔࣌ؒΔ ɾݕূ͍ͨ͠Ծઆͱͨ͠ϓϩμΫτͷػೳ͕טΈ߹͍ͬͯͳ͍ ɾͦͦԾઆʹߟྀ࿙Ε͕͋Δ
Case: 2 17
ֶͼͷαΠΫϧࣦഊྫ 18 ػೳͷ࣮ ϩάຒ·ͬͯ ͳ͔ͬͨʂʂʂ
ֶͼͷαΠΫϧࣦഊྫ 19 Measure ͷࣦഊ ɾ͍͟ܭଌ͠Α͏ͱ͢Δͱϩά͕ຒ·͍ͬͯͳ͍ ɾෳͷ A/B ςετ͕িಥͯ͠ܭଌ݁ՌʹӨڹ͕ग़Δ ɾूܭ SQL
ʹؒҧ͍͕͋Γɺ࠷ѱͷ߹ͦΕʹؾ͕͔ͭͳ͍
Case: 3 20
ֶͼͷαΠΫϧࣦഊྫ 21 TOP ͷόφʔΛม͑ͯೖձ͕ ◦◦% ૿͑·ͨ͠ʂ ʂʂʂ ͦΕ……ଟ͍ΜͰ͠ΐ͏͔ʁ Ͳ͏ͳΜͰ͠ΐ͏…… ·͊ࣈ্͕ͬͯΔ͠࠾༻͠·͔͢……
ֶͼͷαΠΫϧࣦഊྫ 22 Learn ͷࣦഊ ɾग़͖ͯͨࣈΛͲ͏ղऍ͢Ε͍͍͔ΠϚΠνΘ͔Βͳ͍ ɾࣈಈֶ͍͕ͨͼΛಘΒΕ͔ͨͱݴΘΕΔͱͦ͏Ͱͳ͍ ɾಘΒΕͨݟ͕ଐਓతʹͳΔɺ͋Δ͍ҋʹফ͑Δ
͜͏ͳΒͳ͍ͨΊʹ 23
ֶͼͷαΠΫϧͷӡ༻ϙΠϯτ 24 લ͔Βॱ൪ʹΖ͏ͱ͠ͳ͍
ֶͼͷαΠΫϧͷӡ༻ϙΠϯτ 25 લ͔Βॱ൪ʹΖ͏ͱ͠ͳ͍ खΓͷࢭ ޮతͳֶͼ
ֶͼͷαΠΫϧͷӡ༻ϙΠϯτ 26 લ͔Βॱ൪ʹΖ͏ͱ͠ͳ͍ ɾஞ࣍తʹΖ͏ͱ͢Δͱɺ݁ߏେ͖ͳखΓʹܨ͕Δ ɾલͷϑΣʔζ͕ऴΘͬͯͳͯ࣍͘ͷϑΣʔζͷ͜ͱߟ͑ΒΕΔ ɾֶͼͷαΠΫϧࣗମΛҰͭͷϓϩδΣΫτͱߟ͑Δͱ ɹΉ͠Ζ࠷ॳʹαΠΫϧશମΛઃܭ͢Δ͖ खΓͷࢭ
ֶͼͷαΠΫϧͷӡ༻ϙΠϯτ 27 લ͔Βॱ൪ʹΖ͏ͱ͠ͳ͍ Measure product Build idea data ɾϩά͕Γͳ͍ ɾͲ͏͍͏Λ
ɹܭଌ͢Δͷ͔ෆ໌ྎ खΓͷࢭ
ֶͼͷαΠΫϧͷӡ༻ϙΠϯτ 28 લ͔Βॱ൪ʹΖ͏ͱ͠ͳ͍ Measure product Build Learn idea data ɾࣈͷղऍ͕Θ͔Βͳ͍
ɾͲͷͰࢪࡦΛ ɹධՁ͢Δ͔ܾ·ͬͯͳ͍ खΓͷࢭ
ֶͼͷαΠΫϧͷӡ༻ϙΠϯτ 29 લ͔Βॱ൪ʹΖ͏ͱ͠ͳ͍ Measure product Build Learn data idea ԾઆΛཱͯΔஈ֊Ͱ
αΠΫϧͷઌʹؔ͢Δ͜ͱ ܾΊΕΔͷܾΊͯ͠·͏ खΓͷࢭ Measure product Build Learn data
ֶͼͷαΠΫϧͷӡ༻ϙΠϯτ 30 αʔϏεʹର͢Δཧղ ݱ࣮ ֶͼ લ͔Βॱ൪ʹΖ͏ͱ͠ͳ͍ ޮతͳֶͼ
ֶͼͷαΠΫϧͷӡ༻ϙΠϯτ 31 αʔϏεʹର͢Δཧղ ݱ࣮ ֶͼ ࢪࡦ݁Ռͷ༧ ࢪࡦͷ݁Ռ ࢥͬͨΑΓ ྑ͍ /
ѱ͍ ͦΕͳ͔ͥʁ લ͔Βॱ൪ʹΖ͏ͱ͠ͳ͍ ޮతͳֶͼ
ֶͼͷαΠΫϧͷӡ༻ϙΠϯτ 33 αʔϏεʹର͢Δཧղ ݱ࣮ ࢪࡦ݁Ռͷ༧ ࢪࡦͷ݁Ռ લ͔Βॱ൪ʹΖ͏ͱ͠ͳ͍ ޮతͳֶͼ
֤ϑΣʔζͷઃܭ 34
֤ϑΣʔζͷઃܭ ʙBuildʙ 35 Build ʹ͍ͭͯલ͓ͬͯͬͯ͘͜ͱ ɾઈରʹݕূ͍ͨ͠Ծઆͷ໌֬Խ ɾݕূഎܠͷཧ ɾݕূ༰ɾҙͷཧ
֤ϑΣʔζͷઃܭ ʙMeasureʙ 36 Measure ʹ͍ͭͯલ͓ͬͯͬͯ͘͜ͱ ɾܭଌख๏ͷબఆ ɾKPI ͷܾఆ ɹ* ଞʹӨڹΛ༩͑Δࢦඪ͕ͳ͍͔֬ೝ͢Δ
ɾϩάͷ֬ೝɺSQL ͷ࣮ߦ ɹ* ࣮ࡍʹҰ SQL Λୟ͍ͯΈΔ
֤ϑΣʔζͷઃܭ ʙLearnʙ 37 Learn ʹ͍ͭͯલ͓ͬͯͬͯ͘͜ͱ ɾࢦඪղऍͷཧ ɹ* ͜ͷ͕ߴͯ͘͜ͷ͕͍ͱ͖ͲΜͳͱ͖ͩΖ͏͔ ɾ݁Ռͷఆ ɹ*
ଌఆࢦඪ͕Ͳͷ͘Β͍ͷࣈʹͳͬͨΒͲ͏͢Δ͔ ɹ*ʮͳΜͱͳ͘GO ʯΛආ͚Δʢ࡞ͬͨͷग़ͨ͘͠ͳΔʣ ɾʮޭͷΠϝʔδʯΛڞ༗͢Δ
ֶͼͷαΠΫϧͷӡ༻ϙΠϯτʙ࣮ྫʙ 38 ࢪࡦલʹ͓͜ͳ͏ٞͷྫ
ࣾͰར༻͞ΕΔπʔϧ ϑϨʔϜϫʔΫͷհ 39
Build 40
ࣾϑϨʔϜϫʔΫͷհ ʙ Build ʙ 41 ՁԾઆγʔτ
ࣾϑϨʔϜϫʔΫͷհ ʙ Build ʙ 42 ՁԾઆγʔτ
ࣾϑϨʔϜϫʔΫͷհ ʙ Build ʙ 43 Chanko ɾϓϩτλΠϓ։ൃΛαϙʔτ͢Δ Rails ϓϥάΠϯ ɾϢʔβʔηάϝϯτ͝ͱͷϩδοΫద༻
ɾΤϥʔൃੜ࣌ͷϑΥʔϧόοΫ ɾhttps://github.com/cookpad/chanko EazyAb ɾA/B ςετ༻ Chanko ֦ு
Measure 44
ࣾϑϨʔϜϫʔΫͷհ ʙ Measure ʙ 45 Hakari2 ɾϩΪϯάɾKPI ཧπʔϧ ɾΩʔϫʔυΛઃఆͯ͠ΠϕϯτΛϩΪϯάͰ͖Δ ɾࣗಈͰ
dashboard ͕࡞͞ΕΔ
ࣾϑϨʔϜϫʔΫͷհ ʙ Measure ʙ 46 papa dashboard ɾHakari2 ͷϩάΛͱʹूܭ݁ՌΛՄࢹԽ ɾ༗ҙ͕ࠩ͋Γͦ͏͔Ͳ͏͔ͷ҆
Learn 47
ࣾϑϨʔϜϫʔΫͷհ ʙ Learn ʙ 48 Report.md ɾࢪࡦͷੳϨϙʔτΛ Markdown Ͱ࡞ ɾPull
Request ܗࣜͰӡ༻ ɾνʔϜͷϨϙδτϦʹɺϨϏϡʔͷ௨ͬͨݟΛϓʔϧ
ࣾϑϨʔϜϫʔΫͷհ ʙ Learn ʙ 49 Report.md 1. ࢪࡦͷੳϨϙʔτΛ Markdown Ͱ࡞͠ɺPR
Λఏग़
ࣾϑϨʔϜϫʔΫͷհ ʙ Learn ʙ 50 Report.md 2. νʔϜϝϯόʔΛத৺ʹϨϙʔτΛϨϏϡʔ
ࣾϑϨʔϜϫʔΫͷհ ʙ Learn ʙ 51 Report.md 3. ϨϏϡʔ͕௨ͬͨΒϚʔδͯ͠ϨϙʔτΛϓʔϧ
ࣾϑϨʔϜϫʔΫͷհ ʙ Learn ʙ 52 Report.md ɾݟͷϓʔϧՕॴ͕໌֬ʹͳΔ͜ͱͰࢀরੑ্͕͕Δ ɾϨϏϡʔΛ௨͢͜ͱͰɺݟͷਫ਼্͕͕Δ ɾϨϏϡʔࣗମʹΑͬͯɺͷߴ͍ঢ়ଶͰҰݟ͕ڞ༗͞ΕΔ ɾϨϏϡϫʔͷࢪࡦɾαʔϏεʹର͢Δཧղ͕ਂ·Δ
ɾPR ্ͷ͔ٞΒࢪࡦͷলΞΠσΟΞ͕ੜ·ΕΔ
·ͱΊ 53
·ͱΊ 54 ɾαʔϏε։ൃͰɺԾઆͷ࣮ߦ͔ΒֶͼΛಘΔαΠΫϧ͕࠷ॏཁ ɾஞ࣍తʹ࣮ߦͤͣɺ࠷ॳʹαΠΫϧશମΛઃܭ͢Δ ɾ֤ϑΣʔζͰదͳϑϨʔϜϫʔΫΛ͏