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
Designer's and Engineer's Thinking Styles
ninjinkun
0
78
Launchable Webinar テストを効率化して生産性を上げる方法
ninjinkun
2
480
ディープリンクの 設計と実装 - iOSDC2017
ninjinkun
18
9.5k
ReSwiftでアプリの状態管理 / Reactive Swift Meetup
ninjinkun
9
16k
フリルのアプリ開発今昔物語
ninjinkun
3
2.1k
プロトタイピング合宿によるデザインリニューアル
ninjinkun
1
2.9k
デザイナーが仕事をしやすいアプリエンジニアを考える
ninjinkun
4
600
Elevationで影が思ったように出ないとき
ninjinkun
4
12k
Square Fragmentやめるってよ
ninjinkun
13
3.4k
Other Decks in Programming
See All in Programming
PHPコードの実行モデルを理解する / Understanding-the-PHP-Execution-Model
shin1x1
0
1.1k
GitLab CI/CD で C#/WPFアプリケーションのテストとインストーラーのビルド・デプロイを自動化する
hacarus
0
620
TypeScriptコードの漸進的改善 / Progressive Improvement of TypeScript Code
medley
1
460
TypeScript Custom GitHub Action Development Tips
peaceiris
5
840
JavaScript Closure
asoluka
0
2k
Enjoy Creative Coding with Ruby (RubyKaigi2024)
chobishiba
0
960
The test code generator using static analysis and LLM
mikik0
1
270
[RubyKaigi 2024] Ruby Mixology 101: adding shots of PHP, Elixir, and more
palkan
0
140
Criando a Woovi em uma semana
daniloab
0
120
slow types ってなんだろう?
karad
0
210
スタックトレース始めてみた
kuro_kurorrr
5
1.2k
『WordPressコミュニティで学ぶ』OSS貢献の多様性
ippey
0
290
Featured
See All Featured
Side Projects
sachag
451
41k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
The Pragmatic Product Professional
lauravandoore
26
5.9k
A Philosophy of Restraint
colly
197
16k
Web Components: a chance to create the future
zenorocha
306
41k
The Brand Is Dead. Long Live the Brand.
mthomps
49
31k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
34
6.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
123
39k
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Λ͢