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
Shape Up
Search
kawasita
November 28, 2020
Research
1
320
Shape Up
Shape Up という Basecamp社の開発手法に関する個人的なまとめと見解。
kawasita
November 28, 2020
Tweet
Share
Other Decks in Research
See All in Research
EBPMにおける生成AI活用について
daimoriwaki
0
180
言語と数理の交差点:テキストの埋め込みと構造のモデル化 (IBIS 2024 チュートリアル)
yukiar
3
740
3次元点群の分類における評価指標について
kentaitakura
0
430
Large Vision Language Model (LVLM) に関する最新知見まとめ (Part 1)
onely7
21
3.5k
[CV勉強会@関東 CVPR2024] Visual Layout Composer: Image-Vector Dual Diffusion Model for Design Layout Generation / kantocv 61th CVPR 2024
shunk031
1
460
Introducing Research Units of Matsuo-Iwasawa Laboratory
matsuolab
0
920
Weekly AI Agents News! 8月号 論文のアーカイブ
masatoto
1
180
授業評価アンケートのテキストマイニング
langstat
1
360
MIRU2024チュートリアル「様々なセンサやモダリティを用いたシーン状態推定」
miso2024
4
2.2k
クラウドソーシングによる学習データ作成と品質管理(セキュリティキャンプ2024全国大会D2講義資料)
takumi1001
0
290
第 2 部 11 章「大規模言語モデルの研究開発から実運用に向けて」に向けて / MLOps Book Chapter 11
upura
0
390
情報処理学会関西支部2024年度定期講演会「自然言語処理と大規模言語モデルの基礎」
ksudoh
6
810
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
43
13k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
4 Signs Your Business is Dying
shpigford
180
21k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Designing the Hi-DPI Web
ddemaree
280
34k
Teambox: Starting and Learning
jrom
133
8.8k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Happy Clients
brianwarren
98
6.7k
Designing for Performance
lara
604
68k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
Shape Up ͔Θͨ͠ - 10Ҏ্ϦϞʔτϫʔΫܦӦ͍ͯ͠Δձࣾͷ։ൃख๏հ -
ಈػ ϦϞʔτϫʔΫͰεΫϥϜϕʔεͷ։ൃΛߦͳ͍ͬͯΔ͕ɺ ݸਓతʹ͍·͍ͪͬ͘͠Γ͖ͯͳ͍ɻ ̍ਓͷ࡞ۀ͍࣌ؒ͠ɺಉۭؒ͡ʹ͍Δ͜ͱͰิ͞ΕΔใ ͕ɺνʔϜίχϡχέʔγϣϯΛத৺ʹஔ͘εΫϥϜͩͱେࣄ ͳؾ͕͢Δɻ͜ͷล͕ෆ͢ΔͭΒΈΛײ͡Δɻ ͬͱɺϦϞʔτϫʔΫʹదͨ͠։ൃϓϩηεͬͯͳ͍͔ ͳʁͦ͏͍͑ϦϞʔτϫʔΫͰͬͯΔձࣾ͋ͬͨ ͳɻௐͯΈΔ͔ɻ
Shape Upͱ Shape Up Basecamp ͱ͍͏ձࣾͰ ࠾༻͞Ε͍ͯΔɹΞδϟΠϧͳ։ൃख๏ɹͰ͢ ͦͦBasecampࣾͬͯ
Basecampࣾͱ WebΞϓϦέʔγϣϯΛ࡞͍ͬͯΔಠࣗੑͷߴ͍ձࣾ ɾΞϝϦΧͷγΧΰʹຊ͕ࣾ͋Δ30ਓ͘Β͍ͷখ͞ͳձࣾ ɾࣗͨͪͷಇ͖ํͷϊϋΛWebຊͰൃ৴͍ͯ͠Δ ɾ Ruby on Rails ͱ͍͏༗໊ͳϑϨʔϜϫʔΫΛੜΈग़ͨ͠ খ͞ͳձࣾɺେ͖ͳࣄ
ڧ͍νʔϜΦϑΟεΛࣺͯΔ 2010/2 ग़൛ 2004ͷొҎޙɺRuby on Railsͷίϯηϓτ ଞͷϑϨʔϜϫʔΫʹେ͖ͳӨڹΛ༩͍͑ͯ Δ 2014/1 ग़൛
વͷΑ͏ʹɺ։ൃϓϩηεWebͰެ։͞Εͯ·͢ Ͱɺͦͷલʹ ͦͯ͠ɺͦͷதɺεΫϥϜXPͱ͍ͬͨ ϝΠϯετϦʔϜͷΞδϟΠϧ։ൃϓϩηεͱશવҧ͏໘ന͍ͷͰͨ͠ Ұൠతͳ։ൃΛྲྀΕΛ͓͞Β͍ Ҿ༻IUUQTCBTFDBNQDPNTIBQFVQ
Α͋͘ΔΞδϟΠϧ։ൃϑϩʔ όοΫϩά ϫΠϠʔ σβΠϯ ࠓճΔ͜ͱ ݟੵΓ ϨϏϡʔ िؒఔͷ͍։ൃαΠΫϧ Կपճ͠ΛߴΊͯϦϦʔε اը10
ϦϦʔε ։ൃνʔϜ ※εϓϦϯτXPͳͲͰɺࡉ͔͍ख๏ͷࠩ͋Δͱࢥ͍·͕͢ɺେ·͔ͳྲྀΕͰઆ໌͍ͯ͠·͢
Α͋͘ΔΞδϟΠϧ։ൃϑϩʔ όοΫϩά ϫΠϠʔ σβΠϯ ࠓճΔ͜ͱ ݟੵΓ ϨϏϡʔ िؒఔͷ͍αΠΫϧ Կपճ͠ΛߴΊͯϦϦʔε اը10
ϦϦʔε ։ൃνʔϜ ͰͲ͏͍ͯ͠Δʁ ˞৭෦໌֬ʹͳ͍ͱنఆ͍ͯ͠Δͷ
εΩϧͷߴ͍ਓ͕ՌͷେΛܾΊΔ ॏཁͳͷɺ۩ମత͗͢ͳ͍͜ͱ ͍͘ΒϦιʔεΛṌ͚͍͍͔ͯΛܾΊΔ ͲΕ͚͔͔ͩΔʁˠͲΕ͚ͩ͑Δ͔ ͍͔ʹࡉ͔͘νέοτղ͠Α͏ͱɺ৽نੑͷߴ͍࡞ۀͷ ݟੵΓͷਫ਼ͷ՝ͰΔɻ੍࣌ؒͷΈͰυϥΠϒ͢Δ΄͏͕ τʔλϧͰྑ͍ͱ͍͏ׂΓͬͨஅɻ ͋͑ͯநతͳ෦Λ͢͜ͱͰɺσβΠφʔ։ൃௐ ͷ༨Λ͢ɻ࣮ࡍʹ࡞ۀ͢Δલͷૣ͗͢Δ۩ମԽɺ ؒҧͬͨࡉ෦ͷίϛοτΛੜΈग़ͯ͠͠·͏ɻ
ϓϩδΣΫτʹԠͨ͡ਓࡐΛຖճॊೈʹΉ ׂΓࠐΈͷͳ͍ͻͱ·ͱ·ΓͷظؒΛ༩͑Δ શྗͰΓଓ͚ΒΕͳ͍ ։ൃऀࡋྔͰ͑Δ࣌ؒɻܰඍͳόάରԠɺ ϦϑΝΫλͳͲϓϩδΣΫτͷ՝ΛফԽͨ͠Γɺ εΩϧΛߴΊͨΓͳͲɻ TIBQJOH CFUUJOH CVJMEJOH ̒िؒͰඞͣϦϦʔε ̎िؒͷٳଉ
·ͱΊ Shape Up ΞδϟΠϧͷຊ࣭Λମݱͨ͠։ൃख๏ ࣗͨͪͰߟ͑ɺࣗͨͪͰϓϩηεΛ࠷దԽ͍ͯ͘͠ Ҿ༻: ΞδϟΠϧϚχϑΣετ (ݪଇ)ΑΓ νʔϜ͕ͬͱޮΛߴΊΔ͜ͱ͕Ͱ͖Δ͔ΛৼΓฦΓɺ
ͦΕʹج͍ͮͯࣗͨͪͷΓํΛ࠷దʹௐ͠·͢ɻ ։ൃϓϩηεʹɺ৫ͷจԽ͕ө͞Ε͍ͯΔ ͜ͷ࢟ݟश͏͖͕ଟ͍
ࠓճͷൃදͰ͋·Γ৮ΕΒΕͳ͔ͬͨ෦ 4IBQJOH #FUUJOH #VJMEJOH ݸਓతݟղ 1SPT$POT XFFLXFFLͷཧ༝ͳͲ ֻ͚ςʔϒϧͷத ͳͥɺ͋͑ͯ۩ମԽ͠ͳ͍͔ νʔϜͱϚωδϝϯτͳͲ
Ͳ͜ʹྑ͞Λײ͡Δ͔ɺͲ͕͜ؾʹͳΔ͔ ݟੵΓ͠ͳ͍ख๏ όοΫϩάΛ࣋ͨͳ͍ͳͲ ώϧνϟʔτͷ׆༻ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 4IBQJOHͷ࣮ྫͳͲ
͓·͚
<4IBQJOH>ͦͷத ٕज़తͳௐࠪɺσβΠϯͷେɺԿΛ࡞Δ͔໌֬ ͋͑ͯநతʹ͢Δ ϥϑεέονͰΞτϓοτ Ҿ༻IUUQTCBTFDBNQDPNTIBQFVQDIBQUFSDBTFTUVEZUIFEPUHSJEDBMFOEBS ૣ͗͢Δ۩ମԽɾ࠷దԽؒҧͬͨࡉ෦ͷίϛοτΛ༗Ή ̒िؒͷ੍ͷதͰίεττϨʔυΦϑʹ͔͚ͯࡉ෦۩ମԽ͢Δ ੑௐͷ༨Λͨ͢Ίʹ۩ମత͗͢ͳ͍͜ͱ
Ṍ͚ͷςʔϒϧ ΫʔϧμϯͰ։࠵ɻ࣍̒िؒͰԿΛΔ͔ͱϦιʔεͷׂΓͯɻ όοΫϩάͳ͍ɻ٫Լ͞Εͯେࣄͳͷຊਓ͕͓֮͑ͯ͘ɻ <#FUUJOH>ͦͷத $&0 $50 ্ڃٕज़ऀ ετϥςδετ͕੮ʹͭ͘ ˞࣍ͷṌ͚ͷʹ࠶ग़͢ͷຊਓͷཧɻ͗͢ΔόοΫϩάऴΘΒͳ͍͠શһͰཧ͢Δ࣌ ؒແବͳ͚ͩɻຖճɺਅͬ৽ͳςʔϒϧͰԿΛΔ͖͔Λ͢ɻ
˞࠷ߴݖྗ͕͋Δਓ͕ࢀՃ͢ΔͷͰҙࢥܾఆ͕̍ճͰܾ·Δɻผ࡞ۀͷׂΓࠐΈͳ͍ɻਓ Ϧιʔεͷ૪ୣઓͳ͍ɻܦӦଆϋϯυϧΛѲ͍ͬͯΔײ֮ΛಘΔ͜ͱ͕Ͱ͖Δɻ Ṍ͚ͱଋɻϦϦʔεͷʹׂΓࠐΈͷͳ͍िؒΛඞͣ༩͑Δɻ ˞͚ͩผ࡞ۀͳͲ͠ͳ͍ɻͦΕͰҎ্ͷϚΠφε͕ͰΔͷΛཧղ͍ͯ͠Δ͔Β िؒαʔΩοτϒϨʔΧʔͱͯ͠͏ɻ ˞िؒͷՁ͔͠ͳ͍߹̒ि͔ؒ͠Θͳ͍ɻԆجຊ͠ͳ͍ɻͰ͖ͳ͍߹ࢭΊΔɻ ˞͜ͷ߹ɺ4IBQJOHͰؒҧ͍ͬͯΔՄೳੑ͕͋ΔͷͰɺ͔ͦ͜Βݟ͢
Կͬͨ࡞ۀʹରͯ֬͠ߴ͘༗ޮɺҰํɺ৽نͷ࡞ۀͷ͔࣌ؒ͠Εͳ͍ɻ <#FUUJOH>ݟੵΓ ࣮ࡍʮ͔Βͳ͍ʯ͕ਖ਼͍͕͠ݴ͑ͳ͍ͷͰɺԽͯ͠ܭըʹ৫ΓࠐΈܭը͕ڰ͏ɻ ݟੵΓରʹΑͬͯҙຯ߹͍Λม͑ͯ͠·͏ ݟੵΓͷଊ͑ํΛม͑Δ Ͱͳ͘ώϧνϟʔτʹΑΔࢹ֮ཧ ࡞ۀٰΛొΔΑ͏ͳͷɻٰͷ্ʹཱͯશ͕ݟ͑ͯ͋ΔఔΘ͔Δɻ Ҿ༻IUUQTCBTFDBNQDPNTIBQFVQDIBQUFS ֤ػೳʹ͖ͭɺࠓͲͷҐஔʹ͍Δ͔ΛͰͳ͘ഽײͷఆظϓϩοτͰࢹ֮Խ͢Δɻ ͳ͔ͳٰ͔ͷ্ʹཱͯͳ͍߹ɺγεςϜ௨͢ΔΑ͏ʹͯ͠ةػཧ͍ͯ͠Δɻ
ΨϯτνϟʔτϚΠϧετʔϯमਖ਼ΛԿ܁Γฦ͍ͯͨ͠Βͦ͏͍͏͜ͱɻ ʮ͋ͱͲΕ͘Β͍͔͔ΔʁʯͰͳͯ͘ɺ͜ͷํِ͕͑͘͢Γ͕গͳ͍ɻ
ݟ͔͚ͷਐḿΛՔ͕ͳ͍ɻ࠷ৗత ѲࡁΈ ͰؾʹͳΒͳ͍ͷ࠷ޙʹճ͢ɻ <#FUUJOH>ݟੵΓ ॏཁͷͷͷ͏ͪɺ࠷ॳʹະͷͷΛٰͷ্·Ͱ͍࣋ͬͯ͘͜ͱ ॏཁͰະͷ͔Βઌʹย͚Δ͜ͱ ੍ͷதͰ#FTUͳҊΛܾఆ͢Δ σβΠφʔͱΤϯδχΞ࠷ળΛࢦ͢ɻࡉ͔͍νέοτͰݟੵΓΛԽ͢Δ ͱɺͦͷΛݶք·ͰͬͯϚΫϩʹίʔυΛඒ͘͠ᘳʹͨ͠ΓσβΠϯ ʹৼΓ͕ͪɻ
˞ࢲݕࡧػೳ͚ͩແବʹϦονʹͨ͠ܦݧ͕͋Δɻɻ ̒िؒͱ͍͏େ͖ͳࡋྔΛ͍͋ͨ͑ͯΔͷͦͷͨΊɻͦͷେ͖ͳࢹ࠲ͱ੍ͷத ͰɺτϨʔυΦϑΛਤΓͭͭɺಛఆͷػೳʹͲ͜·ͰίετΛ͔͚Δ͔Λ࡞ۀऀࣗ ͕ܾΊΔɻ ωδΛకΊ͢λΠϛϯά ະͷͷ͕શٰͯͷ্ۙʹདྷͨΒɺωδΛకΊ͢ ظݶ̒िؒͰݻఆͳͷͰඞཁػೳΛऔࣺબɺݟੵΓ֬ߴ͘ௐͰ͖Δɻ
Βͳ͍ ͬͯΔ Ͳ͏ͬͯΔͷʁ ԿΔͷʁ λεΫશମͷ૾͕ݟ͑Δ ͻͨ͢Β࡞ۀΛফԽத <ิ>ώϧνϟʔτ ݟੵΓ֬
కΊΓ͕ϦΞϧͳͷͰ࣌ؒΛݡ͘͏ ࣮ઓͷ݁ՌׂΓग़ͨ͠ҙຯͷ͋ΔͷΛ࡞Γ্͛Δͷ࠷దͳ͞ ՌͷํΛिؒʹϦϦʔεͰ͖ΔαΠζʹௐ͢Δ िؒ िؒຖͷεϓϦϯτΛ࠾༻͠ͳ͍ཧ༝ ͗ͯ͢ҙຯ͕͋ΔࣄΛ͛͠ΒΕͳ͔ͬͨ िؒʹճܭըͷΦʔόʔϔουίετ͕େ͖͗͢Δ िؒͷΫʔϧμϯΛ࠾༻ͨ͠ཧ༝ αΠΫϧऴ൫ଟͳͷͰɺ࣍ͷܭըΛ͢༨༟͕ͳ͍ ࣗͨͪͷΞΠσΟΞΛࢼͨ͠ΓόάରԠ͢Δ࣌ؒͱͯ͠׆༻
<#VJMEJOH>XFFLXFFLϑϩʔ αΠΫϧͷඪ४Խࣗମඞཁ ϦιʔεΧϨϯμʔςτϦεαΠΫϧඪ४ԽͰۃྗճආ ଉΛ͢Δ༨༟Λ༩͑Δ ϑϩʔʹ༧ΊΈࠐΉ ࡞ۀʹۃྗ࣌ؒΛ͍͍ͨ ۩ମԽ͗͢͠ͳ͍4IBQFௐʹ༗ޮ
<#VJMEJOH>νʔϜͱϚωδϝϯτ ɾϚΠΫϩϚωδϝϯτ͠ͳ͍ɻ ɾʑͷձٞͤͣɺݸผͷػೳʹԿ࣌ؒ͏͔ཧ͠ͳ͍ɻ ɾηϧϑϚωδϝϯτ͕جຊɻߴ͍ͱ͜ΖʹඪΛஔ͘ɻ ɾϓϩάϥϚσβΠφʔͷਓ͔ΒͳΔεϞʔϧνʔϜ͕ओମ ɾνʔϜϦϦʔεΛෛ͍ɺػೳείʔϓΛࣗΒఆΊΔɻ ɾϚωʔδϟ͕λεΫΛΓࠁΈɺϝϯόʔ͕νέοτ ͱͯ͠ৼΔ͏ํ๏ͱશʹҟͳΔɻ ߏͱׂ Ϛωδϝϯτ
جຊϦϞʔτ৫ͳͷͰͰ͖ͳ͍ʁ ɾཧʹ͏࣌ؒΛۃྗݮΒ͠ɺΑΓࣗతͳ৫ɻ ਓʹࣄΛৼΔ͚ͩͷਓෆཁɺօ͕Կ͔ΛੜΈग़͢͜ͱɻ݁ՌΛͩ͢͜ͱɻ
ݸਓతݟղ ɾΤϯδχΞࢹͰݟΔͱٻΊΒΕΔϋʔυϧ݁ߏߴ͍ ɾຖճνʔϜ͕มΘΔͷύϑΥʔϚϯεؾʹͳΔ ɾηϧϑϚωδϝϯτͰ͖ͳ͍ͱͭΒ͍ ɾׂΓࠐΈͷͳ͍࣌ؒΛ͑Δͷ࡞ۀʹूதͰ͖Δ ɾࡋྔͷ෯͕େ͖͘ձࣾશମͷࣗݾ৫Խ͕ਐΈͦ͏ ɾϝϦϋϦ͕͋Δͷݸਓతʹ͖ ྑ͍ͱײͨ͡ ؾʹͳͬͨ ɾن͕େ͖͍৫ʹͲ͜·ͰదԠͰ͖Δ͔ٙ
ɾϚωδϝϯτίετԼ͕Γͦ͏ ͏·͘ػೳ͢Ε ɾόοΫϩάΛগͳ͘ཧ͢Δͷྑ͍ ˞࣮ࡍʹಋೖ্ͨ͠ͰͷݟղͰ͋Γ·ͤΜɻ͋͘·Ͱײɻ