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
Taishi Takeichi
October 18, 2016
Technology
94
78k
日経電子版アプリ 穴のあいたバケツ開発
140年の歴史を持つ会社の、高速内製アジャイル開発への挑戦
Taishi Takeichi
October 18, 2016
Tweet
Share
More Decks by Taishi Takeichi
See All by Taishi Takeichi
日経電子版 プロダクトアウトからの脱却
taishiblue
10
10k
プロダクトマネジメントとは[新卒研修]
taishiblue
25
9.3k
日経電子版 レガシーな基礎の上に建つ旅館
taishiblue
15
7.3k
日経電子版 穴のあいたバケツ開発[加筆・修正版]
taishiblue
6
3.7k
日経電子版アプリが高速化のためにやったこと
taishiblue
16
10k
日経電子版 新聞アプリとしてのUI/UX
taishiblue
13
15k
Other Decks in Technology
See All in Technology
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
140
組織規模に応じたPlatform Engineeringの実践
hacomono
PRO
0
120
AIがコード書きすぎ問題にはAIで立ち向かえ
jyoshise
4
1.6k
Snowflake Intelligenceにはこうやって立ち向かう!クラシルが考えるAI Readyなデータ基盤と活用のためのDataOps
gappy50
0
290
Claude Code でアプリ開発をオートパイロットにするためのTips集 Zennの場合 / Claude Code Tips in Zenn
wadayusuke
6
3.5k
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.3k
Bedrock AgentCoreで解き放て! Strands Agentsで構築するマルチエージェントの実装Tips
minorun365
PRO
5
320
人工衛星のファームウェアをRustで書く理由
koba789
15
8.4k
共有と分離 - Compose Multiplatform "本番導入" の設計指針
error96num
2
1.3k
Oracle Cloud Infrastructure IaaS 新機能アップデート 2025/06 - 2025/08
oracle4engineer
PRO
0
130
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
3
600
日本語で指示するだけ!AIで業務効率化を実現する 〜90分で体感する実践ワークショップ〜
taka_aki
0
1.5k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
540
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Rails Girls Zürich Keynote
gr2m
95
14k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
Visualization
eitanlees
148
16k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Fireside Chat
paigeccino
39
3.6k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Transcript
1 ܦిࢠ൛ΞϓϦ݀ͷ͍͋ͨόέπ։ൃ ʙͷྺ࢙Λ࣋ͭձࣾͷɺߴΞδϟΠϧ։ൃͷઓʙ ຊܦࡁ৽ฉࣾɹࢢେࢤ ΤϯλʔϓϥΠζΞδϟΠϧษڧձ
2 ࣗݾհ ࢢେࢤʢ5BJTIJ5BLFJDIJʣ ݄ੜ·Ε"#ܕࡕਆϑΝϯ ຊܦࡁ৽ฉࣾσδλϧฤہฤ෦ ܦిࢠ൛ϞόΠϧΞϓϦνʔϜͷϦʔμʔ ʢϓϩμΫτϚωʔδϟʔɾϓϩδΣΫτϚωʔδϟʔʣ
3 ࣗݾհ େֶଔۀޙɺ̑΄Ͳɾɾɾ ɺ8FC։ൃձࣾʹೖࣾ 8FCΤϯδχΞͱͯ͠ಇ͘ '9औҾͷ8FCΞϓϦ։ൃͳͲʹैࣄ ɺຊܦࡁ৽ฉࣾ ຊࣾ ʹೖࣾ αʔϏε։ൃͷϞόΠϧΞϓϦνʔϜʹଐ
J04ΞϓϦ։ൃʹैࣄɺͦͷޙϞόΠϧΞϓϦ։ൃશൠΛ୲
4 ܦͱ ৽ฉ ࡶࢽ ์ૹ σʔλ ΠϯσοΫε
5 ຊܦࡁ৽ฉͱ ɾܦͷϝΠϯϓϩμΫτ ɾʢ໌࣏ʣੜ ɹࠓͰपʂ ɾສ෦ൃߦ
6 ༗ྉձһʢ4,200ԁ/݄ʣ 48ສਓ ແྉձһ 300ສਓ ඇొ 2500ສUB ܦిࢠ൛ͱ ɾ20103݄ץ ɾ݄ؒΞΫηε
3ԯ݅ ɾຖ 900 ຊͷهࣄΛ৴ ɾPCɾϞόΠϧαΠτɺ ɹiOS, Android ΞϓϦͳͲʹରԠ
7 ܦిࢠ൛ͱ ேץɾ༦ץ ຊܦࡁ৽ฉͷͯ͢ͷهࣄ 8FCץ 8FCݶఆͷهࣄ .Zχϡʔε ͖ͳ࿈ࡌΩʔϫʔυͳͲΛͱʹύʔιφϥΠζ
8 ిࢠ൛ͷϓϩμΫτ 1$αΠτ ϞόΠϧαΠτ ిࢠ൛ΞϓϦ ʢJ04"OESPJEʣ ࢴ໘ϏϡʔΞʔΞϓϦ ʢJ04"OESPJEʣ ଞɾ/*,,&*45:-&ɾ-JTT/ɾਓࣄΦονͳͲ
9 ిࢠ൛ͷϓϩμΫτ 1$αΠτ ϞόΠϧαΠτ ిࢠ൛ΞϓϦ ʢJ04"OESPJEʣ ࢴ໘ϏϡʔΞʔΞϓϦ ʢJ04"OESPJEʣ ଞɾ/*,,&*45:-&ɾ-JTT/ɾਓࣄΦονͳͲ
10 ిࢠ൛ͷϓϩμΫτ 1$αΠτ ϞόΠϧαΠτ ిࢠ൛ΞϓϦ ʢJ04"OESPJEʣ ࢴ໘ϏϡʔΞʔΞϓϦ ʢJ04"OESPJEʣ ଞɾ/*,,&*45:-&ɾ-JTT/ɾਓࣄΦονͳͲ
11 ిࢠ൛ΞϓϦ
ࠓ͓͍ͨ͜͠͠ͱ
13 ʮ݀ͷ͍͋ͨόέπʯ CZਂو೭ࢯ
14 ऄޱΛଠ͘͢Δʹ ɾϓϩϞʔγϣϯ ɾΞΫΠδγϣϯ ɾ4&0ɾࢄܕϝσΟΞͳͲ ʮ݀ͷ͍͋ͨόέπʯ
15 όέπΛେ͖͘͢Δʹ ɾϚʔέοτنΛ֦େ ɾίϯςϯπΛ֦ॆɾແྉ։์ ɾ͓ࢼ͠ࢪࡦͳͲ ʮ݀ͷ͍͋ͨόέπʯ
16 όέπͷ݀Λ࠹͙ʹ ɾϦςϯγϣϯ ɾάϩʔεϋοΫ ɾϓϩμΫτͷϒϥογϡΞοϓͳͲ ʮ݀ͷ͍͋ͨόέπʯ
17 ଠ͍ऄޱΛશ։ʹͯ͠ਫΛྲྀͯ͠ɺ ɾখ͍͞όέπͰ͙͢ʹᷓΕͯ͠·͏ ɾ͕݀ͨ͘͞Μ͍͍͋ͯͨΒஷ·Βͳ͍ ࣮ߦͷॱ൪͕େࣄ
18 ࠓ͓͍ͨ͜͠͠ͱ ɾΠέͯΔόέπ։ൃνʔϜΛ࡞ΔͨΊʹͬͨ͜ͱ ɾόέπΛେ͖͘͢ΔͨΊʹͬͨ͜ͱ ɾόέπͷ݀Λ࠹͙ͨΊʹͬͨ͜ͱ
ΠέͯΔόέπ։ൃνʔϜΛ࡞Δ
20 ͜Ε·Ͱͷ։ൃ ɾΥʔλʔϑΥʔϧ։ൃ ɾશ֎ ɾʮͯ͘ɺ͍͍ͪͪେ͖͍ϓϩδΣΫτʯ
21 ϦϦʔε·Ͱʹ̎ि͔͔ؒͬͨྫ
22 ϦϦʔε·Ͱʹ̎ि͔͔ؒͬͨྫ
23 ϦϦʔε·Ͱʹ̎ि͔͔ؒͬͨྫ ɾ༷ɾཁ݅ఆٛॻ࡞ ɾࣾઆ໌ɾௐ ɾ։ൃձࣾͱଧͪ߹Θͤɾൃॻ࡞ ɾςετέʔε࡞ ɾ࣮ ɾडೖςετɾσόοά ɾਃɾϦϦʔε
24 ϦϦʔε·Ͱʹ̎ि͔͔ؒͬͨྫ ɾϘλϯͻͱͭՃ͢Δ͚ͩͰɺ ɹͻͱͭͷϓϩδΣΫτʹͳͬͯ͠·͏ ɾૉૣ͘ੈʹఏڙ͠ɺϑΟʔυόοΫΛಘΔ͜ͱ͕Ͱ͖ͳ͍ ɾ։ൃ్தͰͷॊೈͳ༷มߋ͕Ͱ͖ͳ͍ ɾٕज़తͳϊϋ͕ࣾʹͨ·Βͳ͍
25 όέπ։ൃʹٻΊΒΕΔ͜ͱ ɾ͍αΠΫϧͰͷϦϦʔεɺΞδϟΠϧ։ൃ ɾڝ߹ͷొڥͷมԽʹॊೈʹରԠ ɾऔҾίετͷ࠷খԽ ɾʮͯ͘ɺͳΔ͘খ͍͞ϓϩδΣΫτʯ
26 όέπ։ൃʹٻΊΒΕΔ͜ͱ ɾ͍αΠΫϧͰͷϦϦʔε ɾڝ߹ͷొڥͷมԽʹॊೈʹରԠ ɾऔҾίετͷ࠷খԽ ɾʮͯ͘ɺͳΔ͘খ͍͞ϓϩδΣΫτʯ ͦ͏ͩɺԽ͠Α͏ʂ
27 Ͳ͔͜ΒखΛ͚ͭΔ͔ ɾϢʔβʔʹ͍ۙɺϑϩϯταΠυͷ։ൃΛԽ ɾଞࣾʹઈରෛ͚ΒΕͳ͍ͷɺܦʹ͔͠࡞Εͳ͍ͷΛɺ ɹ֎ͷਓʹ࡞ͬͯΒͬͯͲ͏͢Δ
ϓϩμΫτϚωʔδϟʔɿ1ਓ σβΠφʔɿ1ਓ iOSΤϯδχΞɿ3ਓ AndroidΤϯδχΞɿ3ਓ WebΤϯδχΞɿ2ਓ ʢQAɿ3ਓʣ 28 ϝϯόʔ σδλϧฤہʢਓʣ αʔϏε։ൃʢਓʣ
ϞόΠϧΞϓϦνʔϜ
29 ϝϯόʔ ɾඞͣࣾ͠һͰ͋Δඞཁͳ͍ ɾࣗࣄͱͯ͠ଊ͑ΒΕΔਓͳΒɺڠྗձࣾͷਓͰ͍͍
30 ֎෦ͷίϯαϧλϯτ ٕज़ސɿҏ౻࠸ࢯʢ!OBPZB@JUPʣ 6*69ίϯαϧλϯτɿਂو೭ࢯʢ!qBEEJDUʣ ʙ
31 ׂࢄͱνʔϜҙࣝ ɾਓϓϩμΫτ ɾׂΛ໌֬ʹɺΛ໌֬ʹ ɾͷલͷϓϩμΫτ։ൃʹूதͰ͖Δڥ
32 ׂࢄͱνʔϜҙࣝ ɾνʔϜͱͯ͠ڞ௨ͷΰʔϧΛ࣋ͭ ɾϓϩμΫτผͰɺ ɹαʔϏεͱͯ͠ಉ͡ํΛ͘ ɾڞ༗͖͢ϊϋଞϓϩμΫτదٓγΣΞ ɾνʔϜ໊Λ͚ͯΈͨΓ
33 ϓϩμΫτΦʔφʔΛ໌֬ʹ ɾ෦ॺͱͯ͠ͷܾఆݖͱผʹɺνʔϜͷܾఆݖΛ໌֬ʹ ɾܾఆݖΛ࣋ͭਓɺ࣌Λݟͯஅ͢Δ ɾϦʔμʔ͍ͯɺҙ֎ͱܾఆݖ͕ᐆດͩͬͨΓɺ ɹܾఆݖΛ࣋ͭਓ͕அ͠ͳ͔ͬͨΓ͢Δ ɾΞδϟΠϧ։ൃͰஅͷ࿈ଓɺຖ͕அ
34 πʔϧɾڥͷඋ ɾίϛϡχέʔγϣϯɾใڞ༗ ɾιʔεཧ ɾܭଌ
35 -FU`Tίϛϡχέʔγϣϯʂ ɾ੮ସ͑ ɾேձ ɾिҰͷϓϩμΫτఆྫ ɾPO ʢ࣌ʹҿΈʹʣ
36 ʮཧͰͳ͘ࢧԉʯ ɾΤϯδχΞ͕։ൃʹूத͍͢͠ڥΛ ɾձٞͳΔ͘ݮΒͯ͠ɺ ɹπʔϧ੮ͰͷίϛϡχέʔγϣϯͰิ͏ ɾΤϯδχΞ͕ҙݟΛݴ͍͍ؔ͢ੑ ɾࣗΒͷגΛԼ͛Δߦҝμϝμϝ
37 ࣾͰࣾ֎ͰϓϨθϯεΛ্͛Δ
38 ࣾͰࣾ֎ͰϓϨθϯεΛ্͛Δ
όέπΛେ͖͘͢Δ
40 શ໘ϦχϡʔΞϧ
41 શ໘ϦχϡʔΞϧ ɾ݄ʹిࢠ൛ΞϓϦΛશ໘ϦχϡʔΞϧ ɾεΫϥονͰ։ൃ ɾ6*͚ͩͰͳ͘ɺίϯςϯπɾରϢʔβʔ֦େ
42 ୭Ͱ͑ΔΞϓϦʹ ɾ༗ྉձһݶఆ ɾேץɾ༦ץ ɹʴ8FCץͷҰ෦ ɾແྉձһɺ·ͨ ɹొͯ͠ͳͯ͘Ұ෦ӾཡՄೳ ɾேץɾ༦ץ ɹʴ8FCץͯ͢ ɾແྉձһͳΒແ݅Ͱ̍िؒɺ
ɹશίϯςϯπɾશػೳ͕ ɹར༻Մೳʹ
43 ϖʔύʔϓϩτλΠϓ͔Βஸೡʹ ਂ͞ΜͱҰॹʹ͔݄͔͚ͯϓϩτλΠϓΛ࡞
44 Πϯϑϥॊೈʹ ΦϯϓϨ͔ΒΫϥυ S3 EC2 CloudFront SNS
45 "QQ4UPSFͷϕετ৽ண"QQʹ ɾ͓͢͢ΊͷτοϓΧςΰϦʹܝࡌ ɾτοϓΧςΰϦ๒ͰΠϯετʔϧܹ૿ ɾݱࡏχϡʔεΧςΰϦͷ ɹϕετχϡʔε"QQʹ
46 ͨͩ͠ɺϦχϡʔΞϧਏ͍Ͱ͢
47 Πϯετʔϧ㱠৽نΞΫςΟϒϢʔβʔ ɾΠϯετʔϧɺΞΫςΟϒϢʔβʔ͕૿͔͑ͨͱ͍͏ͱɾɾɾ ɾϦςϯγϣϯࢪࡦ͕ඞཁ ɾץҎདྷͷϓϩμΫτͷෛ࠴ղফ͠ͳ͚Ε
όέπͷ݀Λ࠹͙
49 ಓͳάϩʔεϋοΫ ɾϦςϯγϣϯͱখ͍͞ΧΠθϯͷ܁Γฦ͠ ɾඞͣ͠৽ػೳՃͰͳ͍ ɾͰɺ͔ΒݟͯΔͱԿͬͯΔ͔Θ͔ΓͮΒ͍ʢࣾʣ
50 ʮ࣍ԿΔͷʁʯ ʮهࣄμϯϩʔυߴԽͰ͢ʢ͖Γͬʣʯ ʮ;ʔΜɻ͋ͱʁʯ ʮɾɾɾʯ
51 ৽ػೳՃ͔ΓͬͯΔͱ͜͏ͳΔ ʢඦಙφΠϑɹCZਂو೭ࢯʣ
52 ϞόΠϧΞϓϦνʔϜ͚ͩͰͰ͖Δ͜ͱ ɾىಈɾμϯϩʔυߴԽ ɾαΫαΫͷૢ࡞ײ ɾσβΠϯɾ6*ΧΠθϯ ɾϢʔβʔΧελϚΠζػೳ ɾΞϓϦͷ҆ఆԽʢΫϥογϡϑϦʔΞοϓʣ
53 ϦϦʔεεέδϡʔϧ J04ిࢠ൛ "OESPJEిࢠ൛ J04ࢴ໘ "OESPJEࢴ໘ ϞόΠϧ8FC ϞόΠϧ"1*
54 ʢ,FZOPUFಈըͰ͢ɻ̍Ͱ͍͔ʹαΫαΫʹͳ͔͕ͬͨΘ͔Γ·͢ʣ
55 ϞόΠϧΞϓϦνʔϜ͚ͩͰͰ͖ͳ͍͜ͱ ɾଞνʔϜͷ"1*վम ɾίϯςϯπʹؔΘΔվम
56 શ֯ӳͷ֯ม
57 ϦϦʔε·Ͱͷεςοϓ ɾίϯςϯπ୲ऀʹݸผʹ૬ஊ ɾવΔ͖ձٞͰఏҊ ɾଞνʔϜͷ"1*ͰରԠՄೳ͔૬ஊ ɾ֬ೝ༻ͷϓϩτΞϓϦΛ࡞ ɾϓϩτΞϓϦΛΠϯετʔϧ࣮ͨ͠ػΛ̎༻ҙͯ͠ɺ ɹίϯςϯπ୲ऀʹؒ֬ೝͯ͠Β͏ɻஸೡͳσϞͰ৴པΛಘΔ ɾ0,͕ग़ͨͷͰ"1*ͷཁ݅Λ٧Ί࣮ͯΛґཔ ɾϞόΠϧΞϓϦνʔϜͰ࠷ऴςετ
ɾϦϦʔε
58 ͪΐͬͱʹͳͬͨ
59 ͪΐͬͱʹͳͬͨ
60 ʹ݁͠ͳ͍ͱ͜ΖͰ۪ʹ
61 Ռ ɾΞΫςΟϒϢʔβʔ͕ϦχϡʔΞϧॳ͔Βഒʹ ɾϨϏϡʔͷධՁ্͕͖ͬͯͨ
՝
63 2"ͷෛ୲૿ ɾਝͳ։ൃମ੍Ͱ͋Δ͕Ώ͑ʹɺςετͷෛ୲͕૿͑ͨ ɾςετ͕ؒʹ߹ΘͣɺϦϦʔε͕ΕΔ͜ͱ ɾॊೈͳ༷มߋ͕2"ʹΘ͍ͬͯͳ͍୯७ͳϛε
64 2"ͷෛ୲૿ ɾϢχοτςετ૿ɺFFςετ ɾཁ݅ΛͳΔ͘γϯϓϧʹ ɾλεΫཧπʔϧͪΌΜͱ͏ʴͬͱίϛϡχέʔγϣϯ
65 ͦͦԿΛΔͷ͔ ɾϦχϡʔΞϧॳͷ՝͍͍ͩͨ௵ͨ͠ ɾઈରΔ͖λεΫঃʑʹݮ͖ͬͯͨ ɾ࣍ʹԿΛΕ͍͍ͷ͔
66 ΠϯϓοτΛ૿ͦ͏ ɾ͝ҙݟ͝ཁϑΥʔϜΛઃ͚ͯɺϢʔβʔͷཁΛฉ͘ ɾ4UPSFͷϨϏϡʔ ɾνʔϜࣾɺਂ͞Μ͔ΒͷఏҊ ϦΞϧλΠϜͰTMBDL௨ʴ#BDLMPHʹλεΫͱͯ͠ొ
67 աڈͷࢪࡦΛৼΓฦͬͯΈΔ
68 ݀ͷେ͖͞ͱ࠹͗͢͞ ɾॏཁʢ݀ͷେ͖͞ʣͱ ɹΓ͢͞ʢ࠹͗͢͞ʣΛ࣠ʹ ɹࢪࡦҊΛϓϩοτ͢Δ ɾӈ্Λ࠷༏ઌλεΫͱͯ͠ɺ ɹ࣮͍ͯ͘͠
69 ٕज़తͳτϥΠ ɾ3FBMNͷ࠾༻ ɾΦϑϥΠϯͰχϡʔε͕ಡΊΔΑ͏ʹ ɾ8FCQϑΥʔϚοτͷ࠾༻ʢࢴ໘ϏϡʔΞʔΞϓϦʣ ɾαʔόʔϨεΞʔΩςΫνϟʢࢴ໘ϏϡʔΞʔΞϓϦʣ
·ͱΊͱ͜Ε͔Β
71 ·ͱΊ ɾ·ͣମ੍࡞Γ ɾ݀ͷۭ͍ͨόέπɺ࣮ߦͷॱ൪͕େࣄ ɾಓͳΧΠθϯઈରʹࢭΊ͍͚ͯͳ͍
72 ·ͱΊ ɾ·ͣମ੍࡞Γ ɾ݀ͷۭ͍ͨόέπɺ࣮ߦͷॱ൪͕େࣄ ɾಓͳΧΠθϯઈରʹࢭΊ͍͚ͯͳ͍ ɾ͏Δ͜ͱ͕ͳ͍ͱࢥͬͯɺͦΜͳ͜ͱͳ͍ ɾτϨϯυपғͷڥɺΏͬ͘ΓͰৗʹಈ͍͍ͯΔ
73 ͜Ε͔Β ɾྑ͍จԽɾश׳ͷҡ࣋ͱԣల։ ɾͦΖͦΖऄޱΛଠ͘͢ΔͨΊʹͰ͖Δ͜ͱ ɾಓͳΧΠθϯઈରʹࢭΊͳ͍
74 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠