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
カオナビのチーム開発の裏側
Search
Genki Sano
April 11, 2022
Programming
0
980
カオナビのチーム開発の裏側
Genki Sano
April 11, 2022
Tweet
Share
More Decks by Genki Sano
See All by Genki Sano
スクラムチームをスケールする〜LeSS導入3ヶ月の振り返りと課題〜/scaling-the-scrum-team
sanogemaru
2
530
SQLアンチパターンを読んでリファクタしてみた / sql-anti-pattern-refactored-2022
sanogemaru
0
470
Other Decks in Programming
See All in Programming
Better Code Design in PHP
afilina
PRO
0
130
Why Jakarta EE Matters to Spring - and Vice Versa
ivargrimstad
0
1.1k
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
1
260
初めてDefinitelyTypedにPRを出した話
syumai
0
420
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
900
Contemporary Test Cases
maaretp
0
140
OnlineTestConf: Test Automation Friend or Foe
maaretp
0
120
Jakarta EE meets AI
ivargrimstad
0
220
Jakarta EE meets AI
ivargrimstad
0
600
『ドメイン駆動設計をはじめよう』のモデリングアプローチ
masuda220
PRO
8
540
.NET のための通信フレームワーク MagicOnion 入門 / Introduction to MagicOnion
mayuki
1
1.7k
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
190
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
A designer walks into a library…
pauljervisheath
204
24k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Docker and Python
trallard
40
3.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Adopting Sorbet at Scale
ufuk
73
9.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Embracing the Ebb and Flow
colly
84
4.5k
Transcript
ࠤ ݩؾ ΧΦφϏͷνʔϜ։ൃͷཪଆ !1)1FS,BJHJ
ࣗݾհ !TBOPHFNBSV 2 גࣜձࣾΧΦφϏ αʔόʔαΠυΤϯδχΞ ΤϯδχΞϦϯάϚωʔδϟʔ ࠤ ݩؾ (FOLJ 4BOP
3 νʔϜ։ൃͯ͠·͔͢ʁ
4 ͍ͬͯΔͱࠔΔ͜ͱ͕ͨ͘͞Μ͋Δ ࠔͬͯΔͷʹԿݴͬͯ͘Εͳ͍ ϝϯόʔ͕ݮͬͯ͠·ͬͨ ϝϯόʔಉ࢜ͷഅ͕߹Θͳ͍ εέδϡʔϧ௨ΓʹऴΘΒͳ͍ ͓ޓ͍ʹ͍ͬͯΔ͜ͱ͕ݟ͑ͳ͍ ίϛϡχέʔγϣϯ্͕ख͘ͱΕͳ͍ ҙݟ͕߹Θͳ͍ ઃܭํ͕όϥόϥͰෛ࠴͕ग़དྷͯ͠·ͬͨ
5 ຊͷ
ຊͷ 6 ࣗͰॴଐͨ͠νʔϜͰͷମݧஊ l ͲΜͳ͜ͱͰࠔͬͨͷ͔ l ͦΕΛͲ͏ͬͯΓӽ͔͑ͨ l ͬͯΑ͔ͬͨ͜ͱ l
͚ͬͨͲ্ख͘ߦ͔ͳ͔ͬͨ͜ͱ
ຊͷ 7 ϓϩδΣΫτհ ࠔΓ͝ͱͱͦͷղܾํ๏ ·ͱΊ
8 ࣾһͷݸੑɾ࠽ೳΛൃ۷͠ઓུਓࣄΛՃͤ͞Δ λϨϯτϚωδϝϯτγεςϜʰΧΦφϏʱ © kaonavi Inc.
9 ϓϩδΣΫτհ
ϓϩδΣΫτհ 10 γʔτཤྺػೳͷ։ൃ l ։ൃظؒ ɿ̍ l ։ൃख๏ ɿΞδϟΠϧʢεΫϥϜʣ l
نײ ɿ̓ʙ໊̔
ϓϩδΣΫτհ 11 جຊใ l ࢯ໊ l ࣾһ൪߸ l ॴଐ l
ೖࣾ l ʜ l ༣ศ൪߸ l ಓݝ l ࢢ۠ொଜ l ொ໊ɾ൪ l ΞύʔτɾϚϯγϣϯ໊ l ʜ ݱॅॴ ࢁా ଠ γʔτ γʔτ
12 ϓϩδΣΫτհ ΤϯδχΞ 2"ΤϯδχΞ σβΠφʔ 10 εΫϥϜϚελʔ
13 ϓϩδΣΫτհ εϓϦϯτ ϓϥϯχϯά εϓϦϯτ ϨτϩεϖΫςΟϒ εϓϦϯτϨϏϡʔ σΠϦʔεΫϥϜ ຖ िؒ
ϦϦʔε
14 ࠔΓ͝ͱͱͦͷղܾํ๏
ࠔΓ͝ͱͱͦͷղܾํ๏ 15 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍ ͋Γ·ͤΜͱ͍͏
16 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍
17 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ l ։ൃਐḿ͕ѱ͔ͬͨ l ΤϯδχΞؒͰɺղܾ͢ΔͨΊʹ৭ʑࢼ͍ͯͨ͠ l 10͔ΒΤϯδχΞͰͷऔΈ͕ݟ͑ͣɺগ͠ෆ৴ײ͕ग़ͯ͠·ͬͨ l
ϑϧϦϞʔτͰͷࣄͩͬͨͷͰɺ༨ܭʹݟ͑ʹ͘͘ͳ͍ͬͯͨ
18 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ ͬͯΈͨ͜ͱ l 10ͱϦʔυΤϯδχΞͰPOΛߦ͏
19 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ POͷৄࡉ l ස ɿि̍ճ l ࣌ؒ ɿ̏̌
l ͢༰ɿࠔΓ͝ͱϞϠϞϠ͍ͯ͠Δ͜ͱͷڞ༗
20 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ Ͳ͏ͳ͔ͬͨ l ࠣࡉͳҾֻ͔ͬΓΛղফग़དྷͨ l ಉ͡ํΛ͍ͯࣄ͕ग़དྷ͍ͯΔ͜ͱΛఆظతʹ֬ೝͰ͖ͨ l ͦΕʹΑΓɺ͓ޓ͍ͷ৴པ্͕ͨ͠
21 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ l ಛʹͳ͠ l ͠Β͘εΫϥϜϚελʔʹ ؒʹೖͬͯΒͬͨ l ΞδΣϯμΛ࡞Βͳ͔ͬͨ
ͬͯྑ͔ͬͨ͜ͱ ͬͯඍົͩͬͨ͜ͱ
22 ࠔΓ͝ͱͱͦͷղܾํ๏ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍
23 ࠔΓ͝ͱͱͦͷղܾํ๏ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍ l ઃܭͷ૬ஊΛ͢Δ͕࣌ؒଟ͘ൃੜ͍ͯͨ͠ l ઃܭͷ࣌ؒෆ֬ఆཁૉ͕ଟ͘ɺϓϥϯχϯά࣌ʹਖ਼֬ͳ࣌ؒΛݟੵΔ ͷ͔ͬͨ͠ ˞͜͜Ͱͷʮઃܭʯͱ l
ৄࡉઃܭϓϩάϥϜઃܭΈ͍ͨͳͷ l ࣮ࡍʹରͷΫϥεʹରͯ͠Ͳ͜·ͰΛ࣋ͨͤΔ͔ʁͳͲ
24 ࠔΓ͝ͱͱͦͷղܾํ๏ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍ ͬͯΈͨ͜ͱ l ϓϥϯχϯάͷલʹઃܭΛઃ͚ͯɺઃܭʹूத͢Δ࣌ؒΛ࡞ͬͨ l ઃܭΛϞϒϓϩͰͬͯΈͨ
25 ࠔΓ͝ͱͱͦͷղܾํ๏ CFGPSF ϓϥϯχϯά ઃܭ ࣮ ઃܭ ϓϥϯχϯά ࣮ BGUFS
26 ࠔΓ͝ͱͱͦͷղܾํ๏ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍ Ͳ͏ͳ͔ͬͨ l ෆ֬ఆཁૉ͕ݮΓɺϓϥϯχϯάͷਫ਼্͕͕ͬͨ l εϓϦϯτͰୡ͖͢͜ͱ͕໌֬ʹͳΓɺϞνϕʔγϣϯ্͕͕ͬͨ l ҰॹʹઃܭΛ͢Δ͜ͱͰɺ࣮ํͷบ͕ἧ͏Α͏ʹͳͬͨ
27 ࠔΓ͝ͱͱͦͷղܾํ๏ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍ l ϓϥϯχϯάͰઃܭ͢Δ l εϓϦϯτͷ࠷ऴʹઃܭ Λઃ͚Δ l ઃܭͰ۩ମతͳ࣮ํ๏
ίʔσΟϯά༰ܾΊͳ͍ l ઃܭͰίϝϯτ͚ͩΛॻ͘ ͬͯྑ͔ͬͨ͜ͱ ͬͯඍົͩͬͨ͜ͱ
28 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏
29 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ l σΠϦʔεΫϥϜͷ ༰͕ࣅ௨ͬͯ͘Δ l ୶ʑͱࡢͱࠓͷ͕͋Γɺࠔ͍ͬͯΔ͜ͱͳ͍ ͰऴΘΔ l
͔͠͠ɺͳΜͱͳ্͘ख͘ߦ͍ͬͯΔ l ͕͋ͬͯগ͠ݴ͍ͮΒ͍ ঢ়گʢʁʣ
30 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ ͬͯΈͨ͜ͱ l ͪΐͬͱͨ͠͝ͱΛ 5SFMMPͰΧʔυ ʹͯ͠Βͬͨ l σΠϦʔεΫϥϜͷΞδΣϯμʹɺ5SFMMPͷ֬ೝͷ࣌ؒΛՃ
ͨ͠
31 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ 5SFMMPͷϦετ l ഉআ͍ͨ͠োɾࠔΓ͝ͱ l ͍͋·͍ͳ͜ͱ l ֬ೝɾରԠத
l ྃ
32 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ 5SFMMPͷϦετ l ഉআ͍ͨ͠োɾࠔΓ͝ͱ l ϓϩδΣΫτͷਐḿΛ્͢ΔΑ͏ͳཁҼΛॻ͍ͯஔ͘ॴ l ͍͋·͍ͳ͜ͱ
l Ͳ͏ͳ͍ͬͯΔͷ͔͍ͯ͠Δ͜ͱΛॻ͍ͯஔ͘ॴ
ࠔΓ͝ͱͱͦͷղܾํ๏ 33
34 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ Ͳ͏ͳ͔ͬͨ l ͪΐͬͱͨ͜͠ͱͰॻ͍ͯ͘Εͨ l ʹײ͍͕ͯͨ͡ɺேʹͳΔͱΕ͍ͯΔঢ়گ͕ݮͬͨ l ݦࡏԽ͍ͯ͠ͳ͍ΛૣΊʹͰ͖ΔΑ͏ʹͳͬͨ
35 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ l ϑΝΠϒϑΟϯΨʔ l ࢥ͍͍ͭͨλΠϛϯάʹ͙͢ هࡌͰ͖ΔॴΛͭ͘Δ l σΠϦʔεΫϥϜͰඞͣ৮ΕΔ
ͬͯྑ͔ͬͨ͜ͱ ͬͯඍົͩͬͨ͜ͱ
36 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ ϑΝΠϒϑΟϯΨʔ l ยखͷຊͷࢦͰࠓͷؾ࣋ͪঢ়گΛද͢؆୯ͳΞϯέʔτ l σΠϦʔεΫϥϜͰʮεϓϦϯτΰʔϧʹରͯ͠ͷਐḿʯʹ͍ͭͯฉ͍ͨ l ͕ಇ͍ͯɺগ͠ଟ͍ࣈΛग़ͯ͠͠·͏͜ͱ͕ଟ͔ͬͨ
l ͺͬͱৼΒΕΔͱযͬͪΌ͏ਓ͕͍ΔνʔϜʹ͔ͳ͍
·ͱΊ 37
·ͱΊ 38 ؾʹͳΔ͋Γ·ͨ͠Ͱ͠ΐ͏͔ʁ l ͜ͷ··ಋೖ্ͯ͠ख͘ߦ͔ͳ͍͜ͱ͕ଟ͍ͣ l ಋೖ͔ͯ͠ΒʮΧΠθϯʯ͢Δ͜ͱ͕ॏཁ l ͱΓ͋͑ͣͬͯΈΔྫͱͯ͠׆༻ͯ͠ཉ͍͠ l
ϋοϐʔͳνʔϜ։ൃϥΠϑΛʂ
© kaonavi Inc. 8&"3&)*3*/( IUUQTDPSQLBPOBWJKQSFDSVJUMJTU