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 development at cookpad
Search
Kohei Arai
February 11, 2018
How-to & DIY
5
2.7k
クックパッドの "体系的" サービス開発 / "Systematic" service development at cookpad
Cookpad TechConf 2018 の登壇資料です。
社内での開発サイクルの回し方や、注意しているポイントについてお話しました
Kohei Arai
February 11, 2018
Tweet
Share
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
98
サービス開発者コミュニティを開発している話 / Develop service developers community
spicycoffee
1
470
ユーザーインタビューを開発プロセスに "馴染ませる" / How to "fit" user interviews to development process
spicycoffee
1
1.3k
Service development lecture in 2018 summer internship - 10 Day Tech for service engineers -
spicycoffee
1
9.6k
AB テストの落とし穴 / "Pitfalls" of AB test
spicycoffee
0
530
Other Decks in How-to & DIY
See All in How-to & DIY
アジャイルよもやま話 ~ 「笑顔の合意」に至るスキルを学ぼう
hageyahhoo
3
1k
【潔能講堂】 綠能科技動手做-磁生電燈 / 李薇平老師
learnenergy2
0
210
【変更済み】にじ格制作プロジェクト 進捗報告
vfgpproject
0
420
教習資料PDF_4. 交差点編(優先・非優先)
sawagaku
0
5.5k
即納モデルとの戦い
ragemax
0
260
Notionでの快適メモ術
ayumu11
0
590
The story of repairing my junk keyboard with The kinT keyboard controller
kurotaky
0
1.2k
How to Build Confidence and Achieve Challenges
satoshoco
1
540
スクフェス福岡前夜祭 LT
pokotyamu
0
110
English Study
bbsakura
0
330
IoTカーテンオープナー
keicafeblack
0
140
面接で伸びしろを感じさせる方法 / How to make the interviewer feel like you have potential
uenitty
1
360
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
115
18k
Fantastic passwords and where to find them - at NoRuKo
philnash
36
2.5k
Happy Clients
brianwarren
91
6.4k
Building Effective Engineering Teams - LeadDev
addyosmani
27
1.8k
Agile that works and the tools we love
rasmusluckow
324
20k
[RailsConf 2023] Rails as a piece of cake
palkan
22
3.9k
Why You Should Never Use an ORM
jnunemaker
PRO
50
8.6k
Atom: Resistance is Futile
akmur
258
25k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Optimising Largest Contentful Paint
csswizardry
7
2.3k
How to name files
jennybc
64
92k
Documentation Writing (for coders)
carmenintech
59
3.9k
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 ɾαʔϏε։ൃͰɺԾઆͷ࣮ߦ͔ΒֶͼΛಘΔαΠΫϧ͕࠷ॏཁ ɾஞ࣍తʹ࣮ߦͤͣɺ࠷ॳʹαΠΫϧશମΛઃܭ͢Δ ɾ֤ϑΣʔζͰదͳϑϨʔϜϫʔΫΛ͏