Rebuild Team - 急成長プロダクトのDev&Opsで生じる悪循環とその解決策 / 20171013

56ae61a2631362f985e4c1fa4548a7ac?s=47 yuzutas0
October 13, 2017

Rebuild Team - 急成長プロダクトのDev&Opsで生じる悪循環とその解決策 / 20171013

SPI Japan 2017の発表資料です。
refs. https://yuzutas0.hatenablog.com/entry/2017/10/16/093000

56ae61a2631362f985e4c1fa4548a7ac?s=128

yuzutas0

October 13, 2017
Tweet

Transcript

  1. Rebuild Team
 ٸ੒௕ϓϩμΫτͷDev&OpsͰੜ͡Δѱ॥؀ͱͦͷղܾࡦ 
 2017-10-13 (Fri) 
 SPI Japan 2017

    presented by @yuzutas0  IUUQTXXXQFYFMTDPNQIPUPDPMMFBHVFTDPPQFSBUJPOpTUCVNQpTUT
  2. 90ຕ / 20min 
 ͲΜͲΜ͍͖·͢ 

  3. ɹSho Yokoyama (@yuzutas0) ɹɹ 
 
  • ϦΫϧʔτςΫϊϩδʔζ •

    ೝఆεΫϥϜϚελʔ • ΤϯδχΞνʔϜͷ্ཱͪ͛ɾཱͯ௚͠
  4. ɹຊ೔ͷ಺༰ “ٸ੒௕ʹ൐͏௧Έ” Λ1ͭ1ͭղফͯ͠ νʔϜΛ҆ఆԽͨ͠ࣄྫΛڞ༗͠·͢ 

  5. ɹ૝ఆ͢Δର৅ ٸ੒௕ϑΣʔζͷϓϩμΫτ։ൃɾӡ༻ʹؔ৺ͷ͋Δ • ιϑτ΢ΣΞΤϯδχΞ
 • νʔϜϦʔμʔ
 • ૊৫Ϛωʔδϟʔ 

  6. 1. എܠɾ՝୊ 
 
 2. վળ׆ಈ
 ᶃαʔϏεϨϕϧ ᶄηϨϞχʔ ᶅόϦϡʔετϦʔϜ ᶆυΩϡϝϯτ


    
 3. ৼΓฦΓ  ɹΞδΣϯμ
  7. ɹ੒௕௧ʹۤ͠ΉϓϩμΫτ 
 ձࣾͷ࣍Λ୲͏ࣄۀͱͯ͠ͷظ଴ νʔϜཱͯ௚͠ͷඞཁੑ
  ϝϯόʔ2ഒ/Q
 εέʔϧظ ച্3ഒ/೥
 άϩʔε੡඼ ো֐2݅/Ӧۀ೔


    ةػతঢ়گ
  8. ɹ“0→1” ͕ੜΜͩෛ࠴ ώοτ͢Δ͔ෆ֬ఆͰίετΛׂ͚ͳ͔ͬͨ  ֎஫ʹؙ౤͛ γεςϜ͸௿඼࣭ γεςϜͷݶք ϐʔΫ࣌ؒଳͷԠ౴͕20sec ࢢ৔֦େ Ϣʔβʔ૿Ճ

  9. ɹ“1→10” ʹඋ͑ͨ࠶ߏங ϐʔΫ࣌ؒଳͷϨεϙϯελΠϜΛ0.05secʹ400ഒͷվળ ɹɹɹɹɹɹɹɹɹɹɹɹΦϯϓϨ  ϨϯμϦϯάHTMLͱ
 jQueryͷଟॏಡࠐ
 → VirtualDOMɾSPA
 ʢඇಉظϕʔεͷ௨৴ʣ

    ֤αʔόͷεέʔϧΞοϓˍεέʔϧΞ΢τ DBΩϟογϡ
 → KVSҠ؅ ϚϧνϚελߏ੒ʹWrite෼ࢄ ඇਖ਼نԽ&Ϛελςʔϒϧഇࢭ
 ʹJoin΍εΩϟϯΛ࡟ݮ ϙʔϦϯά࠷దԽ ΤϯυϙΠϯτΛ෼ࢄ
 ϩδοΫશॻ͖௚͠ JPA؆қੜ੒ΫΤϦ → ࣗલSQLͰ࠷దԽ
  10. ɹ“1→10” ʹඋ͑ͨ಺੡Խ  αϒγεAͷ࠶ߏங ՔಇதγεςϜͷ
 อकӡ༻ αϒγεAͷ
 ड͚౉͠ ʴαϒγεAͷ
 ػೳ௥ՃΛ࠶։

    ʴαϒγεBͷ
 ػೳ௥ՃΛ࠶։ αϒγεBͷ࠶ߏங αϒγεCͷ࠶ߏங αϒγεBͷ
 ड͚౉͠ γεςϜ࠶ߏஙνʔϜ ੡඼։ൃˍӡ༻νʔϜ ػೳ௥ՃΛҰ࣌ఀࢭ͢Δܭը͕ͩͬͨࣄۀ෦໳ͷཁٻͰ࣮ࢪ
 γεςϜ෦໳ͷϚωδϝϯτ૚͕ະհࡏͷ··૸Γ࢝Ίͨ ֎஫Λഇࢭ
  11. ɹDev&OpsͰੜͨ͡௧Έ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ
  12. ɹϛογϣϯ • ։ൃɾӡ༻νʔϜΛཱͯ௚͢͜ͱ • ͞ΒͳΔ੒௕ͷ౔୆Λߏங͢Δ͜ͱ 

  13. 1. എܠɾ՝୊ 
 
 2. վળ׆ಈ
 ᶃαʔϏεϨϕϧ ᶄηϨϞχʔ ᶅόϦϡʔετϦʔϜ ᶆυΩϡϝϯτ


    
 3. ৼΓฦΓ  ɹΞδΣϯμ
  14. γεςϜো֐͕Ӧۀ೔͋ͨΓ2݅ൃੜ͢Δঢ়گ͕1ϲ݄ଓ͍ͨ
 → શνʔϜͷ͋ΒΏΔ։ൃΛࢭΊͯ௜੩Խ ঃʑʹऩଋ͕ͨ͠ • ߃ٱରԠ͸ਃ͠ૹΓ
 • िʹԿճ͔࣌ݶര஄͕രൃ
 • ϦϦʔεͷ౓ʹ৽ͨͳো֐͕ൃੜ

     ɹͳʹ͸ͱ΋͋ΕՐΛফ͢ https://www.pexels.com/photo/water-outside-fire-hose-69934/
  15. ɹѱ॥؀Λଧ։͢Δվળ׆ಈ վળαΠΫϧΛͻͨ͢Βճ͠ଓ͚ͨ  ݱঢ়ͷՄࢹԽ
 ಁ໌ੑ ϘτϧωοΫͷಛఆ
 ݕࠪ ϓϥΫςΟεͷద༻
 దԠ

  16.  ɹ˞ٕज़؍఺΋ίπίπվળ͠ͳ͕Β ίʔυ඼࣭ͷ୲อ ϒϥϯνઓུͷಋೖ QAࢧԉɾςετڧԽ ϦϦʔε࡞ۀͷࣗಈԽ ཁ݅ϑΥʔϚοτ੔උ ςετ޲͚෺ࢿ؅ཧ IUUQTPOJDTPGUTPMVUJPOTJORVBMJUZBTTVSBODFBOEUFTUJOHIUNMɹɹɹIUUQOWJFDPNQPTUTBTVDDFTTGVMHJUCSBODIJOHNPEFM

  17. ݁Ռతʹʮݱ৔͚ͩͰແཧʹղܾ͠ͳ͍ʯʮ૬ஊ͢Ε͹ղܾͰ͖Δ͜ͱ΋͋Δʯͷϝοηʔδʹ΋ͳͬͨ  ɹ˞֎෦ϦιʔεͰෆ଍Λิ͍ͳ͕Β ෺ࢿɿϗϫΠτϘʔυ΍Ϟχλʔ ஌ࣝɿಛఆ෼໺ͷઐ໳Ոαϙʔτ

  18. 1. എܠɾ՝୊ 
 
 2. վળ׆ಈ
 ᶃαʔϏεϨϕϧ ᶄηϨϞχʔ ᶅόϦϡʔετϦʔϜ ᶆυΩϡϝϯτ


    
 3. ৼΓฦΓ  ɹΞδΣϯμ
  19. ɹDev&OpsͰੜͨ͡௧Έ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ
  20. ɹϘτϧωοΫ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ τϥϒϧ ମྗɾϝϯλϧʹ௚ܸ ๷͗Α͏͕ͳ͍
  21.  ɹࠞཚͨ͠··ো֐ʹରቂ͢Δ

  22. • ܰඍͳෆ۩߹ͰͷΦϯίʔϧ΍࢒ۀରԠ͕ൃੜ͍ͯͨ͠
 • ෆద੾ͳରԠʹΑΔೋ࣍ࡂ֐͕গͳ͔Βͣൃੜ͍ͯͨ͠  ɹো֐ͷ܏޲෼ੳ͔Βணख

  23. • ඼࣭ɾো֐ରԠʹ͓͚Δؔ܎ऀͷ໨ઢ߹Θͤ • ఆٛͦͷ΋ͷ < “ఆظతͳձ࿩” Λ௨ͨ͡ڞ௨ೝࣝͷৢ੒  ɹαʔϏεϨϕϧΛఆٛ

  24.  ɹͲͷ͘Β͍ ”΍͹͍” Ϩϕϧ͔ SLA ػೳ ηΩϡϦςΟɾ๏཯ ίΞػೳ αϒػೳ ඇػೳ

    ৴པੑɾՄ༻ੑ ੑೳɾΩϟύγςΟ OLA ʴ 
 Өڹൣғ ར༻ऀ਺ɾγΣΞ཰ ࣌ؒଳ αϙʔτ؀ڥ ʹ 
 ରԠ଎౓ ଈ࣌ରԠ - ϕετΤϑΥʔτ ༏ઌରԠʢʼػೳ௥Ճʣ ௨ৗରԠʢʹػೳ௥Ճʣ ӡ༻ ఆظతͳධՁ → ࠶ൃ๷ࢭ + ࣄલ༧๷ αʔϏεϨϕϧఆٛࣗମͷݟ௚͠ ࢀরʰαʔϏεϨϕϧɿઃܭͱӡ༻ͷϓϥΫςΟεʱ http://yuzutas0.hatenablog.com/entry/2017/05/23/073000
  25. ಋೖ࣌ʹ͸աڈࣄྫΛ౿·͑ͨγϛϡϨʔγϣϯͰઆ໌ 
 ྫྷ੩ʹ࿩͢ͱʮ͜ͷϨϕϧͷෆ۩߹Ͱʯʮ໷௨͠ͷରԠΛͯ͠ʯ
 ʮೋ࣍ࡂ֐͕ى͖ͨ͜ͱʯͷ࢒೦͕͞ු͖ூΓʹͳΔʢ൑அج४ͷඞཁੑʣ  ɹʮ͜ΕΛܾΊͯԿͷҙຯ͕͋Δͷʁʯ ͜ͷτϥϒϧͩͱ ͜ͷରԠʹͳΔ ͜ͷτϥϒϧͩͱ ͜ͷରԠʹͳΔ

    ͜ͷτϥϒϧͩͱ ͜ͷରԠʹͳΔ
  26. αʔϏεϨϕϧΛ൑அͷدΔลͱͯ͠গͣͭ͠ఆணͤ͞Δ 
  ɹײ৘΍যΓͰҙࢥܾఆ͕ͳ͞Ε͕ͪ ɹʮαʔϏεϨϕϧఆٛͩͱ
 ɹɹ͜ͷΑ͏ʹ൑அͰ͖·͢Ͷʯ ҙࢥܾఆͷ৔ʹډ߹ΘͤΔ
 γεςϜ෦໳ͷ໾৬ऀΛঌש͢Δ τϥϒϧൃੜ࣌͸
 ϝϯόʔʹ੠Λֻ͚ͯ΋Β͏

    ৺ཧత҆શੑ
 ʮ૬ஊ͢Ε͹໷ؒରԠͤͣʹࡁΉʯ ϝϯόʔ͕ҰํతʹෆརӹΛ
 ඃΒͳ͍Α͏ʹίϛϡχέʔγϣϯ
  27. ܗ֚Խɾߗ௚ԽΛ๷͙ͨΊͷӡ༻ઃܭ 
 • ݄࣍ͷৼΓฦΓͰఆٛࣗମΛՃචɾमਖ਼
 • աେɾաগͳΦϖϨʔγϣϯϨϕϧͰରԠ → ͔࣍Βద੾ͳϨϕϧͱ͢Δձ࿩ • Ξοϓσʔτ͠΍͍͢Α͏ʹίϥϘϨʔγϣϯπʔϧʢConfluenceʣʹهࡌ

     ɹ౰ॳ͸ߟྀ֎ͩͬͨ৽؍఺͕ग़Δ
  28.  ɹద੾ͳϨϕϧͰ඼࣭ʹରቂ͢Δ

  29. 1. എܠɾ՝୊ 
 
 2. վળ׆ಈ
 ᶃαʔϏεϨϕϧ ᶄηϨϞχʔ ᶅόϦϡʔετϦʔϜ ᶆυΩϡϝϯτ


    
 3. ৼΓฦΓ  ɹΞδΣϯμ
  30. ɹDev&OpsͰੜͨ͡௧Έ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ
  31. ɹϘτϧωοΫ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ർฐ ”୲౰ऀ”ͷ๊͑Δ
 ՝୊Λ੾Γ։͘
  32.  ɹ“୲౰ऀ”͚͕ͩ՝୊ʹରቂ͢Δ

  33.  ɹ1on1ʹͯώΞϦϯά IUUQTXXXQFYFMTDPNQIPUPBEVMUCFBSECFWFSBHFCMVS

  34. ɹɹɹɹɹ • ϝϯόʔ͝ͱʹҟͳΔ՝୊ҙࣝΛ๊͍͑ͯΔ ɹɹɹɹɹ • ͦͷ “໰୊” Λ͓ޓ͍ʹൃ৴͍͋͑ͯ͠ͳ͍
 ɹɹɹɹɹ •

    νʔϜͱͯ͠ “໰୊” ͷݕ஌ɾղܾ͕Ͱ͖͍ͯͳ͍  ɹܧଓతͳ՝୊ͷݕ஌͕Ͱ͖͍ͯͳ͍ IUUQXXXJSBTVUPZBDPNCMPHQPTU@IUNM
  35. •ʮߴ͍༏ઌ౓ʯͩΒ͚ͷܭը •ʮߴ͍༏ઌ౓ʯͩΒ͚ͷׂΓࠐΈ࡞ۀ
 • “୲౰ऀ” ͕ՔಇΛ૿΍͢͜ͱͰܭըʹ࣮ଶΛ߹ΘͤΑ͏ͱͨ͠  ɹ༏ઌॱҐʹԠͯ͡࡞ۀͰ͖͍ͯͳ͍

  36. νʔϜ಺෦ͷձ࿩Λ׆ੑԽ → ಁ໌ੑΛอͭ → ݕࠪɾదԠͷαΠΫϧΛճ͢ ɹεϓϦϯτηϨϞχʔΛ։࠵  What ԿΛ͢Δ͔ How

    Ͳ͏΍ͬͯ͢Δ͔ ि࣍ϨϏϡʔ ࡞ۀ݁ՌϑΟʔυόοΫ σΠϦʔMTG ࡞ۀͷ࠶ܭը ि࣍ϓϥϯχϯά Ҋ݅ͷ࠶ܭը ϨτϩεϖΫςΟϒ ϓϩηεͷ࠶ܭը What ԿΛ͢Δ͔ How Ͳ͏΍ͬͯ͢Δ͔
  37. ɹηϨϞχʔʹ൐͏ΞΠςϜͷ੔උ  ɹϓϩμΫτόοΫϩά
 ɹݶΒΕͨਓһͰ༏ઌॱҐʹԠͯ͡࡞ۀ͢ΔΩϡʔ ɹো֐෺Ϧετ
 ɹϨτϩεϖΫςΟϒͰՄࢹԽ͞Εͨ՝୊ ɹεϓϦϯτόοΫϩά
 ɹݱঢ়ͷ࡞ۀਐḿΛՄࢹԽ͢ΔΧϯόϯ

  38. *ྫʮ͋ͷَిͷதͰ΋खॱॻΛ࡞ͬͯϨϏϡʔͰ͖ͨʂೋ࣍ࡂ֐͕ى͖ͳ͍Α͏ʹಈ͚ͨͷ͸ྑ͔ͬͨʂʯ  ɹKPTʹΑΔৼΓฦΓ͔Βணख Keep ݫ͍͠ঢ়گ͔ͩΒͦ͜ൃش͞Εͨ
 ྑ͍఺Λ͔ͬ͠Γͱশ͑߹ͬͨ* Problem ʢͦͷ্Ͱʣ֤ϝϯόʔ͕
 ײ͍ͯ͡Δ՝୊Λચ͍ग़ͨ͠ IUUQXXXJSBTVUPZBDPNCMPHQPTU@IUNM

  39. ɹTryͱͯ͠ϓϥΫςΟεΛঃʑʹಋೖ ݱ৔͕ແཧͳ͘ड͚ೖΕΒΕΔॱ൪ͰΞδϟΠϧख๏Λద༻ʢ͍͖ͳΓεΫϥϜͩͱ਎ߏ͑ΒΕΔʣ  1౓ʹ͋Ε΋͜Ε΋
 ରԠ͢Δͷ͸ແཧͩʂ ༏ઌॱҐͷΩϡʔ؅ཧ
 όοΫϩάΛಋೖ Problem Try Ωϡʔͷݟ௚͠Λ


    ͨ͠΄͏͕ྑ͍ͷͰ͸ʁ ݟ௚͠ػձͱͯ͠
 ϓϥϯχϯάձٞΛಋೖ Problem Try ଞͷҊ݅Λ஌Βͳ͍ͷͰ
 αϙʔτͰ͖ͳ͍ʂ σΠϦʔMTG΍
 ि࣍ϨϏϡʔΛಋೖ Problem Try
  40. ɹʮ΍Γํ͕ίϩίϩมΘΔʯ໰୊ ϓϥΫςΟεͷద༻͕ٸ͗͢Δͱɺݱ৔ͷϝϯόʔ͕뱌Ͱ͖ͳ͍ 
 • ೲಘͰ͖ΔൣғΛฉ͖ग़͢ → શһ͕ೲಘͰ͖Δ෦෼͔Βಋೖ • ͜ͷνʔϜʹ͸·ͩૣ͗ͨ͢ →

    ʮ΍ͬͺΓ΍Ί·͠ΐ͏ʯͰ੾Γ໭͠ • த్൒୺ͳద༻Ώ͑ͷProblem͕ڍ͕Δ → TryͰ͞Βʹຊ֨ద༻ •ʮࠜຊͷߟ͑ํΛ஌Γ͍ͨʯͱ͍͏ҙݟ → ر๬ऀʹରͯ͠ࢀߟਤॻͷҊ಺ 
  41. ɹ“ݱ৔ͷৼΓฦΓ”Λج఺ʹ্Ґ૚࿈ܞ  Slack #kpt ʹ౤ߘ
 ؾ෇͍ͨ఺͸͙͢ڞ༗ ౤ߘΛࢀߟʹͯ͠
 ϨτϩεϖΫςΟϒ Try Λચ͍ग़͢

    Ϛωδϝϯτձٞ Ͱ
 ্Ґ૚ʹαϚϦʔใࠂ ͦͷProblem͸
 νʔϜ಺ͰରॲՄೳ͔ʁ Yes No ࢀরʰΤεΧϨΛࢧ͑Δٕज़ - ΞδϟΠϧͳใ࿈૬ͱ৘ใྲྀ௨ʱ http://yuzutas0.hatenablog.com/entry/2017/08/10/090000 Lean Escalation ͷ࠲૊Έ
  42.  ɹνʔϜͱͯ͠՝୊ͱରቂ͢Δ

  43. 1. എܠɾ՝୊ 
 
 2. վળ׆ಈ
 ᶃαʔϏεϨϕϧ ᶄηϨϞχʔ ᶅόϦϡʔετϦʔϜ ᶆυΩϡϝϯτ


    
 3. ৼΓฦΓ  ɹΞδΣϯμ
  44. ɹDev&OpsͰੜͨ͡௧Έ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ
  45. ɹϘτϧωοΫ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ KPTΛ௨ͯ͠՝୊͕ු্ ʢνʔϜͷॏ఺՝୊ͱͯ͠߹ҙܗ੒ʣ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁ ہॴ࠷ద
  46. • શମ૾Λશ͘஌Βͳ͍ • શମ૾ʹΞΫηεͰ͖ͳ͍  ɹہॴ࠷దͷ༠Ҽ

  47. ͋ΒΏΔ։ൃɾӡ༻ۀ຿ͷɺ͋ΒΏΔ޻ఔʹ
 ͋ΒΏΔProblem͕Ϛοϐϯά͞Εͨ ཁٻ੔ཧ ཁ݅ఆٛ ઃܭ ੡଄ ࢼݧ ग़ՙ ӡ༻ Problem

    Problem Problem Problem Problem Problem Problem Problem Problem Problem Problem Problem Problem  ɹʮԿͱͳ͘ʯͷ࡞ۀͩΒ͚
  48. Tryͷ༏ઌॱҐܾΊ΍૬ޓαϙʔτ͕ࠔ೉ • ୲౰ऀҎ֎͸ʢ୲౰ऀࣗ਎Ͱ͑͞ʣ֤ʑͷۀ຿ϑϩʔΛ೺ѲͰ͖ͳ͍ • ۀ຿಺༰ͷͲ͜ʹɺͲͷΑ͏ͳϜμɾϜϥɾϜϦ͕ੜ͡Δ͔ݟ͑ͳ͍ ɹશମ૾͕ෆಁ໌

  49. ࡞ۀ࣌ؒɾ଴ͪ࣌ؒ΍ख໭Γͷ࣮ଶΛચ͍ग़͢
 ϜμɾϜϥɾϜϦ͕ੜ͡ΔՕॴΛಛఆ  ɹόϦϡʔετϦʔϜϚοϓʢVSMʣΛ࡞੒ Ҿ༻ݩʮ೔ຊͷDevOpsมֵΛଅਐ͢ΔόϦϡʔετϦʔϜϚοϐϯάʯ http://gihyo.jp/dev/column/01/devops/2017/value-stream-mapping

  50. ݟ͑ʹ͍͘෦෼ʹͦ͜໰୊͕જΉ ʹ શۀ຿ΛՄࢹԽ͢Δ͜ͱ͕େ੾  ɹ֤ۀ຿͝ͱʹผͷVSMΛ࡞Δ ػೳ௥Ճͷ։ൃ γεςϜো֐ରԠ ΧελϚʔ͔Βͷ
 ໰͍߹ΘͤରԠ ଞ෦ॺ͔Βͷ


    ࡞ۀґཔରԠ γεςϜอकۀ຿
 ྫɿEOSLରԠ γεςϜӡ༻ۀ຿
 ྫɿΩϟύγςΟܭଌ http://gihyo.jp/dev/column/01/devops/2017/value-stream-mapping
  51. 1. ೲಘͯ͠΋Β͏
 • ໰୊ҙࣝɾଧͪखΛઆ໌
 • ࣾ಺ͰͷVSM׆༻ࣄྫΛ঺հ
 
 2. શһͰVSMΛ࡞੒
 •

    ֤୲౰ऀ͕આ໌͠ͳ͕Βۀ຿ͷྲྀΕΛॻ͘
 • “ϜμɾϜϥɾϜϦ” ΍ ”ϝϯόʔؒͷೝࣝͷࠩ෼” ΛՄࢹԽ
 • ·͞ʹਐߦதͩͬͨҊ݅ͷϦεΫΛͦͷ৔Ͱݕ஌Ͱ͖ͨʢ੒ޭମݧʣ  ɹશһࢀՃܕϫʔΫγϣοϓ͔Β࢝ΊΔ ࣮෺͸Ԛ͍Ͱ͢ʜʜ
  52.  ɹʮ߆ଋ͕࣌ؒ௕͗͢Δʯ໰୊ ϫʔΫγϣοϓͰ͸
 શһ͕ཧղ͠΍͍͢
 ʮػೳ௥ՃʯΛର৅ ࢒Γ͸୲౰ऀʹ
 ώΞϦϯά VSMΛ࡞੒
 ʹ՝୊ͷՄࢹԽ ͙͢Ͱ͖ΔՕॴ͔Β


    ۀ຿ϑϩʔΛվળ վળޮՌ͕ݟ͑Δ ʹඞཁੑɾೲಘײ
  53.  ɹۀ຿ͷશମ૾Λ஌Δ

  54. 1. എܠɾ՝୊ 
 
 2. վળ׆ಈ
 ᶃαʔϏεϨϕϧ ᶄηϨϞχʔ ᶅόϦϡʔετϦʔϜ ᶆυΩϡϝϯτ


    
 3. ৼΓฦΓ  ɹΞδΣϯμ
  55. ɹDev&OpsͰੜͨ͡௧Έ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ
  56. ɹϘτϧωοΫ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ KPTΛ௨ͯ͠՝୊͕ු্ ʢνʔϜͷॏ఺՝୊ͱͯ͠߹ҙܗ੒ʣ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁ ہॴ࠷ద
  57. • શମ૾Λશ͘஌Βͳ͍ • શମ૾ʹΞΫηεͰ͖ͳ͍  ɹہॴ࠷దͷ༠Ҽ

  58. վળ׆ಈΛ௨ͯ͠ٸܹʹϧʔϧɾϓϩηε͕ܾ·͍͕ͬͯ͘
 ҙࢥܾఆͷεϐʔυʹυΩϡϝϯτԽ͕ؒʹ߹Θͳ͍  ɹʮͲ͜ΛݟΕ͹෼͔Δʁʯ໰୊ ※ຊߘʹ͓͚ΔʮυΩϡϝϯτʯ͸ূ੻ɾܖ໿໨తͰ͸ͳ͘ɺۀ຿ඪ४Խͷʮ࡞ۀखॱॻʯ΍ʮΠϯϑϥ؀ڥҰཡʯͱ͍ͬͨ΋ͷ

  59. 
 • υΩϡϝϯτԽʴߋ৽͠ଓ͚Δ͜ͱͷॏཁੑ͸KPTͰڧௐ • ೔ʑͷίϛϡχέʔγϣϯͰʮͥͻจॻԽ͍ͯͩ͘͠͞ʯʮߋ৽͍ͯͩ͘͠͞ʯ • ଅਐҊΛืΔ → ϝϯόʔओମͰଅਐbot΍νέοτӡ༻ͷࢼߦࡨޡ
 ɹʢҊࣗମ͸ଓ͔ͳ͔͕ͬͨϝϯόʔ͕ࣗൃతʹจॻԽ͢ΔΑ͏ʹͳͬͨʣ

     ɹνʔϜશһʹਪਐऀͱͯ͠ৼ෣ͬͯ΋Β͏
  60. 
 • ϝϯόʔ͕ओମతʹจॻԽ → ผͷ৔ॴʹࣅͨυΩϡϝϯτ͕ॏෳ ɹ࣮ྫ: A͞Μ͕ো֐Λड͚ͯϦϦʔεखॱॻΛߋ৽ → B͞Μ͸ผͷखॱॻͰಉ͡ϛε →

    C͞Μ΋ • ໎ͬͨͱ͖ʹɺͲ͜ΛݟΕ͹ʢʹͲ͜ʹॻ͚͹ʣྑ͍͔෼͔Βͳ͍  ɹʮͲΕ͕ਖ਼͍͠ʁʯ໰୊ ϦϦʔεखॱॻA "͞Μ ো֐ൃੜ ϦϦʔε࡞ۀΛ࣮ࢪ ࡞ۀ࿙ΕΛ൓ө ϦϦʔεखॱॻA
 ʢ൓өࡁΈʣ ϦϦʔεखॱॻB
 ʢະ൓өʣ #͞Μ "͞Μ ಉ͡ো֐͕ൃੜ ϦϦʔε࡞ۀΛ࣮ࢪ ࡞ۀ࿙ΕΛ൓ө ϦϦʔεखॱॻA
 ʢ൓өࡁΈʣ "͞Μ ϦϦʔεखॱॻB
 ʢ൓өࡁΈʣ #͞Μ ϦϦʔεखॱॻC
 ʢະ൓өʣ $͞Μ ·ͨಉ͡ো֐͕ൃੜ ϦϦʔε࡞ۀΛ࣮ࢪ
  61. ɹϨΨγʔυΩϡϝϯτ  मਖ਼͕͍ͭޙճ͠
 ԿΛॻ͚͹͍͍͔໎͏
 Ͳ͜ʹॻ͚͹͍͍͔໎͏ Write ݟ͔ͭΒͳ͍
 ৘ใ͕ݹ͍ɾޡΓ
 ࣅͨ಺༰͕ࢄࡏ͍ͯ͠Δ Read

    ·͞ʹϨΨγʔίʔυͱಉ͡
 ର৅͕ࣗવݴޠʢ΋͘͠͸දɾਤʣʹͳ͚ͬͨͩʂ
 ↓
 ઃܭɾमਖ਼ͷ΍Γํ΋ϓϩάϥϛϯάͱಉ͡Ͱ͸ʁ
  62. ɹMVCΞʔΩςΫνϟͷద༻ 
 ґଘؔ܎ʹج͍ͮͨυΩϡϝϯτઃܭ  View ϦϦʔε࡞ۀखॱॻ Πϯϑϥ؀ڥҰཡ JenkinsϩάΠϯ৘ใ ϦϦʔεه࿥_201704XX Controller

    Model
  63. 
 ܁Γฦ͠ϖʔδ͸Ұׅ؅ཧ ɹIteratorύλʔϯ(GoF)ͷద༻  View ϦϦʔε࡞ۀखॱॻ Πϯϑϥ؀ڥҰཡ JenkinsϩάΠϯ৘ใ ϦϦʔεه࿥_201704XX Controller

    Model ϦϦʔεه࿥_201704XX ϦϦʔεه࿥_201705XX ϦϦʔεه࿥_201706XX
  64. ɹDocument as Code - υΩϡϝϯτΛιʔείʔυͷΑ͏ʹѻ͏ ɹ • ϘʔΠεΧ΢τݪଇɿ๚Εͨϝϯόʔ͕Ճචɾमਖ਼
 ɹɹɹɹɹจॻΛݟΔલΑΓ΋ɺݟͨޙͷ΄͏͕៉ྷͳঢ়ଶͱͳ͍ͬͯΔͷ͕๬·͍͠
 ɹ

    • ίʔυϨϏϡʔɿߏ੒ʹ೰ΜͩΒ૬ஊ
 ɹɹɹɹɹʮ͜͏͍͏ҙਤͰ͜͜ʹॻ͜͏ͱࢥ͏ʂͲ͏ࢥ͏ʁʯΛ૬ஊ͢ΔSlackνϟϯωϧ ʹ ϨϏϡʔ׆ੑԽ  Ͳ͜ʹͲͷυΩϡϝϯτ͕͋Δ΂͖͔Λ
 ίʔσΟϯάʹྫ͑ͯձ࿩͢Δ
 ↓
 ߟ͑ํ΍࡞ۀͷਐΊํʹ΋౰ͯ͸·Δ IUUQTQJYBCBZDPNFOMJCSBSZCPPLTNPOUFTTPSJTIFMG
  65. 
 • Ϣʔεέʔε෼ੳ
 • ϦϑΝΫλϦϯά
 • ϖΞϓϩάϥϛϯά
 • Ϟϒϓϩάϥϛϯά
 •

    όʔδϣϯ؅ཧ
  ɹυΩϡϝϯτΛίʔυͷΑ͏ʹѻ͏16ͷύλʔϯ (Document Design Pattern) 
 • ΞʔΩςΫτνʔϜ
 • ίϯ΢ΣΠͷ๏ଇ
 ମ੍ͷύλʔϯ 
 • ٕज़తෛ࠴
 • ϙʔτϑΥϦΦ
 • ίʔσΟϯάΛଅ͢
 • ίʔυϨϏϡʔ
 • ϘʔΠεΧ΢τ
 • Rule of Three จԽͷύλʔϯ 
 • MVCϞσϧ
 • GoFσβΠϯύλʔϯ
 • ܧଓతσϦόϦʔ /
 ΠςϨʔγϣϯ ߏ੒ͷύλʔϯ ࡞ۀͷύλʔϯ ˞ମ੍΍จԽ͸σβΠϯʢઃܭʣʹӨڹΛ༩͑ΔͷͰσβΠϯύλʔϯʹؚΊ͍ͯ·͢ ࢀরʰDevOpsͱυΩϡϝϯτσβΠϯύλʔϯʱ http://yuzutas0.hatenablog.com/entry/2017/07/06/083000
  66.  ɹ৘ใͷΞΫηγϏϦςΟ

  67. 1. എܠɾ՝୊ 
 
 2. վળ׆ಈ
 ᶃαʔϏεϨϕϧ ᶄηϨϞχʔ ᶅόϦϡʔετϦʔϜ ᶆυΩϡϝϯτ


    
 3. ৼΓฦΓ  ɹΞδΣϯμ
  68. ɹDev&OpsͰੜͨ͡௧Έ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ
  69. ɹϘτϧωοΫʁ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ ݁Ռతʹྑ͘ͳΔ෦෼ͳͷͰ ௚઀ͷΞϓϩʔνͳ͠ ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ ඼࣭ྼԽ
  70. 1. എܠɾ՝୊ 
 
 2. վળ׆ಈ
 ᶃαʔϏεϨϕϧ ᶄηϨϞχʔ ᶅόϦϡʔετϦʔϜ ᶆυΩϡϝϯτ


    
 3. ৼΓฦΓ  ɹΞδΣϯμ
  71. • ։ൃɾӡ༻νʔϜΛཱͯ௚͢͜ͱ • ͞ΒͳΔ੒௕ͷ౔୆Λߏங͢Δ͜ͱ  ɹϛογϣϯ

  72. ɹDev&OpsͰੜͨ͡௧Έ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ
  73. ɹ௧ΈΛ཈੍͢Δ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ αʔϏεϨϕϧ ηϨϞχʔ όϦϡʔετϦʔϜ υΩϡϝϯτ
  74. ɹάϩʔεΛ࣋ଓՄೳʹ͢Δ޷॥؀  Dev ❤ Ops 
 “0→1” ͷ࣌ݶര஄ 
 νʔϜ֦େ΁ͷ४උ

    ஌ࣝͷܧঝ 
 γεςϜো֐: 0.5݅/݄ʹݮগ
 ܰඍͳෆ۩߹: ਂ໷ٳ೔ରԠ͸0ʹ ҆ఆԽ 
 ηϨϞχʔʹΑΔݕࠪͱదԠ
 VSM/υΩϡϝϯτʹΑΔۀ຿ܕԽ ՄࢹԽ 
 ୲౰֎ϝϯόʔ͕ॿݴɾαϙʔτ
 ࣄલʹ໰୊఺Λݕ஌→඼࣭༧๷ શମ࠷ద ঃʑʹݮΔ
  75. ɹ৽نࢀըऀͷ੠ @KPTͰͷձ࿩  Կ͔ฉ͍ͨΒશ෦ʮܾ·͍ͬͯͳ͍ʯ
 ͜ΜͳʹԿ΋ܾ·͍ͬͯͳ͍ݱ৔͸ॳΊͯ υΩϡϝϯτ΍αϙʔτ͕ॆ࣮͍ͯͨ͠
 ͜ΜͳʹεϜʔζʹ্ཱ͕ͪΕͨݱ৔͸ॳΊͯ 4Q Joinϝϯόʔ 1Q

    Joinϝϯόʔ
  76. 1. ૣ͍ஈ֊Ͱ༏लͳएखࣾһΛԿ໊͔ଞ෦ॺ͔ΒҾ͖ൈ͍ͨ
 2. ൑அج४ͱͨ͠ਓࡐཁ݅ = അྗ͕͋Δ͜ͱ
 ɹ • ໰୊ఏىɾվળਪਐͰ͖Δࣗൃੑɹ͜ͷΞαΠϯ͸ਪਐ໾Λ૿΍ͨ͢ΊͷଧͪखͳͷͰ
 ɹ

    • ৬ೳԣஅࢤ޲ɹτϥϒϧ͸ԣஅՕॴͰى͖ΔͨΊʢྫɿiOSͱWebAPIΛ྆ํݟΔඞཁ͕͋Δʣ ɹ • Կ͔͠Β1ͭͷݴޠɾFWͷۀ຿ར༻ܦݧɹ1ͭεΩϧͷϕʔε͕͋Ε͹ଞͷεΩϧ͸ֶ΂ΔͨΊ
 ɹ • ιʔείʔυʹ৮Εͣ͘͢Ϳ͍ͬͯΔ͜ͱɹݏͰ΋ຖ೔ιʔείʔυΛಡΈॻ͖Ͱ͖Δमཏ৔ΛఏڙͰ͖ΔΑʂ  ʮՖܗ෦ॺɾՖܗۀ຿Ͱ͸ͳ͍ʯʮ্͕٧·͍ͬͯΔʯͳͲͷཧ༝Ͱ֘౰͢Δएख͸ଟ͍ͩΖ͏ͱ͍͏ൃ૝ ϝϯόʔͷҰһͱͯ͠
 ޷॥؀΁ͷγϑτΛܦݧ Qຖͷମ੍֦େʹ߹Θͤ
 ͞ΒʹνʔϜΛ෼ׂ ֤νʔϜϦʔμʔͱͯ͠
 ਪਐ໾ʹͳͬͯ΋Β͏ ɹεέʔϧʹ޲͚ͨਪਐ໾
  77. ɹ޷॥؀Λճͨ͢Ίʹඅ΍ͨ͠ίετ   ݱ৔ϝϯόʔͷίϛϡχέʔγϣϯίετΛେ෯ʹඅ΍ͨ͠
 ɹ • ୹ظతʹ͸σϦόϦʔʹϚΠφεӨڹʢʹݟ͑Δɿલ޻ఔͷ඼࣭୲อͰ݁Ռతʹϓϥεʣ
 ɹ • ͲͷΈͪѱ॥؀ΛࢭΊΔͨΊʹඞཁͳίετͩͱ্Ґ૊৫ɾൃදऀ͸ೝ͍ࣝͯ͠Δ


    
 εςʔΫϗϧμʔશମͱͷѲΓ͸ऑ͔ͬͨ ɹ • ঢ়گ͕ঢ়گͳͷͰʮνʔϜ಺ͷ՝୊Λ੾Γ։͘͜ͱʯʮ্Ґ૊৫ʹ఻ୡ͢Δ͜ͱʯ͕࠷༏ઌ
 ɹ • ֎͔Βͷݟ͑ํ͸ʮো֐Λग़ͨ͠ɾ։ൃ͕஗Ε͍ͯΔͷʹɺखΛࢭΊͯϫʔΫγϣοϓΛ࢝ΊΔνʔϜʯ
 ɹ • ݏຯΛݴΘΕͨͷ͸1౓΍2౓Ͱ͸ͳ͍ → ͜ͷѹྗ͕ѱ॥؀ͷਅҼ → कΓखͱͯ͠ͷΤϯδχΞ෦ॺͷҙٛ
 
 ্Ґ૊৫ˍଞ෦ॺϝϯόʹཪͰϑΥϩʔ͍ͨͩ͘ܗͱͳͬͨ ɹ • ಛʹʮ։ൃܦݧ͋ΓʯʮϏδωε෦໳ʹॴଐʯͷϝϯόʔ͕؇িࡐͱͳͬͨͷ͕େ͖͍
  78. ɹ͞ΒͳΔ੒௕ͷͨΊʹ  Ծઆ ऩӹ Dev&Ops࠷దԽͷ༨஍
 ྫɿνʔϜͷΫϩεϑΝϯΫγϣφϧԽ γεςϜ؍఺Ͱͷ౔୆ߏங
 ྫɿա৒ͳٕज़తෛ࠴Λ༧๷͢Δ࢓૊Έ Biz Dev

    Ops ɹBizΛ౿·͑ͨ
 ɹ શମ࠷దԽ
 ɹ • γεςϜ
 ɹ • ϓϩηε
 ɹ • ࢪࡦɾཁ݅
  79. ɹBizDevOpsʹ޲͚ͨऔΓ૊Έ “෦ॺɾ৬຿Λ௒͑ͨϝτϦΫεͷڞ༗” ͱ “σʔλ׆༻จԽͷ૷ண”  ࢀরʰJupyterͱBigQueryʹΑΔσʔλ෼ੳج൫ͷDevOpsʱ http://yuzutas0.hatenablog.com/entry/2017/09/12/203000 σʔλج൫

  80. ɹϏδωεՁ஋ʹ޲͚ͨվળ 

  81. ࠷ޙʹ 

  82. ɹProduct Growth εϐʔυײΛେࣄʹ͢Δ • ര஄Λආ͚ͳ͕Βલʹ૸Γଓ͚Δͱ͍͏͜ͱ
 • ര஄ʹࣗ෼͔ΒಥͬࠐΉ͜ͱͰ͸ͳ͍ → ෛই͢Δ΄Ͳ஗͘ͳΔ ΤϯδχΞ͔ͩΒͦ͜ؾ෇͚Δ͜ͱ

    • ʮ͜͜͸যͬͯ͸μϝͩʂʯʮര஄ͩʂஸೡʹਐΉͧʂʯͱ͍͏৔໘
 • खΛಈཱ͔͢৔ʢ͔ͭͯखΛಈ͔ͨ͠ܦݧऀʣͰͳ͍ͱ෼͔Βͳ͍
 • ٸ੒௕ϓϩμΫτͰ͸ͦͷ৔໘͕ͻͨ͢Βଓ͘  IUUQTXXXQFYFMTDPNQIPUPDBSFGSFFDIJMEDIJMEIPPEDPVOUSZTJEF
  83. ɹٯઆͷΤϯδχΞϦϯά ϕετϓϥΫςΟε͸൓௚ײత
 • ΫΦϦςΟΛߴΊΔͨΊʹɺଈ࣌ରԠΛݮΒ͢ • ΞδϦςΟΛߴΊΔͨΊʹɺखΛࢭΊͯ࿩͠߹͏ ߟ͑Δͱ౰ͨΓલͷ͜ͱ • যͬͨ··࢓ࣄΛଓ্͚ͯख͘ߦ͘Θ͚͕ͳ͍ ɹɹ৸ෆ଍ͷૢॎ͕࢜୲౰͢Δඈߦػʹ৐Γ͍͔ͨʁɹύχοΫঢ়ଶͷ֎Պҩʹखज़͞Ε͍͔ͨʁ


    ɹɹάϩʔεϑΣʔζ͔ͩΒͱ͍ͬͯѱ॥؀Λ์ஔ͍͍ͯ͠ཧ༝ʹ͸ͳΒͳ͍
 • νʔϜʹ͸ಁ໌ੑͱݕࠪͱదԠ͕ඞཁ  IUUQTXXXQFYFMTDPNQIPUPBEVMUBEWFOUVSFCBDLQBDLEBZMJHIU
  84. ʮ͜Ε͓͔ͬͯ͘͠ͳ͍Ͱ͔͢ʁʯ
 ୭͔͕੠Λ্͛Δ͜ͱ͕ɺվળͷୈҰา ʮ͜ΕͬͯͲ͏ͳ͍ͬͯ·͔͢ʁʯ
 ୭͔ʹ੠Λֻ͚Δ͜ͱ͕ɺಁ໌ੑͷୈҰา νʔϜͷҰһͷ໾ׂͰ͢
 ࠓ͜͜ʹ͍Δࢲͨͪࣗ਎ͷ໾ׂͰ͢ 

  85. νʔϜͱͯ͠ϓϩηεΛվળ͠Α͏
 νʔϜͱͯ͠γεςϜΛվྑ͠Α͏
 νʔϜͱͯ͠ϓϩμΫτΛ੒௕ͤ͞Α͏ 

  86. νʔϜͷ҆ఆͷ্ʹͦ͜ ܧଓతͳސ٬Ձ஋ͷఏڙ͕
 ʢͦͷ݁Ռͱͯ͠Ϗδωεͷ੒௕͕ʣ
 ࣮ݱͰ͖Δͷͩͱࢥ͍ͬͯ·͢ 

  87. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ presented by @yuzutas0  IUUQTXXXQFYFMTDPNQIPUPDPMMFBHVFTDPPQFSBUJPOpTUCVNQpTUT

  88. - ࢼߦࡨޡɾࣦഊࣄྫ - ࢀߟࢿྉ - Special Thanks  ɹAppendix

  89. ɹվળ໾͕࠷΋ίʔυΛॻ͍ͯ͠·ͬͨ ໷தʹ1ਓͰίʔσΟϯά͢ΔӋ໨ʹͳͬͨ • ࠷ॳͷࠒ͸ϝϯόʔ͸ࣗ਎ͷ୲౰ൣғ͔͠෼͔Βͳ͔ͬͨ
 • αϒγεςϜԣஅͰઃܭɾ࣮૷Ͱ͖Δਓࡐ͕͍ͳ͍ঢ়ଶ
 എதΛݟͤΔ͜ͱͷޫͱӄ
 • ண೚ૣʑʹ೉қ౓ͷߴ͍ઃܭɾ࣮૷Λ΍ͬͯͷ͚͔ͨΒͦ͜ɺϝϯόʔͷ৴པΛಘͨଆ໘΋͋Δ
 •

    վળʹྗΛׂ͚ͣɺਓ͸ҭͨͣɺνʔϜ͕ػೳ͠ͳ͍ʢϓϨΠϯάϚωʔδϟʔͷΞϯνύλʔϯʣ ࣗ૸Λଅͯ͠ঃʑʹ݈શԽ • एखࣾһͷҾ͖ൈ͖ ʴ ձ࿩ͷ׆ੑԽ ʴ ܧଓతͳ࡞ۀ಺༰ͷϑΟʔυόοΫʢि࣍ϨϏϡʔʣ 
  90. ɹBizDevOpsͷଅਐ - ૣ͗ͨ͢ࢪࡦ 1. νʔϜϏδϣϯɺΫϨυɺ։ൃKPIͷࡦఆ • Ծઆɿ໨ඪ૾΍ج४͕͋Ε͹վળͷํ޲ੑ͕ݟ͑ͯϝϯόʔ͕ࣗൃతʹಈ͚Δ
 • ݁ՌɿϚΠφεΛθϩʹ͍ͯ͠Δ్தͳͷͰɺকདྷͷֆۭࣄɾݱ࣮ຯ͕ͳ͍៉ྷࣄ 2.

    Ϗδωεߏ଄ɾঢ়گʹ͍ͭͯͷษڧձ • Ծઆɿ୲౰֎ͷۀ຿΍෼໺ͷ࿩Λฉ͘͜ͱͰBiz΁ͷછΈग़͠Λޙԡ͠Ͱ͖Δ
 • ݁Ռɿ໘നͦ͏͚ͩͲࠓ͸ͦΕͲ͜ΖͰ͸ͳ͍ͷͰϑϥετϨʔγϣϯ → ࠷ۙʹͳͬͯ࠶νϟϨϯδ • ʮ2าઌΛݟਾ্͑ͨͰɺ1าઌΛଅ͘͢Β͍͕ͪΐ͏Ͳ͍͍ʯ by ϝϯλʔ  7JTJPO .JTTJPO 7BMVF
  91. ɹࢀߟࢿྉ ॻ੶ɾPDF ʰϦʔϯ։ൃͷຊ࣭ - ιϑτ΢ΤΞ։ൃʹ׆͔͢7ͭͷݪଇʱɹʰεΫϥϜΨΠυ - εΫϥϜ׬શΨΠυ: ήʔϜͷϧʔϧʱ
 ʰ૊৫ύλʔϯ -

    νʔϜͷ੒௕ʹΑΓΞδϟΠϧιϑτ΢ΣΞ։ൃͷมֵΛଅ͢ʱʰΤΫετϦʔϜϓϩάϥϛϯά - Embrace Changeʱ
 ʰ΢ΣϒΦϖϨʔγϣϯ - αΠτӡ༻؅ཧͷ࣮ફςΫχοΫʱʰڧ͍ձࣾ͸͜͏ͯ͠࡞ΒΕΔʂ - ITIL࣮ફͷమଇʱ 
 εϥΠυ
 • ݁ՌతʹεΫϥϜʹͳͬͯΔʂͳͷ͕͍͍ͱࢥ͏ʂɹhttps://speakerdeck.com/bufferings/jie-guo-de-nisukuramuninatuteru-nafalsegaiitosi-u-number-rsgt2017
 • ޮՌతͳࣗಇԽΛ໨ࢦ͢ʂ Value Stream Mapping ࣮ફϫʔΫγϣοϓ https://docs.com/ushio-tsuyoshi/8263 • ৽نࣄۀ͕ରቂ͢Δݱ࣮͔ΒΤϯδχΞϦϯάΛ၆ᛌ͢Δ https://www.slideshare.net/i2key/devsumib
 • αʔϏεϨϕϧɿઃܭͱӡ༻ͷϓϥΫςΟε http://yuzutas0.hatenablog.com/entry/2017/05/23/073000 • ΤεΧϨΛࢧ͑Δٕज़ - ΞδϟΠϧͳใ࿈૬ͱ৘ใྲྀ௨ http://yuzutas0.hatenablog.com/entry/2017/08/10/090000
 • DevOpsͱυΩϡϝϯτσβΠϯύλʔϯ http://yuzutas0.hatenablog.com/entry/2017/07/06/083000
 • JupyterͱBigQueryʹΑΔσʔλ෼ੳج൫ͷDevOps http://yuzutas0.hatenablog.com/entry/2017/09/12/203000  IUUQFDOJLLFJCQDPKQJUFNCPPLT1IUNM
  92. ɹSpecial Thanks ൴Βͷ৺ڧ͍ࢧ͕͔͑͋ͬͨΒͦ͜ɺνʔϜཱͯ௚͠ʹઐ೦͢Δ͜ͱ͕Ͱ͖·ͨ͠ɻ
 ຖ೔ͷ ٽ͖ࣄ ૬ஊʹ೪Γڧ͘ରԠ͠ଓ͚ͯͩͬͨ͘͜͞ͱΛײँ͓ͯ͠Γ·͢ɻ
 Satoshi UejimaɹɹࢸΒͳ͔ͬͨ఺ΛཪͰϑΥϩʔ͍͖ͨͩ·ͨ͠ɻʮ΋͏ແཧͬ͢ʯͷ౓ʹɺ
 ɹɹɹɹɹɹɹɹɹ ݟ͍ۤ͠ݴ͍༁ͷ1ͭ1ͭͱஸೡʹ޲͖߹ͬͯ͘Εͨ࠷ߴͷ্࢘Ͱͨ͠ɻ


    Itsuki KurodaɹɹɹνʔϜͷ࣮৘΍จ຺Λ౿·্͑ͨͰɺվળͷଧͪखɾਐΊํʹ͍ͭͯ
 ɹɹɹɹɹɹɹɹɹ ຊ࣭త͔ͭੜ࢈తͳΞυόΠεΛ͍͖ͨͩ·ͨ͠ɻ 
 Kenichi Takahashiɹ૊৫໘Ͱͷ੯͠Έͳ͍όοΫΞοϓΛ௨ͯ͠
 ɹɹɹɹɹɹɹɹɹ ج൫੔උ΍Ҋ݅։ൃͷيಓ͕৐ΔΑ͏ʹαϙʔτ͍͖ͨͩ·ͨ͠ɻ