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

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

Avatar for yuzutas0 yuzutas0
October 13, 2017

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

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

Avatar for yuzutas0

yuzutas0

October 13, 2017
Tweet

More Decks by yuzutas0

Other Decks in Technology

Transcript

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

    presented by @yuzutas0  IUUQTXXXQFYFMTDPNQIPUPDPMMFBHVFTDPPQFSBUJPOpTUCVNQpTUT
  2. ɹSho Yokoyama (@yuzutas0) ɹɹ 
 
  • ϦΫϧʔτςΫϊϩδʔζ •

    ೝఆεΫϥϜϚελʔ • ΤϯδχΞνʔϜͷ্ཱͪ͛ɾཱͯ௚͠
  3. ɹ“1→10” ʹඋ͑ͨ࠶ߏங ϐʔΫ࣌ؒଳͷϨεϙϯελΠϜΛ0.05secʹ400ഒͷվળ ɹɹɹɹɹɹɹɹɹɹɹɹΦϯϓϨ  ϨϯμϦϯάHTMLͱ
 jQueryͷଟॏಡࠐ
 → VirtualDOMɾSPA
 ʢඇಉظϕʔεͷ௨৴ʣ

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

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

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

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

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ τϥϒϧ ମྗɾϝϯλϧʹ௚ܸ ๷͗Α͏͕ͳ͍
  8.  ɹͲͷ͘Β͍ ”΍͹͍” Ϩϕϧ͔ SLA ػೳ ηΩϡϦςΟɾ๏཯ ίΞػೳ αϒػೳ ඇػೳ

    ৴པੑɾՄ༻ੑ ੑೳɾΩϟύγςΟ OLA ʴ 
 Өڹൣғ ར༻ऀ਺ɾγΣΞ཰ ࣌ؒଳ αϙʔτ؀ڥ ʹ 
 ରԠ଎౓ ଈ࣌ରԠ - ϕετΤϑΥʔτ ༏ઌରԠʢʼػೳ௥Ճʣ ௨ৗରԠʢʹػೳ௥Ճʣ ӡ༻ ఆظతͳධՁ → ࠶ൃ๷ࢭ + ࣄલ༧๷ αʔϏεϨϕϧఆٛࣗମͷݟ௚͠ ࢀরʰαʔϏεϨϕϧɿઃܭͱӡ༻ͷϓϥΫςΟεʱ http://yuzutas0.hatenablog.com/entry/2017/05/23/073000
  9. ɹDev&OpsͰੜͨ͡௧Έ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

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

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

    νʔϜͱͯ͠ “໰୊” ͷݕ஌ɾղܾ͕Ͱ͖͍ͯͳ͍  ɹܧଓతͳ՝୊ͷݕ஌͕Ͱ͖͍ͯͳ͍ IUUQXXXJSBTVUPZBDPNCMPHQPTU@IUNM
  12. νʔϜ಺෦ͷձ࿩Λ׆ੑԽ → ಁ໌ੑΛอͭ → ݕࠪɾదԠͷαΠΫϧΛճ͢ ɹεϓϦϯτηϨϞχʔΛ։࠵  What ԿΛ͢Δ͔ How

    Ͳ͏΍ͬͯ͢Δ͔ ि࣍ϨϏϡʔ ࡞ۀ݁ՌϑΟʔυόοΫ σΠϦʔMTG ࡞ۀͷ࠶ܭը ि࣍ϓϥϯχϯά Ҋ݅ͷ࠶ܭը ϨτϩεϖΫςΟϒ ϓϩηεͷ࠶ܭը What ԿΛ͢Δ͔ How Ͳ͏΍ͬͯ͢Δ͔
  13. ɹTryͱͯ͠ϓϥΫςΟεΛঃʑʹಋೖ ݱ৔͕ແཧͳ͘ड͚ೖΕΒΕΔॱ൪ͰΞδϟΠϧख๏Λద༻ʢ͍͖ͳΓεΫϥϜͩͱ਎ߏ͑ΒΕΔʣ  1౓ʹ͋Ε΋͜Ε΋
 ରԠ͢Δͷ͸ແཧͩʂ ༏ઌॱҐͷΩϡʔ؅ཧ
 όοΫϩάΛಋೖ Problem Try Ωϡʔͷݟ௚͠Λ


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

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

    Ϛωδϝϯτձٞ Ͱ
 ্Ґ૚ʹαϚϦʔใࠂ ͦͷProblem͸
 νʔϜ಺ͰରॲՄೳ͔ʁ Yes No ࢀরʰΤεΧϨΛࢧ͑Δٕज़ - ΞδϟΠϧͳใ࿈૬ͱ৘ใྲྀ௨ʱ http://yuzutas0.hatenablog.com/entry/2017/08/10/090000 Lean Escalation ͷ࠲૊Έ
  16. ɹDev&OpsͰੜͨ͡௧Έ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

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

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ KPTΛ௨ͯ͠՝୊͕ු্ ʢνʔϜͷॏ఺՝୊ͱͯ͠߹ҙܗ੒ʣ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁ ہॴ࠷ద
  18. ͋ΒΏΔ։ൃɾӡ༻ۀ຿ͷɺ͋ΒΏΔ޻ఔʹ
 ͋ΒΏΔProblem͕Ϛοϐϯά͞Εͨ ཁٻ੔ཧ ཁ݅ఆٛ ઃܭ ੡଄ ࢼݧ ग़ՙ ӡ༻ Problem

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


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

    ֤୲౰ऀ͕આ໌͠ͳ͕Βۀ຿ͷྲྀΕΛॻ͘
 • “ϜμɾϜϥɾϜϦ” ΍ ”ϝϯόʔؒͷೝࣝͷࠩ෼” ΛՄࢹԽ
 • ·͞ʹਐߦதͩͬͨҊ݅ͷϦεΫΛͦͷ৔Ͱݕ஌Ͱ͖ͨʢ੒ޭମݧʣ  ɹશһࢀՃܕϫʔΫγϣοϓ͔Β࢝ΊΔ ࣮෺͸Ԛ͍Ͱ͢ʜʜ
  21. ɹDev&OpsͰੜͨ͡௧Έ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

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

    ૝ఆ֎ͷ࢓༷
 ߟྀෆ଍ͷ։ൃ
 ͦͷ৔྇͗ͷӡ༻ γεςϜো֐ͷଟൃ
 ػೳ௥Ճͷ஗Ԇ
 ਂ໷ରԠɾٳ೔ग़ࣾͷৗଶԽ 
 “0→1” ͷ࣌ݶര஄ 
 ஌ࣝܧঝͳ͖νʔϜ֦େ ͞ΒͳΔ඼࣭ѱԽͷݒ೦ τϥϒϧ ർฐ ہॴ࠷ద ඼࣭ྼԽ KPTΛ௨ͯ͠՝୊͕ු্ ʢνʔϜͷॏ఺՝୊ͱͯ͠߹ҙܗ੒ʣ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁ ہॴ࠷ద
  23. 
 • ϝϯόʔ͕ओମతʹจॻԽ → ผͷ৔ॴʹࣅͨυΩϡϝϯτ͕ॏෳ ɹ࣮ྫ: A͞Μ͕ো֐Λड͚ͯϦϦʔεखॱॻΛߋ৽ → B͞Μ͸ผͷखॱॻͰಉ͡ϛε →

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

    ·͞ʹϨΨγʔίʔυͱಉ͡
 ର৅͕ࣗવݴޠʢ΋͘͠͸දɾਤʣʹͳ͚ͬͨͩʂ
 ↓
 ઃܭɾमਖ਼ͷ΍Γํ΋ϓϩάϥϛϯάͱಉ͡Ͱ͸ʁ
  25. ɹDocument as Code - υΩϡϝϯτΛιʔείʔυͷΑ͏ʹѻ͏ ɹ • ϘʔΠεΧ΢τݪଇɿ๚Εͨϝϯόʔ͕Ճචɾमਖ਼
 ɹɹɹɹɹจॻΛݟΔલΑΓ΋ɺݟͨޙͷ΄͏͕៉ྷͳঢ়ଶͱͳ͍ͬͯΔͷ͕๬·͍͠
 ɹ

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

    όʔδϣϯ؅ཧ
  ɹυΩϡϝϯτΛίʔυͷΑ͏ʹѻ͏16ͷύλʔϯ (Document Design Pattern) 
 • ΞʔΩςΫτνʔϜ
 • ίϯ΢ΣΠͷ๏ଇ
 ମ੍ͷύλʔϯ 
 • ٕज़తෛ࠴
 • ϙʔτϑΥϦΦ
 • ίʔσΟϯάΛଅ͢
 • ίʔυϨϏϡʔ
 • ϘʔΠεΧ΢τ
 • Rule of Three จԽͷύλʔϯ 
 • MVCϞσϧ
 • GoFσβΠϯύλʔϯ
 • ܧଓతσϦόϦʔ /
 ΠςϨʔγϣϯ ߏ੒ͷύλʔϯ ࡞ۀͷύλʔϯ ˞ମ੍΍จԽ͸σβΠϯʢઃܭʣʹӨڹΛ༩͑ΔͷͰσβΠϯύλʔϯʹؚΊ͍ͯ·͢ ࢀরʰDevOpsͱυΩϡϝϯτσβΠϯύλʔϯʱ http://yuzutas0.hatenablog.com/entry/2017/07/06/083000
  27. ɹDev&OpsͰੜͨ͡௧Έ  ػೳෆશͷѱ॥؀ ϓϨογϟʔ → “୲౰ऀͷ੹೚”
 ໨ઌͷ࡞ۀΛͲ͏ʹ͔͠ͳ͚Ε͹ ޓ͍ͷ࢓ࣄΛ஌Βͳ͍
 αϙʔτɾϨϏϡʔͰ͖ͳ͍
 ୲౰ऀ͚ͩͰࣗݾ׬݁

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

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

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

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

    ஌ࣝͷܧঝ 
 γεςϜো֐: 0.5݅/݄ʹݮগ
 ܰඍͳෆ۩߹: ਂ໷ٳ೔ରԠ͸0ʹ ҆ఆԽ 
 ηϨϞχʔʹΑΔݕࠪͱదԠ
 VSM/υΩϡϝϯτʹΑΔۀ຿ܕԽ ՄࢹԽ 
 ୲౰֎ϝϯόʔ͕ॿݴɾαϙʔτ
 ࣄલʹ໰୊఺Λݕ஌→඼࣭༧๷ શମ࠷ద ঃʑʹݮΔ
  32. 1. ૣ͍ஈ֊Ͱ༏लͳएखࣾһΛԿ໊͔ଞ෦ॺ͔ΒҾ͖ൈ͍ͨ
 2. ൑அج४ͱͨ͠ਓࡐཁ݅ = അྗ͕͋Δ͜ͱ
 ɹ • ໰୊ఏىɾվળਪਐͰ͖Δࣗൃੑɹ͜ͷΞαΠϯ͸ਪਐ໾Λ૿΍ͨ͢ΊͷଧͪखͳͷͰ
 ɹ

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


    
 εςʔΫϗϧμʔશମͱͷѲΓ͸ऑ͔ͬͨ ɹ • ঢ়گ͕ঢ়گͳͷͰʮνʔϜ಺ͷ՝୊Λ੾Γ։͘͜ͱʯʮ্Ґ૊৫ʹ఻ୡ͢Δ͜ͱʯ͕࠷༏ઌ
 ɹ • ֎͔Βͷݟ͑ํ͸ʮো֐Λग़ͨ͠ɾ։ൃ͕஗Ε͍ͯΔͷʹɺखΛࢭΊͯϫʔΫγϣοϓΛ࢝ΊΔνʔϜʯ
 ɹ • ݏຯΛݴΘΕͨͷ͸1౓΍2౓Ͱ͸ͳ͍ → ͜ͷѹྗ͕ѱ॥؀ͷਅҼ → कΓखͱͯ͠ͷΤϯδχΞ෦ॺͷҙٛ
 
 ্Ґ૊৫ˍଞ෦ॺϝϯόʹཪͰϑΥϩʔ͍ͨͩ͘ܗͱͳͬͨ ɹ • ಛʹʮ։ൃܦݧ͋ΓʯʮϏδωε෦໳ʹॴଐʯͷϝϯόʔ͕؇িࡐͱͳͬͨͷ͕େ͖͍
  34. ɹProduct Growth εϐʔυײΛେࣄʹ͢Δ • ര஄Λආ͚ͳ͕Βલʹ૸Γଓ͚Δͱ͍͏͜ͱ
 • ര஄ʹࣗ෼͔ΒಥͬࠐΉ͜ͱͰ͸ͳ͍ → ෛই͢Δ΄Ͳ஗͘ͳΔ ΤϯδχΞ͔ͩΒͦ͜ؾ෇͚Δ͜ͱ

    • ʮ͜͜͸যͬͯ͸μϝͩʂʯʮര஄ͩʂஸೡʹਐΉͧʂʯͱ͍͏৔໘
 • खΛಈཱ͔͢৔ʢ͔ͭͯखΛಈ͔ͨ͠ܦݧऀʣͰͳ͍ͱ෼͔Βͳ͍
 • ٸ੒௕ϓϩμΫτͰ͸ͦͷ৔໘͕ͻͨ͢Βଓ͘  IUUQTXXXQFYFMTDPNQIPUPDBSFGSFFDIJMEDIJMEIPPEDPVOUSZTJEF
  35. ɹBizDevOpsͷଅਐ - ૣ͗ͨ͢ࢪࡦ 1. νʔϜϏδϣϯɺΫϨυɺ։ൃKPIͷࡦఆ • Ծઆɿ໨ඪ૾΍ج४͕͋Ε͹վળͷํ޲ੑ͕ݟ͑ͯϝϯόʔ͕ࣗൃతʹಈ͚Δ
 • ݁ՌɿϚΠφεΛθϩʹ͍ͯ͠Δ్தͳͷͰɺকདྷͷֆۭࣄɾݱ࣮ຯ͕ͳ͍៉ྷࣄ 2.

    Ϗδωεߏ଄ɾঢ়گʹ͍ͭͯͷษڧձ • Ծઆɿ୲౰֎ͷۀ຿΍෼໺ͷ࿩Λฉ͘͜ͱͰBiz΁ͷછΈग़͠Λޙԡ͠Ͱ͖Δ
 • ݁Ռɿ໘നͦ͏͚ͩͲࠓ͸ͦΕͲ͜ΖͰ͸ͳ͍ͷͰϑϥετϨʔγϣϯ → ࠷ۙʹͳͬͯ࠶νϟϨϯδ • ʮ2าઌΛݟਾ্͑ͨͰɺ1าઌΛଅ͘͢Β͍͕ͪΐ͏Ͳ͍͍ʯ by ϝϯλʔ  7JTJPO .JTTJPO 7BMVF
  36. ɹࢀߟࢿྉ ॻ੶ɾ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
  37. ɹSpecial Thanks ൴Βͷ৺ڧ͍ࢧ͕͔͑͋ͬͨΒͦ͜ɺνʔϜཱͯ௚͠ʹઐ೦͢Δ͜ͱ͕Ͱ͖·ͨ͠ɻ
 ຖ೔ͷ ٽ͖ࣄ ૬ஊʹ೪Γڧ͘ରԠ͠ଓ͚ͯͩͬͨ͘͜͞ͱΛײँ͓ͯ͠Γ·͢ɻ
 Satoshi UejimaɹɹࢸΒͳ͔ͬͨ఺ΛཪͰϑΥϩʔ͍͖ͨͩ·ͨ͠ɻʮ΋͏ແཧͬ͢ʯͷ౓ʹɺ
 ɹɹɹɹɹɹɹɹɹ ݟ͍ۤ͠ݴ͍༁ͷ1ͭ1ͭͱஸೡʹ޲͖߹ͬͯ͘Εͨ࠷ߴͷ্࢘Ͱͨ͠ɻ


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