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

チームによるいきいきとしたソフトウェア開発/an-alive-team-grows-software

 チームによるいきいきとしたソフトウェア開発/an-alive-team-grows-software

https://pepabo.connpass.com/event/74938/ #師弟登壇2018 での発表資料です。OJTというか、新卒を受け入れたチームにおいて大事にしている中身を紹介しました。

MOROHASHI Kyosuke

January 21, 2018
Tweet

More Decks by MOROHASHI Kyosuke

Other Decks in Programming

Transcript

  1. νʔϜʹΑΔ
    ͍͖͍͖ͱͨ͠ιϑτ΢ΣΞ։ൃ
    ࢣఋొஃ2018 ʲएखΤϯδχΞͷू͍ʳ
    2018-01-21
    ॾڮګհ @moro

    View Slide

  2. ‣ (ࣸਅ)
    ղফͰ͖ͨෆ҆

    View Slide


  3. Kyosuke MOROHASHI
    moro moro

    View Slide


  4. Kyosuke MOROHASHI
    https://speakerdeck.com/moro/

    View Slide

  5. View Slide

  6. View Slide


  7. http://techlife.cookpad.com/entry/2017/04/06/172601

    View Slide

  8. νʔϜʹΑΔ
    ͍͖͍͖ͱͨ͠
    ιϑτ΢ΣΞ։ൃ

    View Slide

  9. ‣ ར༻ऀʹՁ஋Λಧ͚ΔͨΊʹɺԿΒ͔ͷιϑτ΢ΣΞΛഔ
    հͱͯ͠։ൃ͢Δ׆ಈશൠΛ
    ‣ 1ΤϯδχΞͱ͍͏֯౓͔ΒோΊͨදݱͰ͢ɻ
    ‣ ͳͷͰɺαʔϏε։ൃɺࣄۀ։ൃɺetc… Ͱ΋͍͍͔΋
    ‣ ͬ͘͠ΓདྷΔ֯౓ʹಡΈସ͓͑ͯฉ͖͍ͩ͘͞
    ιϑτ΢ΣΞ։ൃ

    View Slide

  10. ‣ ར༻ऀʹՁ஋Λಧ͚ΔഔհͨΔʹ͸ɺϓϩάϥϜΛॻͩ͘
    ͚Ͱ͸଍Γͳ͍ɻҎԼͷΑ͏ͳશମ͕ඞཁ:
    ‣ αΠτػೳ΍αʔϏεࢪࡦΛྑ͘͢Δ؍఺ͱ͔
    ‣ ར༻ऀͷࠔΓ͝ͱʹدΓఴ͏؍఺ͱ͔
    ‣ ։ൃͦΕࣗମΛޮ཰తʹ͢Δ؍఺ͱ͔
    ‣ ࣄۀ/ࣄۀମͱͯ͠ܧଓͰ͖ΔΑ͏ʹ͢Δ؍఺ͱ͔
    ιϑτ΢ΣΞ։ൃʺϓϩάϥϜΛॻ͘͜ͱ

    View Slide

  11. ‣ ͦ͏͍͏ΈΜͳ͕େࣄͳΘ͚Ͱ͢ɻ
    ‣ ͦͷ͏͑Ͱɺ1ΤϯδχΞ/ϓϩάϥϚʔͱͯ͠ͷ؍఺͔Β

    Ͳ͏͋Γ͍ͨͱࢥ͏͔ɺͱ͍͏࿩Λ͍ͭ΋͍ͯ͠·͢ɺ

    ͱ͍͏࿩Λ͠·͢ɻ
    ʮશମʯͱͯ͠ͷιϑτ΢ΣΞ։ൃ

    View Slide

  12. νʔϜʹΑΔ
    ͍͖͍͖ͱͨ͠
    ιϑτ΢ΣΞ։ൃ

    View Slide

  13. ‣ ֤ϝϯόʔͷ಺తಈػ͚ͮΛҡ࣋ɾ࠶ੜ੒͍ͨ͠ɻ
    ‣ ͦΕΛଅ͢νʔϜͷ͋ΓΑ͏Λ໨ࢦ͢ɻ
    ͍͖͍͖ͱͨ͠

    View Slide


  14. And there's business value in fun - after
    all motivation is a major factor in
    programmer productivity.

    ͦΕ͔Βɺʮָ͠͞ʯʹ΋ϏδωεՁ஋͕͋Γ·͢ŠŠ݁ہɺϞνϕʔγϣϯ
    ͕ͦ͜ϓϩάϥϚͷੜ࢈ੑΛࠨӈ͢ΔͷͰ͢ɻ
    https://martinfowler.com/bliki/DynamicTyping.html 

    ( http://bliki-ja.github.io/DynamicTyping/ )

    View Slide


  15. ΘΕΘΕ͸ػցͰ͸ͳ͍ͷͰɺ΍Γ͍ͨͱࢥ͏ͱ͖
    ʹɺԿ͔Λୡ੒Ͱ͖ΔΜͰ͢ɻԿ͔Λୡ੒͢Δʹ͸ɺ
    ಥ͖ಈ͔͢಺ͳΔྗ͕ඞཁͰ͢ɻͦΕ͸Ϟνϕʔγϣ
    ϯʹΑͬͯݱΕΔΜͰ͢Ͷɻ ུ
    ϞνϕʔγϣϯΛ
    সͬͯ͸͍͚ͳ͍ɻ
    「なんでRubyなんか作った!? 迷惑だ!」に対するMatzの答え


    http://el.jibun.atmarkit.co.jp/rails/2012/10/ruby-matz-7080.html

    View Slide


  16. http://modernagile.org/

    View Slide

  17. ‣ ೉͍͜͠ͱΛ͏·͘΍Δʹ͸ɺؔ܎ऀશһͷ

    ओମతͳࢀՃ͕ඞཁͰ͋Δɻ
    ‣ ʮओମੑʯ͸ଞਓ͕஫ೖͨ͠ΓͰ͖ͳ͍ɻ
    ‣ ͦΕͧΕͷʮྑ͍࢓ࣄ͕͍ͨ͠ؾ࣋ͪʯΛ

    ৴ͯ͡ɺݟ͚ͭͯɺ૬ޓʹྭ·͋͠͏ɻ
    ͍͖͍͖ͱͨ͠

    View Slide

  18. νʔϜʹΑΔ
    ͍͖͍͖ͱͨ͠
    ιϑτ΢ΣΞ։ൃ

    View Slide

  19. ‣ ΋Γ΋Γ࣮૷͢ΔएखΤϯδχΞ @iguchi1124
    ‣ υϝΠϯΤΩεύʔτ / Done ͷఆٛ / MTGϑΝγϦςʔ
    τ / νʔϜ֎ͱͷ૭ޱ ͳͲΛҰखʹ୲͏σΟϨΫλʔ
    ‣ ( ͳͷ͚ͩͲɺReactॳಋೖͱ͔΋ͯ͘͠Ε͓ͯΓ͍͢͝ )
    ‣ γχΞͳྲྀ͠ͷRubyist (ि2ϦϞʔτ)
    ‣ ͱɺࢲ @moro
    ձһࣄۀ෦Ϣʔβʔج൫νʔϜ

    View Slide

  20. νʔϜʹΑΔ
    ͍͖͍͖ͱͨ͠
    ιϑτ΢ΣΞ։ൃ

    View Slide

  21. ΤϯδχΞಉ࢜Ͱ
    ίʔυΛॻ͘
    νʔϜͰΑ͍ιϑτ
    ΢ΣΞʹҭͯΔ
    νʔϜͱνʔϜͷ֎ͷਓͱ
    ΈΜͳͰαʔϏεΛಧ͚Δ

    View Slide

  22. ΤϯδχΞಉ࢜Ͱ
    ίʔυΛॻ͘
    νʔϜͰΑ͍ιϑτ
    ΢ΣΞʹҭͯΔ
    νʔϜͱνʔϜͷ֎ͷਓͱ
    ΈΜͳͰαʔϏεΛಧ͚Δ

    View Slide


  23. http://techlife.cookpad.com/entry/2017/04/06/172601

    View Slide


  24. http://techlife.cookpad.com/entry/2017/04/06/172601

    View Slide

  25. ‣ πʔϧ΍ϑϨʔϜϫʔΫΛͨͩద༻͢Δ͚ͩͰ͸

    ͏·͍͔͘ͳ͍ɻ
    ‣ ʮRailsͭΒ͍ʯ໰୊
    ‣ എܠʹͳ͍ͬͯͦ͏ͳίϯηϓτΛɺࣗ෼ͨͪͰ

    ͪΌΜͱࢼͯ͠ΈΑ͏ɻ
    ͜ͷ10೥ͷֶͼ:

    View Slide


  26. αʔϏε૚ͱͯ͠ͷ Form Object ΛΑ͘ߟ͑ͯΈΔ

    View Slide


  27. Value ObjectΛൃݟ͢Δ

    View Slide

  28. ΤϯδχΞಉ࢜Ͱ
    ίʔυΛॻ͘
    νʔϜͰΑ͍ιϑτ
    ΢ΣΞʹҭͯΔ
    νʔϜͱνʔϜͷ֎ͷਓͱ
    ΈΜͳͰαʔϏεΛಧ͚Δ

    View Slide

  29. ‣ ొ࿥தͷσʔλ͸όϦσʔγϣϯΛ؁ͨ͘͠ೖྗத
    σʔλͰ͸ͳ͍ɺͱ͔
    ‣ ʮϑΥʔϜ͔ΒϝΞυͰϢʔβʔొ࿥ͯ͠ར༻͢Δʯ
    Ҏ֎ͷܖػͰϢʔβʔʹͳΔɺͱ͔
    ͜Ε·ͰͷϏδωε͔ΒֶͿ

    View Slide

  30. ‣ ར༻ऀʹͱͬͯ࢖͍΍͍͢΋ͷʹͳΔΑ͏ʹɺֶΜ
    ͩ֓೦ʹج͍ͯม͍͑ͯ͘ɻ
    ‣ ϦϑΝΫλϦϯάͨ͠Γɺ෼ׂͨ͠Γɺ৽نʹ࡞ͬ
    ͨΓɺ͍ΖΜͳ࡞ઓΛ࢖͍෼͚ͨΓซ༻ͨ͠Γ͢Δɻ
    ιϑτ΢ΣΞΛҭͯΔ

    View Slide

  31. ‣ ҭͯΔํ޲ੑ΍ॱ൪͸ɺٕज़తͳཧ༝ͱɺϏδωε
    ΍ར༻ऀͷؔ৺͝ͱͷόϥϯεʹΑܾͬͯ·Δɻ
    ‣ ͦͷͨΊʹ΋ɺ͍ΖΜͳ৬ೳΛ࣋ͬͨਓ͕ू·Δ

    νʔϜͰͦ͜ҭͯΒΔɻ
    νʔϜͰҭͯΔ

    View Slide

  32. ‣ ;Γ͔͑Γ
    ‣ ݟੵΓͱܭըͮ͘Γ
    ͍ΖΜͳϓϥΫςΟε͕͋Δ͚Ͳɺͪΐͬͱͣͭࢼͨ͠:

    View Slide

  33. ‣ ;Γ͔͑Γ
    ‣ ͜Ε·ͰʹԿΛ͔ͨ͠
    ‣ ݟੵΓͱܭըͮ͘Γ
    ‣ ͜Ε͔ΒԿΛ͢Δ͔
    ͍ΖΜͳϓϥΫςΟε͕͋Δ͚Ͳɺͪΐͬͱͣͭࢼͨ͠:

    View Slide


  34. View Slide


  35. ‣ ຖि n ϙΠϯτਐΜͰ͍Δͷ͸Θ͔ͬͨɻ͕ɺ
    ʮ͍ͭͰ͖Δʯ͔͕ݟ͑ͮΒ͔ͬͨɻ
    ‣ ࣮ࡍʹॻ͍ͯΈͨΒɺײ͕֮දݱͰ͖ͯͨɻ

    View Slide


  36. View Slide


  37. ‣ ࣾ಺ͷϓϥΫςΟεΛ༌ೖͨ͠ɻ
    ‣ υϝΠϯΤΩεύʔτʹ͞Θͬͯ΋Β͏ɻ
    ‣ େখ༷ʑͷؾ͍ͮͨ͜ͱΛͲΜͲΜ௚͢ɻ

    View Slide


  38. Χϯόϯʹ5SZΛషΔ

    View Slide


  39. ‣ TryΛ͍ͭ΋໨ʹ͢ΔΑ͏ʹɺషͬͨɻ
    ‣ ͜Ε͸ະମݧͩͬͨΑ͏ͳɻ

    View Slide

  40. ‣ ʮ͜Ε·ͰʯʹֶΜͰ
    ‣ RailsҰൠ΍ΞϓϦέʔγϣϯίʔυͷۤ࿑
    ‣ ػೳͷ࢖ΘΕํ
    ‣ ʮ͜Ε͔ΒʯΛߟ͑Δ
    ‣ ͪΐͬͱͣͭʮΑ͍ʯઃܭΛ͢Δ
    ‣ ඞཁͳΒٕज़తෛ࠴ΛआΓೖΕΔ
    ֶशͱϑΟʔυόοΫ

    View Slide

  41. ‣ ʮ͜Ε·ͰʯʹֶΜͰ
    ‣ ͜Ε·ͰͷνʔϜͷਐΊํɻ
    ‣ ࡞Ζ͏ͱͨ͠ػೳͰ΄Μͱ͏ʹඞཁͩͬͨ΋ͷɻ
    ‣ ʮ͜Ε͔ΒʯΛߟ͑Δ
    ‣ Try
    ‣ ͜Ε·ͰΛ౿·͑ͨݟੵΓͱܭըͮ͘Γɻ
    ֶशͱϑΟʔυόοΫ

    View Slide

  42. ΤϯδχΞಉ࢜Ͱ
    ίʔυΛॻ͘
    νʔϜͰΑ͍ιϑτ
    ΢ΣΞʹҭͯΔ
    νʔϜͱνʔϜͷ֎ͷਓͱ
    ΈΜͳͰαʔϏεΛಧ͚Δ

    View Slide

  43. ʮ஌͍ͬͯͨʯ͜ͱ

    View Slide


  44. ͕ͩɺߴΈʹ౸ୡ͢Δ͜ͱ͕໨తͰ͋Ε͹ɺιϑτ
    ΢ΣΞ։ൃ͸ʮϓϩάϥϚʔͱͦͷଞେ੎ʯͰ੒ཱ
    ͢Δ΋ͷͰ͸ͳ͍ɻͦΕ͕ɺաڈ೥ؒͰࢲֶ͕Μ
    ͩ͜ͱͩɻ
    — エクストリーム・プログラミング 「第25章 結論」

    View Slide


  45. View Slide

  46. ‣ αʔϏεΛར༻͢ΔϢʔβʔ͞Μ
    ‣ Ϣʔβʔ͞Μʹ޲͚ͨࢪࡦΛاը͢ΔଞͷνʔϜ
    ‣ Ϣʔβʔ͞ΜͷࠔΓࣄͷղܾ͕੹຿ͷνʔϜ
    ‣ ଞͷج൫ܥγεςϜΛ։ൃɾҡ࣋ɾվળ͍ͯ͠ΔνʔϜ
    ‣ …
    ʮϢʔβʔج൫ʯͷؔ܎ऀ

    View Slide

  47. ‣ αʔϏεΛར༻͢ΔϢʔβʔ͞Μ
    ‣ Ϣʔβʔ͞ΜͷࠔΓࣄͷղܾ͕੹຿ͷνʔϜ
    ‣ ج൫ܥγεςϜΛ։ൃɾҡ࣋ɾվળ͍ͯ͠ΔνʔϜ
    ‣ Ϣʔβʔج൫νʔϜ
    ‣ …
    ʮϢʔβʔ͞Μʹ޲͚ͨࢪࡦΛاը͢ΔଞͷνʔϜʯͷؔ܎ऀ

    View Slide

  48. ‣ ͋ΔࢪࡦͷϦʔνΛ૿΍ͨ͢Ίɺͦ͜ΛϝΠϯͰקΊ͍ͯΔνʔϜͱڞಉͯ͠ɺ
    Ϣʔβʔσʔλͷѻ͍ΛΨϥοͱม͑ͨɻ

    Ϣʔβʔج൫νʔϜͰ͸αʔόଆAPIΛ࣮૷ͨ͠Γɺ݁Ռͱͯ͠Ϣʔβʔମݧ
    ͕Ͳ͏͋Δ΂͖͔Λઃܭͨ͠Γɺ࠷ऴ֬ೝͨ͠Γͨ͠ɻiOSΞϓϦಘҙͳਓ͕
    গͳ͔ͬͨͨΊɺࢪࡦνʔϜͷΤϯδχΞ͕ࢪࡦͦΕࣗମͷΈͰͳ͘ɺΞϓϦ
    ্Ͱͷج൫෦෼΋Ұॹʹ࡞ͬͯ͘Εͨɻٕज़ج൫ܥνʔϜ(αʔόଆɺΞϓϦ
    ଆɺQA)΋ઃܭɾ࣮૷ΛҰॹʹਐΊͯ͘Εͨɻ

    ݁Ռͱ͍͍ͯ͠ײ͡ʹಈ͘΋ͷΛఏڙͰ͖ͨɻ͕ɺେ͖ͳϦϦʔεͩͬͨͷͰ
    ଟগͷෆ۩߹΋ग़ͯ͠·͍ͬͯΔɻαϙʔτܥνʔϜͱڧௐͯ͠ਵ࣌ରԠதɻ
    ‣ ͱ͍͏ͷΛɺ஥ྑ͘ɺϢʔβʔ͞ΜͷํΛ޲͖ͳ͕Β΍ΕͨͷͰͨ͠ɻ
    ઌ೔ͷࣄྫ: (͘Θ͘͠͸WebͰ)

    View Slide


  49. http://techlife.cookpad.com/entry/2017/04/06/172601

    View Slide


  50. ʰॊೈͰ͍͍ײ͡ͷϢʔβʔج൫Λ໨ࢦ͢ʱͱ͍͏ͷ͕͜ͷ
    ࠶ߏஙϓϩδΣΫτͷ໨తͰ͢ɻ
    http://techlife.cookpad.com/entry/2017/04/06/172601

    View Slide

  51. ʮ෼͔͖ͬͯͨʯ͜ͱ

    View Slide


  52. 91ͷՁ஋͸ɺϏδωεͷੈքͰ࣮ફ͢΂͖΋ͷͩɻշదʹ฻
    ΒͤΔੜ׆ΛૹΔ͚ͩͰͳ͘ɺؔ܎ऀશһ͕͓ޓ͍ʹϦεϖ
    Ϋτͨ͠ਓؒؔ܎ʹΑͬͯɺ৽͍͠ಇ͖ํΛ։ൃ͢ΔͷͰ͋
    Δɻ׆ൃʹੵۃతʹɺੈքʹߩݙͰ͖Διϑτ΢ΣΞΛ࡞Γ
    ग़͢ͷͰ͋Δɻ૑଄తʹ͍͖͍͖ͱಇ͘ͷͰ͋Δɻ
    — エクストリーム・プログラミング 「第25章 結論」

    View Slide

  53. ΤϯδχΞಉ࢜Ͱ
    ίʔυΛॻ͘
    νʔϜͰΑ͍ιϑτ
    ΢ΣΞʹҭͯΔ
    νʔϜͱνʔϜͷ֎ͷਓͱ
    ΈΜͳͰαʔϏεΛಧ͚Δ

    View Slide

  54. νʔϜʹΑΔ
    ͍͖͍͖ͱͨ͠ιϑτ΢ΣΞ։ൃ
    ࢣఋొஃ2018 ʲएखΤϯδχΞͷू͍ʳ
    2018-01-21
    ॾڮګհ @moro

    View Slide