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
ninjinkun
June 12, 2016
Programming
61
18k
スマートフォンアプリ開発における共創的な開発チーム
複雑かつリッチな体験を提供するスマートフォンアプリを開発するためのチームワーク、その中でのエンジニアの役割について
ninjinkun
June 12, 2016
Tweet
Share
More Decks by ninjinkun
See All by ninjinkun
買収から2ヶ月でシステム統合した話
ninjinkun
0
57
Designer's and Engineer's Thinking Styles
ninjinkun
0
150
Launchable Webinar テストを効率化して生産性を上げる方法
ninjinkun
2
520
ディープリンクの 設計と実装 - iOSDC2017
ninjinkun
18
10k
ReSwiftでアプリの状態管理 / Reactive Swift Meetup
ninjinkun
9
16k
フリルのアプリ開発今昔物語
ninjinkun
3
2.2k
プロトタイピング合宿によるデザインリニューアル
ninjinkun
1
3k
デザイナーが仕事をしやすいアプリエンジニアを考える
ninjinkun
4
640
Elevationで影が思ったように出ないとき
ninjinkun
4
12k
Other Decks in Programming
See All in Programming
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
230
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
200
Scaling your build logic
antalmonori
1
150
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
20
3.4k
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
340
2024年のWebフロントエンドのふりかえりと2025年
sakito
1
180
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
3.2k
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
4k
ASP. NET CoreにおけるWebAPIの最新情報
tomokusaba
0
310
DROBEの生成AI活用事例 with AWS
ippey
0
120
昭和の職場からアジャイルの世界へ
kumagoro95
1
170
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
300
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.4k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Designing for Performance
lara
604
68k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Being A Developer After 40
akosma
89
590k
Bash Introduction
62gerente
610
210k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Unsuck your backbone
ammeep
669
57k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
4 Signs Your Business is Dying
shpigford
182
22k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Transcript
εϚʔτϑΥϯΞϓϦ։ൃʹ ͓͚Δڞతͳ։ൃνʔϜ dΤϯδχΞͷࢹ͔Βd
OJOKJOLVO w גࣜձࣾ'BCMJD w ϑϦϚΞϓϦϑϦϧɺ3*%& w J04"OESPJE8FCΤϯδχΞ w J04։ൃɺ"OESPJE։ൃ
όοΫάϥϯυ w ίϯϐϡʔλαΠΤϯε w /"*45 ͯͳ w σβΠϯࢥߟ w %"ϊʔϚϯʹڧ͘ӨڹΛ
ड͚͍ͯΔ ʢ࣌σβΠϯࢥߟͱ͍͏ݴ༿ͳ͔͚ͬͨͲʣ
͓͜ͱΘΓ w ݸਓతͳମݧʹج͍ͮͨ༰Ͱ͋ΓɺͲ͜·ͰҰൠ ԽͰ͖Δͷ͔ະ w ͰϓϩδΣΫτʹ͜͏͍͏ਓ͕ਓډΔͱ͍͍ Μ͡Όͳ͍͔ͳʔͱࢥ͍ͬͯΔ w ʜͦΜͳײ͡ͷԹײͰ͍͖ͬͯ·͢
ΞδΣϯμ w ͡Ίʹڞతͳ։ൃνʔϜ w 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ w ΤϯδχΞ͕σβΠφʔతࢹΛ࣋ͭʹ
͡Ίʹ ڞతͳ։ൃνʔϜ
ۀϞσϧͷ่յ w 1$8FC࣌ΤϯδχΞͱσβΠφʔͷۀ͕ ཱ͍ͯͨ͠ w ΤϯδχΞ͕)5.-ςϯϓϨʔτͷͻͳܗΛ࡞ͬ ͯσβΠφʔ͕ͦ͜ʹ$44ΛͯΔ w ͦ͘͠ͷٯ ͡Ίʹ
ۀϞσϧͷ่յ w εϚʔτϑΥϯΞϓϦͰϏδϡΞϧ࣮Τϯδ χΞͷࣄ w σβΠφʔ͕खΛग़ͮ͠Β͍ w Ξτϓοτʹର͢ΔΤϯδχΞͷӨڹ͕ڧ͘ͳͬ ͍ͯΔ ͡Ίʹ
σβΠφʔͷ σβΠϯΛఏҊͨͯ͘͠ͲΕ͘Βɹɹɹ ͍ͷ͕͔͔Δ͔Θ͔Βͳ͍ ͡Ίʹ
σβΠφʔͷ ΤϯδχΞ͕σβΠϯ༷ ͷ··࣮ͯ͠͠·͏ ༷ʹͬͱҙݟ͕ཉ͍͠ ͡Ίʹ
લఏ w ΞϓϦͷઃܭʹ͓͍ͯσβΠφʔͷՌׂͨ͢ ඇৗʹେ͖͍ w ϏδϡΞϧͱΠϯλϥΫγϣϯͷઃܭͰϢʔβʔମ ݧ͕΄΅ܾ·Δ ͡Ίʹ
͔͠͠ʜ w σβΠφʔ͕ಠྗͰਖ਼ղͷϢʔβʔମݧ༷ Λ࡞ΕΔ͜ͱ·ͣͳ͍ w ٕज़తͳ੍ w ϢʔβʔཧղͷόΠΞε w ΠϯλϥΫγϣϯσβΠϯͷ͠͞
͡Ίʹ
։ൃνʔϜσβΠφʔΛॿ͚Α͏ w ༷ʹ͍ͭͯੵۃతͳҙݟަΛߦ͏ w ٕज़తͳࢹΛڞ༗͢Δ w σβΠφʔతࢹΛ࣋ͭ ͡Ίʹ
ҰํͰΤϯδχΞͷ ্༷͕͔Β͖߱ͬͯͯͦͷ··࣮ ͍ͯ͠Δ ͡Ίʹ ͬͱෲམͪײ͕΄͍͠
෦ྖҬԣஅతͳνʔϜ w ΤϯδχΞɺσβΠφʔɺϓϩμ ΫτϚωʔδϟʔɺϚʔέςΟ ϯάɺ2"ΛؚΜͩνʔϜ w ΞϯνϑΥʔλʔϑΥʔϧ w ϓϩδΣΫτ։͔࢝࣌ΒશһͰ લఏΛڞ༗͢Δ
͡Ίʹ
ूஂతֶश w ༷ʑͳઐՈͰνʔϜΛ· ͳ͍ͱղܾͰ͖ͳ͍͕૿ ͍͑ͯΔ w ৺ཧత҆શ w ઐੑΛ͑ͯҙݟΛݴ͍ ߹͑Δڥ͕伴ʹͳΔ
͡Ίʹ
ڞతͳνʔϜͷϝϯόʔʹͳΔ w ࢦ͢ΰʔϧʮਖ਼͍͠ʯΛ࡞ͬͯϢʔβʔͷ ߦಈΛม͑Δ͜ͱ w ͦͷͨΊʹʜ w ੵۃతʹଞ৬छΛר͖ࠐΉ w ࣗͷ৬ΛίʔσΟϯάʹݶఆ͠ͳ͍
͡Ίʹ
'BCMJDͰ࣮ࡍʹ ͍ͬͯΔ͜ͱ
ྫখنͳػೳվળ w αϙʔτ͔Β্͕͖ͬͯͨϢʔβʔͷཁΛ10͕ ༏ઌॱҐ͚ w *TTVFͰσβΠφʔɺΤϯδχΞɺ10͕༷Λٞ w ಈతϓϩτλΠϓɺ4LFUDIϑΝΠϧͷ࡞ɺڞ༗ w ࣮
w શһ2" 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ྫେنϦχϡʔΞϧ w ܦӦ͔ΒͷτοϓμϯͰܾఆ w ϢʔβʔΠϯλϏϡʔɺΞϯέʔτ w ࢢௐࠪɺڝ߹ௐࠪ w ϓϩτλΠϐϯά߹॓ w
͋ͱྫͱڞ௨ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
༷ϨϏϡʔ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
༷ϨϏϡʔ w ํੑ͕ܾ·͍ͬͯΕɺσβΠφʔ(JU)VC *TTVFʹߴਫ਼ͳϞοΫΛష͍ͬͯ͘ w ಈతϓϩτλΠϓɺ4LFUDIϑΝΠϧؚ͕·ΕΔ ͜ͱଟ͍ w ΤϯδχΞɺϏδωε͕ϨϏϡʔͯ͠ҙݟ͢Δ w
༷ͷৄࡉ٧Ίɺ࣮ίετײͷ͢Γ߹Θͤ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
σβΠφʔͱͷٞ w ʮͳΜ͔มʯʮμα͍ʯ w ࠷ѱͳϑΟʔυόοΫ w ͖ͪΜͱݴޠԽͯ͠ҙݟΛݴ͏ w ݴޠԽ͢ΔͨΊʹσβΠφʔͷݴ༿ΛֶͿඞཁ ͕͋Δ
'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ݕ౼ηογϣϯ w ͕ߜΒΕ͍ͯͳ͍߹શһͰݕ౼ηογϣϯ ΛΔ͜ͱ͋Γ·͢ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ಈతϓϩτλΠϓ 4LFUDIϑΝΠϧͷڞ༗ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ಈతϓϩτλΠϓͷڞ༗ w 'MJOUPɺ1SPUUͳͲͰ ࡞ΒΕͨϓϩτλΠ ϓ͕શମͷ༷ॻʹ ͳΔ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
4LFUDIϑΝΠϧͷڞ༗ w ࡉ͔͍αΠζɺϚʔδϯͳͲͷ ༷ॻͱͯ͠ڞ༗͢Δ w ࣮࣌ʹසൟʹࢀর͢Δ w ϐΫηϧࢦఆͷը໘༷ॻ ࡞Βͳ͍ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
શһ2" 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
શһ2" w ֤εςʔΫϗϧμΛר͖ࠐΜͰखಈ2" w 2"ͱ༷ͷ֬ೝΛಉ࣌ʹߦ͏ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
શһʁ w ϦϦʔε͔ΒӨڹΛड͚Δશһ w αϙʔτελοϑ w ࣄۀऀ w σβΠφʔ w
ΤϯδχΞ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ϝϦοτ w αϙʔτ৽ػೳͷ༷ΛΔ͜ͱ͕Ͱ͖Δ w ୭͔͕ೲಘ͍ͯ͠ͳ͍ঢ়ଶͰϦϦʔε͞ΕΔͷΛ ͛Δ w ؆୯ͳϢʔβϏϦςΟςετΛߦ͏߹͋Δ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ͲΕ͘Β͍2"ͬͯΔͷʁ w ετΞͷఏग़લ w όάPS༷มߋ͕ग़ͯ2" ʜͱ૿͍͑ͯ ͘ͷ͕ී௨ w ͘Β͍༨༟Λݟ͍ͯΔ w
ຊʹશһ͕ࢀՃ͢Δͷ࠷ॳͷҰճͰे 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ϢʔβʔΠϯλϏϡʔ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
૾ͷཌྷΛ͛ͯɺ ݱ࣮ͷϋϯϚʔͰ͑͋͛Δ 'BCMJDϑΝϯμʔσβΠφʔ UBLFKVOF 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ϢʔβʔΠϯλϏϡʔ w ϢʔβʔͷχʔζΛௐࠪ͢ΔͨΊʹߦ͏ w ͍ΘΏΔΤεϊάϥϑΟοΫΠϯλϏϡʔ w 'BCMJDͰओʹσβΠφʔͱࣄۀऀ͕ߦ͍ͬͯΔ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ΠϯλϏϡʔϩάͷڞ༗ w Ͱ͖ΕΤϯδχΞಉ੮͢Δ͜ͱ͕·͍͠ w ͔࣮͠͠ͰखҰഋͩͱશ෦ࢀՃ͍͠ w ΠϯλϏϡʔϩάΛ2JJUB5FBNʹڞ༗͍ͯ͠Δ w ͔͠͠Ұ࣍ใ͕ϕετɺϩά͋͘·Ͱೋ࣍ใ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ϢʔβʔͷΛฉ͋͘Ε͜Ε w ΞϯέʔτΛසൟʹ࣮ࢪ w Ϣʔβʔ͔Β࠾༻ͨ͠αϙʔτε λοϑʹώΞϦϯάʢϑϦϧʣ w தݹंചങίϛϡχςΟͷதͷਓ ʹώΞϦϯάʢ3*%&ʣ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ϓϩτλΠϐϯά߹॓ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ϓϩτλΠϐϯά߹॓ w Ϧαʔνڞ༗ w ϖʔύʔϓϩτλΠϐϯά w ٞɾू w πʔϧϓϩτλΠϐϯά w
ϢʔβʔςετʢΦϑΟεʹ͔ͬͯΒʣ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
Ϧαʔνڞ༗ w ࣄલʹଞࣾͷΞϓϦΛϦαʔν w ҹͯ͠·ͱΊΔ w ͓ޓ͍ʹԿΛࢀߟʹ͍ͯ͠Δͷ͔Λڞ༗͢Δ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ϖʔύʔϓϩτλΠϐϯά w 6*Λࢴʹॻ͖ग़͢ w ϝϯόʔશһ͕࡞Δ w ͱʹ͔͋͘ΓಘΔύλʔϯΛ ཏ͢Δ w ࣮ࡍʹ࠾༻͠ͳͯ͘
ݕ౼ͯ͠௵͓ͯ͘͜͠ͱ͕େࣄ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ٞɾू w શһͰ࡞ͬͨϓϩτλΠϓΛ࣋ͪدͬͯٞ w ͦΕͧΕͷྑ͍ॴΛऔΓೖΕͯϓϩτλΠϐϯάΛ ܁Γฦ͢ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
ϝϦοτ w σβΠφʔɺΤϯδχΞɺϏδωεͷઢ͕ἧ͏ w ٕज़త੍ɺͬ͘͟Γͱͨ͠ڞ༗Ͱ͖Δ w େنϦχϡʔΞϧͳͲʹ͓͢͢Ί 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
όϯμϦʔΦϒδΣΫτ w ݴ༿จࣈͰͷใୡʹ ݶք͕͋Δ w ֆϓϩτλΠϓͳͲɺΠϝʔ δΛשىͤ͞Δͷ͕͋Δͱٞ ͕εϜʔζʹͳΔ w ϝϯόʔͷੑΛܹ͢Δ
'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
Δ͜ͱ όϯμϦʔΦϒδΣΫτ ༷ϨϏϡʔ ಈతϓϩτλΠϓɺ4LFUDIϑΝΠϧ શһ2" Ќ൛ΞϓϦ ϢʔβʔΠϯλϏϡʔ ಈతϓϩτλΠϓɺΠϯλϏϡʔϩά ϓϩτλΠϐϯά߹॓ ϖʔύʔϓϩτλΠϓ
όϯμϦʔΦϒδΣΫτ 'BCMJDͰ࣮ࡍʹ͍ͬͯΔ͜ͱ
σβΠφʔతࢹΛ ࣋ͭ
㱠σβΠϯ͕Ͱ͖Δ w ͪΐͬͱ͕ͨࣝ͋͠Ε͍͍ w తڞ௨ݴޠͷ֫ಘ σβΠφʔతࢹΛ࣋ͭ
ษڧ͢Δ͜ͱ w ϨΠΞτઃܭͷࣝ w ΠϯλϥΫγϣϯઃܭͷࣝ w 4LFUDIΛ৮ͬͯΈΔ w σβΠϯࢥߟ σβΠφʔతࢹΛ࣋ͭ
ϨΠΞτઃܭͷࣝ w ͜ͷಡΜͰ͓͚0, w ใΛཧͯ͠ϨΠΞτ͢Δ ͨΊͷجૅࣝΛֶश͢Δ w ϨΠΞτઃܭཧతͳͷ Ͱ͋Δ͜ͱ͕ཧղͰ͖Ε0, σβΠφʔతࢹΛ࣋ͭ
ΠϯλϥΫγϣϯઃܭͷࣝ w େͷΠϯλϥΫγϣϯ4%,͕ఏڙͯ͘͠ΕΔ ͷͰे w ͔͠͠ಠࣗͷදݱΛ͍ͨ͜͠ͱ࣌ʑ͋Δʢྫ-JLF Ϙλϯʣ w ஸઐੑͷڱؒʹ͋ΔྖҬ w
σβΠφʔ͕Δ߹͋Δ͠ɺΤϯδχΞ͕ Δ߹͋Δ σβΠφʔతࢹΛ࣋ͭ
ΠϯλϥΫγϣϯઃܭͷࣝ w 1SPDFTTJOHܥͷຊͰֶश͢Δ ͷ͕ۙಓ͔ w ϝσΟΞΞʔτʹڵຯ͕͋Δਓ ͜ͷʹڧ͍ σβΠφʔతࢹΛ࣋ͭ
4LFUDIΛ৮ͬͯΈΔ w σβΠφʔ͕ϨΠΞτΛߟ͑ΔաఔΛମݧͰ͖Δ w ؆୯ͳը૾͕ࣗͰ࡞ΕΔΑ͏ʹͳΔͱศར σβΠφʔతࢹΛ࣋ͭ
σβΠϯࢥߟ w ຊͷΛൃݟ͠ղܾ͢Δͷ ͕σβΠϯͰ͋Δ w ؍ˠΞΠσΞग़ˠϓϩτλ Πϐϯάˠςετˠ؍ʜ σβΠφʔతࢹΛ࣋ͭ
σβΠϯࢥߟ w แׅతͳςΩετ w ΠϯλϏϡʔɺϖϧιφɺ ӬԕͷதڃऀϞσϧ w ಡΉͷେมͳͷͰྠߨ͕ ͓͢͢Ί σβΠφʔతࢹΛ࣋ͭ
σβΠϯࢥߟ w ࣮ࡍͲ͏͢Ε͍͍ͷʁͱ͍͏ ͍ʹ͑Δຊ w σβΠϯࢥߟͱϦʔϯελʔτΞο ϓͷϚογϡΞοϓ w ৽͠͞ͳ͍͕࣮ͷ͕த৺Ͱ ಡΈ͍͢
σβΠφʔతࢹΛ࣋ͭ
·ͱΊ w ڞతͳνʔϜͷϝϯόʔʹͳΔ w 'BCMJDͰ࣮ફ͍ͯ͠Δ։ൃख๏ w ༷ϨϏϡʔɺϓϩτλΠϓͷڞ༗ɺશһ2"ɺϢʔ βʔΠϯλϏϡʔɺϓϩτλΠϐϯά߹॓ w σβΠφʔతࢹΛ࣋ͭ
w ϨΠΞτɺΠϯλϥΫγϣϯɺσβΠϯࢥߟΛֶͿ
͓·͚
͓͢͢Ίຊ
ΤϯδχΞͱͯ͠ σβΠφʔʹͬͯཉ͍͜͠ͱ
खݩͰΞϓϦΛϏϧυ͢Δڥ Λ͑Δ w ։ൃதͷΞϓϦखݩͰϏϧυͯ֬͠ೝ͢Δ w ΤϯδχΞ3&"%.&ΛͪΌΜͱॻ͘ w ର໘ͰϏϧυ͕௨Δ·Ͱαϙʔτ͢Δ
ࣗͰΞϓϦΛ࡞ͬͯΈΔ w 9DPEF "OESPJE4UVEJPΛͬͯࣗͰΞϓϦΛ ࡞ͬͯΈΔ w ίʔυΛॻ͔ͳͯ͋͘ΔఔͷͷͰ͖Δ w ͲΜͳύʔπ͕͋Δ͔͓͚ͬͯ0,
ΤϯδχΞ ϓϥοτϑΥʔϚʔͱͷ ΠϯλʔϑΣΠε
ϓϥοτϑΥʔϚʔͱͷΠϯλʔ ϑΣΠε w ΞϓϦͷੈքͰຖՄೳʹͳΔ͜ͱ͕૿͍͑ͯΔ w ͔͠͠"QQMF (PPHMFͷग़ͯ͘͠ΔใΤϯδχ Ξ͚ w ͔Έࡅ͍ͯϏδωεɺσβΠφʔʹڞ༗͢Δ
w ಛʹ88%$ (PPHMF*0ͷใ
ϓϥοτϑΥʔϚʔͱͷΠϯλʔ ϑΣΠε w ϓϥοτϑΥʔϚʔʹಇ͖͔͚Δ ͜ͱʹΑͬͯϓϩϞʔγϣϯΛ༗ རʹਐΊΔ͜ͱ͕Մೳ w ྫϑϦϧͷϚςϦΞϧσβΠϯ ରԠʹΑΔϕετΞϓϦ֫ಘ
"OESPJEΤϯδχΞͷ σβΠφʔ͕J04Ά͍6*͔Γఏ Ҋͯ͘͠Δ "OESPJEͬͯͳ͍ Μ͡Όͳ͍
։ൃʹؔΘΔਓΛৗͰ ͏͖ w ձࣾͰิॿ੍͕͋Δͱ͍͍͔Ͱ͢ w J04Ϣʔβʔʹ"OESPJEΛ͢ w "OESPJEϢʔβʔʹJ04Λ͢