Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Shape Up

3c1faf46ed965b7e4f8dd91a7faff117?s=47 kawasita
November 28, 2020

Shape Up

Shape Up という Basecamp社の開発手法に関する個人的なまとめと見解。

3c1faf46ed965b7e4f8dd91a7faff117?s=128

kawasita

November 28, 2020
Tweet

Transcript

  1. Shape Up ͔Θͨ͠ - 10೥Ҏ্ϦϞʔτϫʔΫܦӦ͍ͯ͠Δձࣾͷ։ൃख๏঺հ -

  2. ಈػ ϦϞʔτϫʔΫͰεΫϥϜϕʔεͷ։ൃΛߦͳ͍ͬͯΔ͕ɺ ݸਓతʹ͍·͍ͪͬ͘͠Γ͖ͯͳ͍ɻ ̍ਓͷ࡞ۀ࣌ؒ௕͍͠ɺಉۭؒ͡ʹ͍Δ͜ͱͰิ׬͞ΕΔ৘ใ ͕ɺνʔϜίχϡχέʔγϣϯΛத৺ʹஔ͘εΫϥϜͩͱେࣄ ͳؾ͕͢Δɻ͜ͷล͕ෆ଍͢ΔͭΒΈΛײ͡Δɻ ΋ͬͱɺϦϞʔτϫʔΫʹదͨ͠։ൃϓϩηεͬͯͳ͍͔ ͳʁͦ͏͍͑͹ϦϞʔτϫʔΫͰ௕೥΍ͬͯΔձࣾ͋ͬͨ ͳɻௐ΂ͯΈΔ͔ɻ

  3. Shape Upͱ͸ Shape Up ͸ Basecamp ͱ͍͏ձࣾͰ ࠾༻͞Ε͍ͯΔɹΞδϟΠϧͳ։ൃख๏ɹͰ͢ ͦ΋ͦ΋Basecampࣾͬͯ

  4. Basecampࣾͱ͸ WebΞϓϦέʔγϣϯΛ࡞͍ͬͯΔಠࣗੑͷߴ͍ձࣾ ɾΞϝϦΧͷγΧΰʹຊ͕ࣾ͋Δ30ਓ͘Β͍ͷখ͞ͳձࣾ ɾࣗ෼ͨͪͷಇ͖ํͷϊ΢ϋ΢ΛWeb΍ຊͰൃ৴͍ͯ͠Δ ɾ Ruby on Rails ͱ͍͏༗໊ͳϑϨʔϜϫʔΫΛੜΈग़ͨ͠ খ͞ͳձࣾɺେ͖ͳ࢓ࣄ

    ڧ͍νʔϜ͸ΦϑΟεΛࣺͯΔ 2010/2 ग़൛ 2004೥ͷొ৔ҎޙɺRuby on Railsͷίϯηϓτ ͸ଞͷϑϨʔϜϫʔΫʹ΋େ͖ͳӨڹΛ༩͍͑ͯ Δ 2014/1 ग़൛
  5. ౰વͷΑ͏ʹɺ։ൃϓϩηε΋WebͰެ։͞Εͯ·͢ Ͱ΋ɺͦͷલʹ ͦͯ͠ɺͦͷத਎͸ɺεΫϥϜ΍XPͱ͍ͬͨ
 ϝΠϯετϦʔϜͷΞδϟΠϧ։ൃϓϩηεͱશવҧ͏໘ന͍΋ͷͰͨ͠ Ұൠతͳ։ൃΛྲྀΕΛ͓͞Β͍ Ҿ༻IUUQTCBTFDBNQDPNTIBQFVQ

  6. Α͋͘ΔΞδϟΠϧ։ൃϑϩʔ όοΫϩά ϫΠϠʔ σβΠϯ ࠓճ΍Δ͜ͱ ݟੵ΋Γ ϨϏϡʔ िؒఔ౓ͷ୹͍։ൃαΠΫϧ Կप΋ճ͠׬੒౓ΛߴΊͯϦϦʔε اը10

    ϦϦʔε ։ൃνʔϜ ※εϓϦϯτ΍XPͳͲͰɺࡉ͔͍ख๏ͷࠩ෼͸͋Δͱࢥ͍·͕͢ɺେ·͔ͳྲྀΕͰઆ໌͍ͯ͠·͢
  7. Α͋͘ΔΞδϟΠϧ։ൃϑϩʔ όοΫϩά ϫΠϠʔ σβΠϯ ࠓճ΍Δ͜ͱ ݟੵ΋Γ ϨϏϡʔ िؒఔ౓ͷ୹͍αΠΫϧ Կप΋ճ͠׬੒౓ΛߴΊͯϦϦʔε اը10

    ϦϦʔε ։ൃνʔϜ Ͱ͸Ͳ͏͍ͯ͠Δʁ ˞੺৭෦෼͸໌֬ʹͳ͍ͱنఆ͍ͯ͠Δ΋ͷ
  8. εΩϧͷߴ͍ਓ͕੒Ռ෺ͷେ࿮ΛܾΊΔ ॏཁͳͷ͸ɺ۩ମత͗͢ͳ͍͜ͱ ͍͘ΒϦιʔεΛṌ͚͍͍͔ͯΛܾΊΔ ͲΕ͚͔͔ͩΔʁˠͲΕ͚ͩ࢖͑Δ͔ ͍͔ʹࡉ͔͘νέοτ෼ղ͠Α͏ͱ΋ɺ৽نੑͷߴ͍࡞ۀ΁ͷ ݟੵ΋Γͷਫ਼౓ͷ՝୊͸ͰΔɻ੍࣌ؒ໿ͷΈͰυϥΠϒ͢Δ΄͏͕ τʔλϧͰྑ͍ͱ͍͏ׂΓ੾ͬͨ൑அɻ ͋͑ͯந৅తͳ෦෼Λ࢒͢͜ͱͰɺσβΠφʔ΍։ൃ΁޻෉΍ௐ੔ ͷ༨஍Λ࢒͢ɻ࣮ࡍʹ࡞ۀ͢Δલͷૣ͗͢Δ۩ମԽ͸ɺ ؒҧͬͨࡉ෦΁ͷίϛοτΛੜΈग़ͯ͠͠·͏ɻ

    ϓϩδΣΫτʹԠͨ͡ਓࡐΛຖճॊೈʹ૊Ή ׂΓࠐΈͷͳ͍ͻͱ·ͱ·ΓͷظؒΛ༩͑Δ શ଎ྗͰ͸૸Γଓ͚ΒΕͳ͍ ։ൃऀࡋྔͰ࢖͑Δ࣌ؒɻܰඍͳόάରԠ΍ɺ ϦϑΝΫλͳͲϓϩδΣΫτͷ՝୊ΛফԽͨ͠Γɺ εΩϧΛߴΊͨΓͳͲɻ TIBQJOH CFUUJOH CVJMEJOH ̒िؒͰඞͣϦϦʔε ̎िؒͷٳଉ
  9. ·ͱΊ Shape Up ͸ ΞδϟΠϧͷຊ࣭Λମݱͨ͠։ൃख๏ ࣗ෼ͨͪͰߟ͑ɺࣗ෼ͨͪͰϓϩηεΛ࠷దԽ͍ͯ͘͠ Ҿ༻: ΞδϟΠϧϚχϑΣετ (ݪଇ)ΑΓ νʔϜ͕΋ͬͱޮ཰ΛߴΊΔ͜ͱ͕Ͱ͖Δ͔ΛৼΓฦΓɺ

    ͦΕʹج͍ͮͯࣗ෼ͨͪͷ΍ΓํΛ࠷దʹௐ੔͠·͢ɻ ։ൃϓϩηεʹ͸ɺ૊৫ͷจԽ͕൓ө͞Ε͍ͯΔ ͜ͷ࢟੎͸ݟश͏΂͖఺͕ଟ͍
  10. ࠓճͷൃදͰ͋·Γ৮ΕΒΕͳ͔ͬͨ෦෼ 4IBQJOH #FUUJOH #VJMEJOH ݸਓతݟղ 1SPT$POT XFFLXFFLͷཧ༝ͳͲ ֻ͚ςʔϒϧͷத਎ ͳͥɺ͋͑ͯ۩ମԽ͠ͳ͍͔ νʔϜͱϚωδϝϯτͳͲ

    Ͳ͜ʹྑ͞Λײ͡Δ͔ɺͲ͕͜ؾʹͳΔ͔ ਺஋ݟੵ΋Γ͠ͳ͍ख๏ όοΫϩάΛ࣋ͨͳ͍ͳͲ ώϧνϟʔτͷ׆༻ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 4IBQJOHͷ࣮ྫͳͲ
  11. ͓·͚

  12. <4IBQJOH>ͦͷத਎ ٕज़తͳௐࠪ΍ɺσβΠϯͷେ࿮ɺԿΛ࡞Δ͔͸໌֬ ͋͑ͯந৅తʹ͢Δ ϥϑεέονͰΞ΢τϓοτ Ҿ༻IUUQTCBTFDBNQDPNTIBQFVQDIBQUFSDBTFTUVEZUIFEPUHSJEDBMFOEBS ૣ͗͢Δ۩ମԽɾ࠷దԽ͸ؒҧͬͨࡉ෦΁ͷίϛοτΛ༗Ή ̒िؒͷ੍໿ͷதͰίετ΋τϨʔυΦϑʹ͔͚ͯࡉ෦۩ମԽ͢Δ ૑଄ੑ΍ௐ੔ͷ༨஍Λ࢒ͨ͢Ίʹ΋۩ମత͗͢ͳ͍͜ͱ

  13. Ṍ͚ͷςʔϒϧ Ϋʔϧμ΢ϯͰ։࠵ɻ࣍̒िؒͰԿΛ΍Δ͔ͱϦιʔεͷׂΓ౰ͯɻ όοΫϩά͸ͳ͍ɻ٫Լ͞Εͯ΋େࣄͳ΋ͷ͸ຊਓ͕͓֮͑ͯ͘ɻ <#FUUJOH>ͦͷத਎ $&0 $50 ্ڃٕज़ऀ ੡඼ετϥςδετ͕੮ʹͭ͘ ˞࣍ͷṌ͚ͷ৔ʹ࠶౓ग़͢ͷ͸ຊਓͷ؅ཧɻ௕͗͢ΔόοΫϩά͸ऴΘΒͳ͍͠શһͰ੔ཧ͢Δ࣌ ؒ΋ແବͳ͚ͩɻຖճɺਅͬ৽ͳςʔϒϧͰԿΛ΍Δ΂͖͔Λ࿩͢ɻ

    ˞࠷ߴݖྗ͕͋Δਓ͕ࢀՃ͢ΔͷͰҙࢥܾఆ͕̍ճͰܾ·Δɻผ࡞ۀͷׂΓࠐΈ΋ͳ͍ɻਓ Ϧιʔεͷ૪ୣઓ΋ͳ͍ɻܦӦଆ͸௚઀ϋϯυϧΛѲ͍ͬͯΔײ֮ΛಘΔ͜ͱ͕Ͱ͖Δɻ Ṍ͚ͱ͸໿ଋɻϦϦʔεͷ੹຿ʹׂΓࠐΈͷͳ͍िؒΛඞͣ༩͑Δɻ ˞೔͚ͩผ࡞ۀͳͲ͸͠ͳ͍ɻͦΕͰ೔Ҏ্ͷϚΠφε͕ͰΔͷΛཧղ͍ͯ͠Δ͔Β िؒ͸αʔΩοτϒϨʔΧʔͱͯ͠࢖͏ɻ ˞िؒͷՁ஋͔͠ͳ͍৔߹͸̒ि͔ؒ͠࢖Θͳ͍ɻԆ௕͸جຊ͠ͳ͍ɻͰ͖ͳ͍৔߹͸ࢭΊΔɻ ˞͜ͷ৔߹ɺ4IBQJOHͰؒҧ͍ͬͯΔՄೳੑ͕͋ΔͷͰɺ͔ͦ͜Βݟ௚͢
  14. Կ౓΋΍ͬͨ࡞ۀʹରͯ͠͸֬౓ߴ͘༗ޮɺҰํɺ৽نͷ࡞ۀͷ࣌ؒ͸೔͔΋͠Εͳ͍ɻ <#FUUJOH>ݟੵ΋Γ ࣮ࡍ͸ʮ෼͔Βͳ͍ʯ͕ਖ਼͍͕͠ݴ͑ͳ͍ͷͰɺ਺஋Խͯ͠ܭըʹ৫ΓࠐΈܭը͕ڰ͏ɻ ݟੵ΋Γ਺஋͸ର৅ʹΑͬͯҙຯ߹͍Λม͑ͯ͠·͏ ݟੵ΋Γͷଊ͑ํΛม͑Δ ਺஋Ͱ͸ͳ͘ώϧνϟʔτʹΑΔࢹ֮؅ཧ ࡞ۀ͸ٰΛొΔΑ͏ͳ΋ͷɻٰͷ௖্ʹཱͯ͹શ๴͕ݟ͑ͯ͋Δఔ౓Θ͔Δɻ Ҿ༻IUUQTCBTFDBNQDPNTIBQFVQDIBQUFS ֤ػೳʹ͖ͭɺࠓͲͷҐஔʹ͍Δ͔Λ਺஋Ͱ͸ͳ͘ഽײͷఆظϓϩοτͰࢹ֮Խ͢Δɻ ͳ͔ͳٰ͔ͷ௖্ʹཱͯͳ͍৔߹ɺγεςϜ௨஌͢ΔΑ͏ʹͯ͠ةػ؅ཧ͍ͯ͠Δɻ

    Ψϯτνϟʔτ΍ϚΠϧετʔϯमਖ਼ΛԿ౓΋܁Γฦ͍ͯͨ͠Βͦ͏͍͏͜ͱɻ ʮ͋ͱͲΕ͘Β͍͔͔ΔʁʯͰ͸ͳͯ͘ɺ͜ͷํ͕౴͑΍ِ͘͢Γ͕গͳ͍ɻ
  15. ݟ͔͚ͷ਺஋ਐḿΛՔ͕ͳ͍ɻ࠷΋೔ৗత ೺ѲࡁΈ ͰؾʹͳΒͳ͍΋ͷ͸࠷ޙʹճ͢ɻ <#FUUJOH>ݟੵ΋Γ ॏཁͷ΋ͷͷ͏ͪɺ࠷ॳʹະ஌ͷ΋ͷΛٰͷ௖্·Ͱ͍࣋ͬͯ͘͜ͱ ॏཁͰະ஌ͷ໰୊͔Βઌʹย෇͚Δ͜ͱ ੍໿ͷதͰ#FTUͳҊΛܾఆ͢Δ σβΠφʔͱΤϯδχΞ͸࠷ળΛ໨ࢦ͢ɻࡉ͔͍νέοτͰݟੵ΋ΓΛ਺஋Խ͢Δ ͱɺͦͷ਺஋Λݶք·Ͱ࢖ͬͯϚΫϩʹίʔυΛඒ͘͠׬ᘳʹͨ͠ΓσβΠϯ׬੒౓ ʹৼΓ͕ͪɻ

    ˞ࢲ͸ݕࡧػೳ͚ͩແବʹϦονʹͨ͠ܦݧ͕͋Δɻɻ ̒िؒͱ͍͏େ͖ͳࡋྔΛ͍͋ͨ͑ͯΔͷ΋ͦͷͨΊɻͦͷେ͖ͳࢹ࠲ͱ੍໿ͷத ͰɺτϨʔυΦϑΛਤΓͭͭɺಛఆͷػೳʹͲ͜·ͰίετΛ͔͚Δ͔Λ࡞ۀऀࣗ਎ ͕ܾΊΔɻ ωδΛకΊ௚͢λΠϛϯά ະ஌ͷ΋ͷ͕શٰͯͷ௖্෇ۙʹདྷͨΒɺωδΛకΊ௚͢ ظݶ͸̒िؒͰݻఆͳͷͰඞཁػೳΛऔࣺબ୒ɺݟੵΓ֬౓ߴ͘ௐ੔Ͱ͖Δɻ
  16. ஌Βͳ͍ ஌ͬͯΔ Ͳ͏΍ͬͯ΍Δͷʁ Կ΍Δͷʁ λεΫશମͷ૾͕ݟ͑Δ ͻͨ͢Β࡞ۀΛফԽத <ิ଍>ώϧνϟʔτ ݟੵ΋Γ֬౓  

  17. కΊ੾Γ͕ϦΞϧͳͷͰ࣌ؒΛݡ͘࢖͏ ࣮ઓͷ݁ՌׂΓग़ͨ͠ҙຯͷ͋Δ΋ͷΛ࡞Γ্͛Δͷ࠷దͳ௕͞ ੒Ռ෺ͷํΛिؒʹϦϦʔεͰ͖ΔαΠζʹௐ੔͢Δ िؒ िؒຖͷεϓϦϯτΛ࠾༻͠ͳ͍ཧ༝ ୹͗ͯ͢ҙຯ͕͋ΔࣄΛ੒͠਱͛ΒΕͳ͔ͬͨ िؒʹճ͸ܭըͷΦʔόʔϔουίετ͕େ͖͗͢Δ िؒͷΫʔϧμ΢ϯΛ࠾༻ͨ͠ཧ༝ αΠΫϧऴ൫͸ଟ๩ͳͷͰɺ࣍ͷܭըΛ࿩͢༨༟͕ͳ͍ ࣗ෼ͨͪͷΞΠσΟΞΛࢼͨ͠ΓόάରԠ͢Δ࣌ؒͱͯ͠׆༻

    <#VJMEJOH>XFFLXFFLϑϩʔ αΠΫϧͷඪ४Խࣗମ͸ඞཁ ϦιʔεΧϨϯμʔςτϦε͸αΠΫϧඪ४ԽͰۃྗճආ ଉΛ͢Δ༨༟Λ༩͑Δ ϑϩʔʹ༧Ί૊ΈࠐΉ ࡞ۀʹۃྗ࣌ؒΛ࢖͍͍ͨ ۩ମԽ͗͢͠ͳ͍4IBQF͸ௐ੔ʹ༗ޮ
  18. <#VJMEJOH>νʔϜͱϚωδϝϯτ ɾϚΠΫϩϚωδϝϯτ͸͠ͳ͍ɻ ɾ೔ʑͷձٞ͸ͤͣɺݸผͷػೳʹԿ࣌ؒ࢖͏͔؅ཧ͠ͳ͍ɻ ɾηϧϑϚωδϝϯτ͕جຊɻߴ͍ͱ͜Ζʹ໨ඪΛஔ͘ɻ ɾϓϩάϥϚσβΠφʔͷ਺ਓ͔ΒͳΔεϞʔϧνʔϜ͕ओମ ɾνʔϜ͸ϦϦʔε੹೚Λෛ͍ɺػೳείʔϓΛࣗΒఆΊΔɻ ɾϚωʔδϟ͕λεΫΛ੾ΓࠁΈɺϝϯόʔ͕νέοτ܎ ͱͯ͠ৼΔ෣͏ํ๏ͱ͸׬શʹҟͳΔɻ ߏ੒ͱ໾ׂ Ϛωδϝϯτ

    جຊϦϞʔτ૊৫ͳͷͰͰ͖ͳ͍ʁ ɾ؅ཧʹ࢖͏࣌ؒΛۃྗݮΒ͠ɺΑΓࣗ཯తͳ૊৫΁ɻ ਓʹ࢓ࣄΛৼΔ͚ͩͷਓ͸ෆཁɺօ͕Կ͔ΛੜΈग़͢͜ͱɻ݁ՌΛͩ͢͜ͱɻ
  19. ݸਓతݟղ ɾΤϯδχΞࢹ఺ͰݟΔͱٻΊΒΕΔϋʔυϧ͸݁ߏߴ͍ ɾຖճνʔϜ͕มΘΔͷ͸ύϑΥʔϚϯεؾʹͳΔ ɾηϧϑϚωδϝϯτͰ͖ͳ͍ͱͭΒ͍ ɾׂΓࠐΈͷͳ͍࣌ؒΛ࢖͑Δͷ͸࡞ۀʹूதͰ͖Δ ɾࡋྔͷ෯͕େ͖͘ձࣾશମͷࣗݾ૊৫Խ͕ਐΈͦ͏ ɾϝϦϋϦ͕͋Δͷ͸ݸਓతʹ͸޷͖ ྑ͍ͱײͨ͡఺ ؾʹͳͬͨ఺ ɾن໛͕େ͖͍૊৫ʹͲ͜·ͰదԠͰ͖Δ͔͸ٙ໰

    ɾϚωδϝϯτίετ͸Լ͕Γͦ͏ ͏·͘ػೳ͢Ε͹ ɾόοΫϩάΛগͳ͘؅ཧ͢Δͷ͸ྑ͍ ˞࣮ࡍʹಋೖ্ͨ͠ͰͷݟղͰ͸͋Γ·ͤΜɻ͋͘·Ͱײ૝ɻ