$30 off During Our Annual Pro Sale. View Details »

Feature FlagsのDX/UXの 頂点「 DevCycle 」に 辿り着くまでの道のり

Feature FlagsのDX/UXの 頂点「 DevCycle 」に 辿り着くまでの道のり

Gunther Brunner

October 26, 2023
Tweet

More Decks by Gunther Brunner

Other Decks in Programming

Transcript

  1. 'FBUVSF'MBHTͷ%969ͷ
    ௖఺ʮ %FW$ZDMF ʯʹ
    ḷΓண͘·ͰͷಓͷΓ
    (ÛOUIFS#SVOOFSʢϒϧϯφʔάϯλʣ

    View Slide


  2. ࣗݾ঺հ
    r จ෦Պֶলͷࠃඅ֎ࠃਓཹֶੜͱͯ͠དྷ೔ཹֶ
    r 6Q'SPOUJFSʢגʣ
    ΫϦΤΠςΟϒσΟϨΫλʔɾΤϯδχΞ
    r ʢגʣ$ZCFS"HFOU
    ϑϩϯτΤϯυ։ൃ
    r 0QFO45'ɿ044Λاըɾશൠ։ൃ
    r )BZBCVTBɿࣾ಺4BB4ΛاըɾϚωδϝϯτ
    r ϦϞͯͳ͠ɿϑϩϯτΤϯυɾ%FW0QT
    r ʢגʣ"*4IJGU
    --.Λ׆༂ͨ͠ϓϩμΫτσβΠϯɾΤϯδχΞ
    @gunta85

    View Slide

  3. 0QFO45'
    0 Q F O 4 P V S D F

    View Slide

  4. "OESPJEの実機を
    リアルタイムに操作
    年に企画・開発
    テスト自動化用の"1*
    も用意

    View Slide



  5. ຊ೔ͷ
    'FBUVSF'MBHT
    ٕज़બఆͷಓͷΓ
    %FW$ZDMFͱ͸ %FW$ZDMF $50ͷ
    ٕज़ઓུ

    View Slide


  6. ٕज़બఆͷಓͷΓ
    $)"15&3

    View Slide

  7. View Slide


  8. 8FCQBDLͷॳ೔ຊޠهࣄΛهࡌ

    View Slide


  9. %FW$ZDMFͷॳ೔ຊޠهࣄΛهࡌ

    View Slide

  10. 3FRVJSF+4 8FCQBDL 7JUF

    ೔ຊͷٕज़࠾༻ฏۉ͸̎ʙ೥ͷ஗Ε

    View Slide


  11. ӳޠͰపఈతʹௐ΂ਚ͘͢
    ೔ຊޠͷهࣄ͸ͳ͍৔߹͕ଟ͍ɻ

    View Slide

  12. Stay on the shoulder
    of the giants
    •طଘͷٕज़Λར༻͢Δ͜ͱͰ
    ϝϯςϦεΫΛ௿ݮ
    •৽͍͠ंྠΛ࠶ൃ໌ͤͣʹɺۀքඪ४ͷ
    ٕज़΍ϑϨʔϜϫʔΫΛར༻
    Work Smarter,
    Not Harder
    ٕज़બఆ
    ͷ
    ॏཁੑ
    •ޮ཰తͳํ๏Ͱ໨ඪΛୡ੒͢Δ
    •ϨόϨοδΛޮ͔ͤͯɺ
    গͳ͍։ൃ޻਺Ͱେ͖ͳ੒ՌΛಘΔ

    View Slide

  13. View Slide

  14. View Slide

  15. ιϦϡʔγϣϯ
    3FTFBSDI
    &WFSZXIFSF
    "MM"U0ODF
    Ϧαʔν

    View Slide



  16. ཁ݅ఆٛ
    ϓϩδΣΫτͷχʔζΛ໌֬ʹ͢Δ
    ࢢ৔ௐࠪ
    طଘͷղܾࡦͱςΫϊϩδʔΛൺֱςʔϒϧ
    ʹ·ͱΊͯධՁ͢Δ
    ϢʔβʔϨϏϡʔͱ࣮ࡍʹ৮ͬͯΈΔ
    ࣮ࡍͷධՁͱϑΟʔυόοΫΛௐࠪ͠ɺ༗ྗީิΛ৮Δ
    Ұ೔Λ͔͚ͯ

    View Slide

  17. 4BB4
    ೔ຊͰ͸ϝδϟʔͳ4BB4Ҏ֎ɺ
    ಛʹݟམͱ͕ͪ͠

    View Slide

  18. 4BB4ͱ044ͷ
    ࠷௿ݶൺֱϙΠϯτ
    ίετ %9ʢ։ൃऀମݧʣ
    ΧελϚΠζՄೳੑ αϙʔτ 69ʢϢʔβମݧʣ

    View Slide



  19. ଍ΛҾͬுΒΕͳ͍ͨΊͷ
    ΞʔΩςΫνϟͷॏཁੑ
    εέʔϥϏϦςΟ
    কདྷతʹن໛͕େ͖͘ͳͬͨ࣌ɺ
    ଱͑ΒΕΔ͔
    ϨΠςϯγ
    ج൫ͱͳΔͨΊɺ
    શମͷϘτϧωοΫʹͳΒͳ͍͔
    %9ʢ։ൃମݧʣ
    ָ͘͠ɾΑΓ଎͘΍ΕΔ͜ͱʹΑͬͯ
    ੜ࢈ੑΛߴΊΒΕΔ͔

    View Slide


  20. 'FBUVSF'MBHT

    View Slide

  21. %03"ʢ'PVS,FZTʣ
    ͱ
    (PPHMF͕࣮ߦ͍ͯ͠Δ%FW0QT3FTFBSDI
    BOE"TTFTTNFOU %03"
    ͱ͍͏࠷େڃϦ
    αʔνϓϩάϥϜͷݚڀ݁ՌʹΑΔͱɺ։ൃ
    αΠΫϧͷεϐʔυ্͕͕ΔͱɺࣄۀՁ஋΋
    ্͕Δͱ͍͏͜ͱ͕໌Β͔ʹͳ͍ͬͯ·͢ɻ

    View Slide


  22. τϥϯΫϕʔε։ൃͷඞཁੑ
    トランクベース
    ߴ଎ͳ։ൃαΠΫϧΛ࣮ݱ͢ΔͨΊͷҰͭ
    ͷखஈͱͯ͠ɺτϥϯΫϕʔε։ൃ͕஫໨
    ͞Ε͍ͯ·͢ɻ
    ͔͠͠ɺτϥϯΫϕʔε։ൃΛಋೖ͢Δʹ
    ͸ɺϑΟʔνϟʔϑϥάͷٕज़͕ඞཁෆՄ
    ܽͰ͢ɻ
    ҆શ͔ͭਝ଎ʹ৽ػೳΛϦϦʔε͕Մೳͱ
    ͳΓ·͢ɻ
    リスク削減
    τϥϯΫϕʔε։ൃΛਐΊ͍ͯ͘͏ͪʹɺ
    Ϣʔβ΁ͷѱӨڹΛ࠷খݶʹ͢ΔͨΊʹɺ
    ʮ৽ػೳʯΛϑϥάԽ͠ಈతʹ؅ཧ͢Δ
    ඞཁੑ͕ग़͖ͯ·͢ɻ

    View Slide

  23. フィーチャー
    フラグの

    View Slide

  24. フィーチャー
    フラグの
    比較,1*
    ଟ͘ͷϑΟʔνϟʔϑϥάγεςϜ͕
    ଘࡏɻ
    ฐࣾͷ044ࣾ಺γεςϜͱͯ͠
    ʮ#VDLFUFFSʯɻ
    ༗໊ͳ4BB4ͱͯ͠ʮ-BVODI%BSLMZʯ
    ͳͲɺ༷ʑͳબ୒ࢶ͕͋Γ·͢ɻ

    View Slide

  25. Ձ֨
    ߴֹͳαʔϏε͕ଟ͍
    ࢖༻؀ڥ
    αʔόʔɺΫϥΠΞϯτɺϞόΠ
    ϧΞϓϦɺΤοδɺΦϯϓϨͳͲɺ
    ଟ༷ͳ؀ڥͰͷར༻͕Մೳ͔
    4%,ͷ๛෋͞
    νʔϜͰͷಋೖΛ༰қʹ͢Δ4%,
    ͷఏڙ
    ύϑΥʔϚϯε
    ௿ϨΠςϯγ͔Ͳ͏͔

    View Slide


  26. ࢖༻؀ڥ਺

    ఏڙ4%,਺
    NT
    ௿ϨΠςϯγ

    Ձ֨ɾྉۚମܥɾӡ༻ਓݖඅ

    View Slide

  27. 0QFO'FBUVSFඪ४ͱ͸
    ϑΟʔνϟʔϑϥά؅ཧͷΦʔϓϯͳελ
    ϯμʔυͰ͢ɻಛఆͷϕϯμʔґଘͳ͠ʹ
    "1*Λఆٛͨ͠Γ4%,Λఏڙ͠·͢ɻ
    ϑΟʔνϟʔϑϥάք۾ͷΤίγεςϜΛ
    ݎ࿚ʹൃలͤ͞Δ͜ͱΛ໨తͱ͍ͯ͠·͢ɻ
    ͜ͷඪ४ʹॱक͍ͯ͠Δϕϯμʔ͸ϩοΫ
    ΠϯΛ๷͗ɺඞཁͰ͋Ε͹͍ͭͰ΋ଞͷϕ
    ϯμʔʹ৐Γ׵͑Δ͜ͱ͕؆୯ʹͳΓ·͢ɻ
    とは?
    ロックインされない

    View Slide

  28. ೥ʢޙ൒ʣ
    'FBUVSF'MBHTͷ
    ϕϯμʔΛ
    ൺֱ͠·ͨ͠
    CZ (ÛOUIFS#SVOOFS

    View Slide



  29. ੈͷதͷϕϯμʔൺֱදʢݸʣ
    ϕϯμʔ
    αʔόʔ
    4%,
    ΫϥΠΞϯτ
    4%,
    ϦΞϧλΠϜ
    ߋ৽
    &EHFॲཧ
    0QFO
    'FBUVSF
    DevCycle
    LaunchDarkly
    ConfigCat
    Split.io
    Optimizely

    View Slide



  30. ੈͷதͷϕϯμʔൺֱදʢݸʣ
    ϕϯμʔ
    αʔόʔ
    4%,
    ΫϥΠΞϯτ
    4%,
    ϦΞϧλΠϜ
    ߋ৽
    &EHFॲཧ
    0QFO
    'FBUVSF
    VWO
    Statsig
    CloudBees
    Molasses
    Harness

    View Slide



  31. ੈͷதͷϕϯμʔൺֱදʢݸʣ
    ϕϯμʔ
    αʔόʔ
    4%,
    ΫϥΠΞϯτ
    4%,
    ϦΞϧλΠϜ
    ߋ৽
    &EHFॲཧ
    0QFO
    'FBUVSF
    Firebase
    Remote Config

    Growthbook
    AWS Evidently
    Bugsnag
    Posthog

    View Slide



  32. ੈͷதͷϕϯμʔൺֱදʢݸʣ
    ϕϯμʔ
    αʔόʔ
    4%,
    ΫϥΠΞϯτ
    4%,
    ϦΞϧλΠϜ
    ߋ৽
    &EHFॲཧ
    0QFO
    'FBUVSF
    Flagsmith
    Unleash
    Flipt
    Bucketeer
    Flargd

    View Slide

  33. ൺֱͨ͠
    ॴײ

    View Slide

  34. %FW$ZDMF
    ύϑΥʔϚϯεɺ%9ɺ
    69͕࠷΋༏ल
    -BVODI%BSLMZ
    ΠϯςάϨʔγϣϯ਺ɺ
    ख़੒౓ߴ͍͕ɺྉۚ΋
    1PTU)PH
    044΋͋Γɺόϥϯε
    औΕ͍ͯΔ
    4UBUTJH
    ྉۚମܥ͕ັྗ
    ࠾༻ͯ͠΋ྑ͍
    ͱఆੑධՁͨ͠
    4BB4

    View Slide

  35. 6OMFBTI
    044ͷதͰ੎͍͕࠷΋
    ͋Δ͕ɺ4BB4൛͸ߴ͍
    'MBH4NJUI
    4BB4൛͸ྑ৺తͳྉۚ
    #VDLFUUFS
    ฐ͔ࣾΒެ։͞Εͨ͹͔
    ΓͰظ଴ͷ044
    'MJQU
    γϯϓϧɺ
    4BB4൛͸ͳ͍
    ϝϯς͞Ε͍ͯ
    Δ044

    View Slide

  36. ϝϯς͞Ε
    ͳ͘ͳͬͨ
    044
    'MBSH
    5XP'MBHT
    ྆ํ044ͱ΋$MPVEGMBSF8PSLFSTΛલఏͱͨ͠
    &EHFΞʔΩςΫνϟͰ͕͢ɺ
    ࢒೦ͳ͕Βϝϯς͞Εͳ͘ͳΓ·ͨ͠ɻ

    View Slide

  37. (PPHMF'JSFCBTF
    3FNPUF$POGJH
    Ӭٱແྉ͸ັྃతɻ
    ϨΠςϯγٴͼαʔόʔ
    4%,͕ͳ͍౳ɺૉ๿త
    "84$MPVE8BUDI
    &WJEFOUMZ
    ྉ͚ۚͩ͸ັྃతɻ
    %9͸ෆࡏ
    (PPHMFͱ
    "NB[PO

    View Slide

  38. 69ͱ
    ϨΠςϯγͷॏཁੑ

    View Slide


  39. 69ͱϨΠςϯγɿNTͷน
    Edgeの時代が到来し、ユーザのUX体験がさらに重要と
    なった。ドハティの閾値の指標によると、ユーザの生産
    性が落ちないためのレスポンスタイムの上限は400msと
    されてきた。しかし、最近の人気アプリ(Figma、Linear
    やCron等)の反応速度の動向は、100ms以下になってい
    ます。一般的なフィーチャーフラグシステムでは、シス
    テムのアーキテクチャ上この100msを実現するのは難し
    い。一部のSaaSはUXを考慮して、Edgeにキャッシュを載
    せますが、DBや処理自体はEdgeではないです。
    そこで注目したいのが、エッジで実装されてるフィー
    チャーフラグシステム。
    &EHF$PNQVUJOHͱ0GGMJOF 'JSTU

    View Slide

  40. %FW$ZDMFͷ

    View Slide


  41. %FW$ZDMFͷొ৔
    Ϋϥ΢υΤοδͰͷ
    ߴ଎ͳϑΟʔνϟʔϑϥάγες
    ϜΛݟ͚ͭͨͷ͕ʮ%FW$ZDMFʯ
    Ͱ͢ɻ
    ཁ݅Λຬͨͨ͠

    View Slide



  42. %FW$ZDMFͷϝϦοτ
    NTҎԼͷϨΠςϯγ
    ߴ଎ͳϨεϙϯε
    4%,ͷ๛෋͞
    ಋೖ͕༰қ
    ྉۚମܕ
    ."6՝ۚͰ͕͢ɺՁ֨໘Ͱྑ৺తͳྉۚɻ
    ࢖͍΍͢͞
    %9ɾ69͕௚ײతɻ74$PEFͷ&YUFOTJPO΋
    ͋Δɻ

    View Slide



  43. %FW$ZDMFͷϝϦοτ
    ϦΞϧλΠϜߋ৽
    #VTJOFTTNPEFMEFTJHOHFOFSBMMZSFGFST
    UPUIFBDUJWJUZPGEFTJHOJOHBDPNQBOZT
    CVTJOFTTNPEFM
    0QFO'FBUVSFରԠ
    5IFQSPDFTTPGCVTJOFTTNPEFMEFTJHO
    JTQBSUPGCVTJOFTTTUSBUFHZ#VTJOFTT
    NPEFMEFTJHOBOEJOOPWBUJPOSFGFSUP
    EFGJOFTJUTCVTJOFTTMPHJD
    ϦΞϧλΠϜߋ৽
    44&ܦ༝Ͱߋ৽͞ΕΔ
    -PDBM#VDLFUJOH
    &EHFΑΓ΋ߋʹߴ଎ͳϩʔΧϧॲཧɻ

    View Slide


  44. ͷ
    ༏Εٕͨज़ઓུ
    $)"15&3

    View Slide



  45. ΞʔΩςΫνϟ

    View Slide



  46. &EHF'JSTUͱ8"4.
    %FW$ZDMFΛ։ൃ͍ͯ͠Δاۀ͸5BQMZUJDTࣾɻ
    5BQMZUJDTࣾ͸೥͔Β5BQMZUJDTͱ͍͏"#ςετͷ4BB4Λ։ൃ͖͕ͯͨ͠ɺ
    εέʔϥϏϦςΟɺϨΠςϯγٴͼ%9Λվળ͢ΔͨΊʹɺ%FW$ZDMFͱ͍ϓϩμΫτΛ։ൃ͢Δ͜ͱʹͳΓ·ͨ͠ɻ
    &EHF'JSTU
    ͢΂ͯΛ&EHFͰ࣮ߦͱ͍͏ΞʔΩ
    ςΫνϟʹ͠·ͨ͠ɻॲཧ͸
    $MPVEGMBSF8PSLFSTɺ%#͸
    .BDSPNFUBɺ44&ϓογϡ͸"CMZ
    ౳ͱɺࢥ͍੾ͬͨߴ଎΍&EHF'JSTU
    ͳٕज़બఆͷܾஅΛԼ͍ͯ͠·͢ɻ
    ΫϩεϓϥοτϑΥʔϜͷ4%,ͷύ
    ϑΥʔϚϯεΛ࠷େݶʹ͢ΔͨΊʹ
    ΋ຆͲ8"4.ʢ"TTFNCMZ4DSJQUʣ
    Ͱ࣮૷͞Ε͍ͯ·͢ɻ(Pͷ4%,ͩ
    ͚͸8FC"TTFNCMZͰ͸ͳ͘ɺߋʹ
    ߴ౓ͳϚϧνεϨουॲཧͷύ
    ϑΥʔϚϯεΛൃشͰ͖ΔͨΊʹω
    ΠςΟϒ(PͰ࣮૷͞Ε͍ͯ·͢ɻ
    8"4.

    View Slide


  47. ͷ
    αϙʔτ
    $)"15&3

    View Slide

  48. %FW$ZDMFͷ
    ·ͩ%FW$ZDMFʹ՝ۚͨ͜͠ͱ͕ͳ͍ʹ΋͔
    ͔ΘΒͣɺ
    ࣭໰ɾཁ๬͕͋ͬͨͷͰɺ%JTDPSEͰ౤͛ͯ
    ΈͨΒɺ਺࣌ؒ಺ʹ)FBEPG1SPEVDUʢ
    1E.ʣ͔Β௚઀ճ౴Λ௖͖ɺߋʹ௚ۙͷެ
    ։ϩʔυϚοϓʹ͢Ͱʹࡌ͍ͬͯΔͱڭ͑ͯ
    ͍͍ͨͩͨͷͰɺਆ଎ͳରԠͰ޷ײΛ࣋ͪ·
    ͨ͠ɻ

    View Slide

  49. ·ͱΊ

    View Slide

  50. ։ൃαΠΫϧεϐʔυ͸ࣄۀՁ஋ʹ௚݁
    5SVOL#BTF։ൃͱ
    'FBUVSF'MBHT͸͔ܽͤͳ͍
    ߴ·Δ69ͷظ଴ʹԠ͑ΔͨΊʹ
    %FW$ZDMFͷΑ͏ͳ
    ߴ଎γεςϜͷಋೖ͕伴
    ։ൃʹखΛग़͢લʹɺ
    ϦαʔνΛ͔ͬ͠Γ

    View Slide

  51. 3FTFBSDI&WFSZUIJOH
    &WFSZXIFSF"MM"U0ODF *O
    &OHMJTI
    (ÛOUIFS#SVOOFS

    View Slide

  52. View Slide


  53. "*4IJGUͰ͸Ұॹʹಇ͖͍ͨ
    ΤϯδχΞͷ࠾༻ʹྗΛೖΕ͍ͯ·͢ʂ
    ٕज़ྖҬ
    "*ΤϯδχΞʢ1ZUIPOɺ--.ʣ
    αʔόʔΤϯδχΞʢ(PMBOHɺ$MPVEGMBSF
    8PSLFSTʣ
    ϑϩϯτΤϯδχΞʢ5ZQF4DSJQUɺ3FBDUʣ
    オンライン・19時以降の面談も可能です!
    カジュアル面談フォーム
    https://hrmos.co/pages/cyberagent-group/jobs/1826557091831955459
    @gunta85

    View Slide