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

失敗から学ぶBtoB SaaSでカオスを招かない個社カスタマイズ開発の考え方 #開発話

失敗から学ぶBtoB SaaSでカオスを招かない個社カスタマイズ開発の考え方 #開発話

BtoBなWebアプリケーションを開発してSaaSとして提供していると、お客様から「弊社の業務フローの都合でここを変更して欲しいのですが」という相談?要望?恫喝?を受けることがあります。
もちろんお金を払ってくれる大事なお客様なのですべての要望にお応えしたいのですが、無秩序にすべてを受け入れてカスタマイズすればコードもプロダクトもどんどん複雑になって、カオスと化してしまいます。
私自身、カオスになったプロダクトを見てきましたし、自分でもたくさんのカオスを作ってしまいました。
その失敗経験を踏まえ、

- 自社のプロダクトの軸
- 今後の他のカスタマイズの余地

を考えながらカオスを防ぎつつ個社カスタマイズを実装していく考え方をお話しします。
https://connpass.com/event/281786/

Hiromi Hishida

May 16, 2023
Tweet

More Decks by Hiromi Hishida

Other Decks in Programming

Transcript

  1. UI.BZ $FSFT-JOLBHFษڧձ CZ!XFC
    ࣦഊ͔ΒֶͿ#UP#4BB4ͰΧΦεΛট
    ͔ͳ͍ݸࣾΧελϚΠζ։ൃͷߟ͑ํ

    View Slide

  2. w 1)1FSྺ೥
    w ೥ʙ೥ϑϦʔϥϯε։ൃऀ
    w ೥ʙ೥݄ʢגʣΧϧςοτίϛϡχέʔγϣϯζΤϯ
    δχΞɾϦʔυΤϯδχΞɾϚωʔδϟʔʢೝఆεΫϥϜϚελ
    ʔʣ
    w #UP#ͷ޿ࠂӡ༻ޮ཰ԽπʔϧΛ࡞͍ͬͯ·ͨ͠
    w ೥݄ʙʢגʣϦϯέʔδΤϯδχΞ
    w #UP#ͷ༧๷ҩྍϓϩμΫτΛ࡞͍ͬͯ·͢
    w ೔ຊ4ZNGPOZϢʔβʔձ /BHPZBQIQ
    w ໊ݹ԰ࡏॅʢ݄͔Β͸݄ʙճ͙Β͍౦ژʹདྷͯ·͢ʣ
    w ໌೔1)1ษڧձ!౦ژͰ-5͠·͢ʮ৽ਓ1)1FS޲͚ѹ౗తʹࠩΛ͚ͭΔ
    ࢓ࣄͷਐΊํʯ
    w ݄ʹ1)1ΧϯϑΝϨϯε෱ԬͰ-5͠·͢ʮ.71͔Β࡞ΔʯͬͯͲ͏͍
    ͏͜ͱʁ
    ࣗݾ঺հ
    ঁੑͷ݈߁՝୊αϙʔτ
    GFNDMF
    ͔͔Γ͚ͭอ݈ࢣGPS-*/&
    ϝϯλϧ΢ΣϧωεαʔϏε
    SBTJLB

    View Slide

  3. #UP#4BB4ͷݸࣾΧελϚΠζ
    w ʮ˓˓ʯͱ͍͏߲໨໊ɺ΢νͷࣾ಺༻ޠͩͱʮ˕˕ʯͱݺΜͰΔΜͰɺม͑ΒΕ·
    ͤΜ͔ʁ
    w ΢ν͸Ϛʔδϯܭࢉ͕಺ֻ͚ͳͷͰ಺ֻ͚ܭࢉʹͰ͖·ͤΜ͔ʁ
    w ϫʔΫϑϩʔΛ"ˠ#ˠ$Ͱͳ͘"ˠ$ˠ#ʹม͍͑ͨɺϫʔΫϑϩʔͷ"ͱ#ͷؒʹ
    %Λ௥Ճ͍ͨ͠
    w ΢ν͸ଞࣾͱ͸Ұຯҧ͏࣠Ͱ෼ੳͯ͠ΔͷͰɺ͜͏͍͏৽͍͠෼ੳը໘͕΄͍͠ʂ
    w ΢νͷج൫γεςϜͱ࿈ܞ͍ͨ͠

    View Slide

  4. #UP#4BB4ͷݸࣾΧελϚΠζ
    w ೔ຊاۀɺύοέʔδʹ࢓ࣄΛ߹ΘͤΔͷͰͳ͘࢓ࣄʹύοέʔδΛ߹Θͤ
    Α͏ͱ͕ͪ͠໰୊

    View Slide

  5. #UP#4BB4ͷݸࣾΧελϚΠζ
    w JGจ͕࿈ͳΔϏϡʔ
    w ෳࡶոحʹJGจ͕ೖΓ૊ΜͩΫϥε
    w ૿͑ଓ͚Δར༻ऀ͕গͳ͍ػೳɾը໘
    ͭͭ͸খͯ͘͞΋ɺͨ͘͞Μͷձࣾͷཁ๬ʹԠ͍͑ͯ͘ͱνϦπϞͰେมͳ͜ͱʹ🥶

    View Slide

  6. #UP#4BB4ͷݸࣾΧελϚΠζ
    ʮ΍Δͳʯ
    CZͦʔ͍ͩ͞ΜʢͷษڧձͰͷηογϣϯΑΓʣ

    View Slide

  7. ͦΕͰ΋ɺ͞·͟·ͳࣄ৘Ͱ΍Βͳ͚Ε͹ͳΒͳ͍ͱ͖͸͋Δʢྦʣ
    w ʮ΍Βͳ͍ͱܖ໿ͯ͋͛͠ͳ͍Αʯ
    w ʮ΍Βͳ͍ͱղ໿ͪ͠Ό͏Αʯ
    w ʮڝ߹ϓϩμΫτͰ͸Ͱ͖Δͷʹʯ

    View Slide

  8. ࣦഊΛආ͚ΔݸࣾΧελϚΠζͷݪଇ
    " ΧελϚΠζΛҰൠతͳػೳͷόϦΤʔγϣϯ·Ͱঢ՚͢Δ
    # ΧελϚΠζΛ֎͠΍͘͢͢Δ

    View Slide

  9. "ҰൠతͳػೳͷόϦΤʔγϣϯ·Ͱঢ՚͢Δͱ͸
    w 9ࣾͷͨΊ͚ͩͷΧελϚΠζ͡Όͳ͘͢Δ
    w ͨͱ͑͹ɺʮ߲໨໊Λม͑ͯ΄͍͠ʯͱ͍͏ཁ๬ͳΒɺʮ߲໨໊ઃఆػೳʯ
    ʹͪ͠Ό͏ɻ:ࣾ΋;ࣾ΋จݴม͍͑ͨਓ͸ࣗ෼Ͱઃఆͯ͠΋Β͏ɻ࠷ॳʹ࡞
    ͬͨ࣌ͷ߲໨͸͋͘·Ͱ΋σϑΥϧτ߲໨໊ͳ͚ͩɻ
    w ͨͱ͑͹ɺʮܭࢉํ๏Λม͑ͯ΄͍͠ʯͱ͍͏ཁ๬ͳΒɺʮܭࢉํ๏બ୒ػ
    ೳʯʹͪ͠Ό͏ɻ

    View Slide

  10. "ҰൠతͳػೳͷόϦΤʔγϣϯ·Ͱঢ՚͢Δ΍Γํ
    w 9ࣾͷཁ๬͸9͚ࣾͩͷಠࣗϧʔϧͳͷ͔ɺ9ࣾͷۀք΍Ϗδωε঎श׳ͱͯ͠Ұ
    ൠతͳϧʔϧͳͷ͔Λௐ΂ΔɻυϝΠϯ஌ࣝΛֶͿɻ
    w 9͚ࣾͩͰͳ͘:ࣾɾ;ࣾʹ΋ώΞϦϯά͢Δɻ
    w ຊΛಡΉ
    w ۀքͷηϛφʔΛड͚ͯΈΔ
    w ۀքͷࢿ֨ΛऔͬͯΈΔ
    w աڈʹʮ͢ΔͳʂʯͰ٫Լͨ͠ސ٬ཁ๬ͷதʹྨࣅͷ΋ͷ͸ͳ͍͔ʁ

    View Slide

  11. "ҰൠతͳػೳͷόϦΤʔγϣϯ·Ͱঢ՚͢Δ΍Γํ
    w ཁ๬Λந৅Խ͢Δ
    w ཁ๬Λฉ͍ͯ୹བྷతʹจݴ΍ܭࢉํ๏Λม͑Δલʹɺʮͳͥͦͷཁ๬͕ग़
    ͍ͯΔ͔ʁʯΛਘͶΔɻߟ͑Δɻௐ΂Δɻ
    w ʮސ٬͸Ͳ͏ͳͬͨΒIBQQZͳͷ͔ʁʯʹऔΓ૊Ήɻ
    w ͨ·ʹʮͳΜͱͳ͘ݴͬͯΈ͚ͨͩʯʮ͍ܰؾ࣋ͪͰʯʮͦͷ৔ͷؾ෼
    Ͱʯͱ͍͏ސ٬΋͍ΔͷͰ😇㘤͘ͷ͸ॏཁ

    View Slide

  12. #֎͠΍͘͢͢Δͱ͸
    w ΧελϚΠζ։ൃͨ͠ػೳ͸ޙ͔Βෆཁʹͳͬͨͱ͖ͷͨΊʹ࡟আ͠΍͘͢͠
    ͓ͯ͘
    w ΧελϚΠζ։ൃͯ͠΋ղ໿͞ΕΔ͜ͱ͸͋ΔͷͰɻ

    View Slide

  13. #֎͠΍͘͢͢Δ΍Γํ
    w JOUFSGBDFΛ࢖ͬͯσϑΥϧτػೳͱΧελϜػೳΛ۩৅ͷόϦΤʔγϣϯͱ
    ͯ͠ѻ͍ɺ੾Γସ͑Δʢ͓࢖͍ͷݴޠʹΑͬͯ͸JOUFSGBDFͱ͸༻ޠ͕ҧ͏
    ͔΋ʣ
    w ίϯύΠϧλΠϜͰ੾Γସ͍͑ͨͱ͖͸%*
    w ϥϯλΠϜͰ੾Γସ͍͑ͨͱ͖͸ετϥςδʔύλʔϯ
    IUUQTTQFBLFSEFDLDPNIJEFOPSJHPUPTPMJEGBMTFZVBO[FUVUFEPOOBIVVOJTIJVGBMTFPQVOLVSP[VEPGBMTFZVBO[FCJBOLVPEBCBO

    View Slide

  14. #֎͠΍͘͢͢Δ΍Γํ
    w ʮ୭޲͚ͷΧελϚΠζ͔ʁʯ͕Θ͔Δ໊લΛ͚ͭΔ
    w $VTUPN)PHF4FSWJDFͰͳ͘-JOLBHF)PHF4FSWJDF $FSFT)PHF4FSWJDF
    w ͪΌΜͱந৅Խͯ͠όϦΤʔγϣϯʹঢ՚Ͱ͖͍ͯΕ͹
    )FBMUI$BSF$PNQBOZ)PHF4FSWJDFͱ͔
    .BSLFUJOH$PNQBOZ)PHF4FSWJDFΈ͍ͨʹʮۀछʯͩͬͨΓɺ
    /BHPZB$PNQBOZ)PHF4FSWJDFΈ͍ͨʹʮ஍ҬʯͩͬͨΓɺͳΜΒ͔ͷଐ
    ੑͰΧςΰϥΠζ͞Ε͍ͯΔ͔΋

    View Slide

  15. ·ͱΊ
    w #UP#4BB4ͰݸࣾΧελϚΠζ͸ʮ΍Δͳʯʂ
    w Ͳ͏ͯ͠΋΍Βͳ͚Ε͹͍͚ͳ͍ͱ͖͸ɺࣦഊΛආ͚ΔݸࣾΧελϚΠζͷ
    ݪଇΛ࣮ફ͠Α͏ɻ
    w ΧελϚΠζΛҰൠతͳػೳͷόϦΤʔγϣϯ·Ͱঢ՚͢Δ
    w ΧελϚΠζΛ֎͠΍͘͢͢Δ

    View Slide