Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Feature FlagsのDX/UXの 頂点「 DevCycle 」に 辿り着くまでの道のり
Search
Gunther Brunner
October 26, 2023
Programming
5
1.6k
Feature FlagsのDX/UXの 頂点「 DevCycle 」に 辿り着くまでの道のり
Gunther Brunner
October 26, 2023
Tweet
Share
More Decks by Gunther Brunner
See All by Gunther Brunner
Breaking Down Enterprise AI Tool Adoption Barriers in Japan: CyberAgent's Cursor Implementation Strategy
gunta
0
85
大手企業のAIツール導入の壁を越えて:サイバーエージェントのCursor活用戦略
gunta
42
25k
MCP世界への招待: AIエンジニアが創る次世代エージェント連携の世界
gunta
5
1.2k
OpenSaaS Studio - 強いSaaSを作り続けるOpenSaaS Studioの挑戦
gunta
3
3k
OpenSTF @ Test Engineers' Meetup #3
gunta
1
1.4k
Android Testing Bootcamp #2: OpenSTF
gunta
1
1.4k
Chrome Tech Night 8 - STF
gunta
0
150
CAOS 2015 Summer: Introducing Hayabusa
gunta
0
970
CAOS 2015 Summer: Introducing STF (Smartphone Test Farm)
gunta
1
1.7k
Other Decks in Programming
See All in Programming
WindowInsetsだってテストしたい
ryunen344
1
190
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
300
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
190
GraphRAGの仕組みまるわかり
tosuri13
7
480
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
340
XSLTで作るBrainfuck処理系
makki_d
0
210
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
660
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
260
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
210
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
850
XP, Testing and ninja testing
m_seki
3
180
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
120
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Done Done
chrislema
184
16k
Music & Morning Musume
bryan
46
6.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Code Reviewing Like a Champion
maltzj
524
40k
Site-Speed That Sticks
csswizardry
10
660
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Rails Girls Zürich Keynote
gr2m
94
14k
GraphQLとの向き合い方2022年版
quramy
47
14k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The Cost Of JavaScript in 2023
addyosmani
51
8.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Transcript
'FBUVSF'MBHTͷ%969ͷ ʮ %FW$ZDMF ʯʹ ḷΓண͘·ͰͷಓͷΓ (ÛOUIFS#SVOOFSʢϒϧϯφʔάϯλʣ
ࣗݾհ r จ෦Պֶলͷࠃඅ֎ࠃਓཹֶੜͱͯ͠དྷཹֶ r 6Q'SPOUJFSʢגʣ ΫϦΤΠςΟϒσΟϨΫλʔɾΤϯδχΞ r ʢגʣ$ZCFS"HFOU ϑϩϯτΤϯυ։ൃ
r 0QFO45'ɿ044Λاըɾશൠ։ൃ r )BZBCVTBɿࣾ4BB4ΛاըɾϚωδϝϯτ r ϦϞͯͳ͠ɿϑϩϯτΤϯυɾ%FW0QT r ʢגʣ"*4IJGU --.Λ׆༂ͨ͠ϓϩμΫτσβΠϯɾΤϯδχΞ @gunta85
0QFO45' 0 Q F O 4 P V S
D F
"OESPJEの実機を リアルタイムに操作 年に企画・開発 テスト自動化用の"1* も用意
ຊͷ 'FBUVSF'MBHT ٕज़બఆͷಓͷΓ %FW$ZDMFͱ %FW$ZDMF $50ͷ ٕज़ઓུ
ٕज़બఆͷಓͷΓ $)"15&3
None
8FCQBDLͷॳຊޠهࣄΛهࡌ
%FW$ZDMFͷॳຊޠهࣄΛهࡌ
3FRVJSF+4 8FCQBDL 7JUF ຊͷٕज़࠾༻ฏۉ̎ʙͷΕ
ӳޠͰపఈతʹௐਚ͘͢ ຊޠͷهࣄͳ͍߹͕ଟ͍ɻ
Stay on the shoulder of the giants •طଘͷٕज़Λར༻͢Δ͜ͱͰ ϝϯςϦεΫΛݮ •৽͍͠ंྠΛ࠶ൃ໌ͤͣʹɺۀքඪ४ͷ
ٕज़ϑϨʔϜϫʔΫΛར༻ Work Smarter, Not Harder ٕज़બఆ ͷ ॏཁੑ •ޮతͳํ๏ͰඪΛୡ͢Δ •ϨόϨοδΛޮ͔ͤͯɺ গͳ͍։ൃͰେ͖ͳՌΛಘΔ
None
None
ιϦϡʔγϣϯ 3FTFBSDI &WFSZXIFSF "MM"U0ODF Ϧαʔν
ཁ݅ఆٛ ϓϩδΣΫτͷχʔζΛ໌֬ʹ͢Δ ࢢௐࠪ طଘͷղܾࡦͱςΫϊϩδʔΛൺֱςʔϒϧ ʹ·ͱΊͯධՁ͢Δ ϢʔβʔϨϏϡʔͱ࣮ࡍʹ৮ͬͯΈΔ ࣮ࡍͷධՁͱϑΟʔυόοΫΛௐࠪ͠ɺ༗ྗީิΛ৮Δ ҰΛ͔͚ͯ
4BB4 ຊͰϝδϟʔͳ4BB4Ҏ֎ɺ ಛʹݟམͱ͕ͪ͠
4BB4ͱ044ͷ ࠷ݶൺֱϙΠϯτ ίετ %9ʢ։ൃऀମݧʣ ΧελϚΠζՄೳੑ αϙʔτ 69ʢϢʔβମݧʣ
ΛҾͬுΒΕͳ͍ͨΊͷ ΞʔΩςΫνϟͷॏཁੑ εέʔϥϏϦςΟ কདྷతʹن͕େ͖͘ͳͬͨ࣌ɺ ͑ΒΕΔ͔ ϨΠςϯγ ج൫ͱͳΔͨΊɺ શମͷϘτϧωοΫʹͳΒͳ͍͔
%9ʢ։ൃମݧʣ ָ͘͠ɾΑΓ͘ΕΔ͜ͱʹΑͬͯ ੜ࢈ੑΛߴΊΒΕΔ͔
'FBUVSF'MBHT
%03"ʢ'PVS,FZTʣ ͱ (PPHMF͕࣮ߦ͍ͯ͠Δ%FW0QT3FTFBSDI BOE"TTFTTNFOU %03" ͱ͍͏࠷େڃϦ αʔνϓϩάϥϜͷݚڀ݁ՌʹΑΔͱɺ։ൃ αΠΫϧͷεϐʔυ্͕͕ΔͱɺࣄۀՁ ্͕Δͱ͍͏͜ͱ͕໌Β͔ʹͳ͍ͬͯ·͢ɻ
τϥϯΫϕʔε։ൃͷඞཁੑ トランクベース ߴͳ։ൃαΠΫϧΛ࣮ݱ͢ΔͨΊͷҰͭ ͷखஈͱͯ͠ɺτϥϯΫϕʔε։ൃ͕ ͞Ε͍ͯ·͢ɻ ͔͠͠ɺτϥϯΫϕʔε։ൃΛಋೖ͢Δʹ ɺϑΟʔνϟʔϑϥάͷٕज़͕ඞཁෆՄ ܽͰ͢ɻ ҆શ͔ͭਝʹ৽ػೳΛϦϦʔε͕Մೳͱ
ͳΓ·͢ɻ リスク削減 τϥϯΫϕʔε։ൃΛਐΊ͍ͯ͘͏ͪʹɺ ϢʔβͷѱӨڹΛ࠷খݶʹ͢ΔͨΊʹɺ ʮ৽ػೳʯΛϑϥάԽ͠ಈతʹཧ͢Δ ඞཁੑ͕ग़͖ͯ·͢ɻ
フィーチャー フラグの
フィーチャー フラグの 比較,1* ଟ͘ͷϑΟʔνϟʔϑϥάγεςϜ͕ ଘࡏɻ ฐࣾͷ044ࣾγεςϜͱͯ͠ ʮ#VDLFUFFSʯɻ ༗໊ͳ4BB4ͱͯ͠ʮ-BVODI%BSLMZʯ ͳͲɺ༷ʑͳબࢶ͕͋Γ·͢ɻ
Ձ֨ ߴֹͳαʔϏε͕ଟ͍ ༻ڥ αʔόʔɺΫϥΠΞϯτɺϞόΠ ϧΞϓϦɺΤοδɺΦϯϓϨͳͲɺ ଟ༷ͳڥͰͷར༻͕Մೳ͔ 4%,ͷ๛͞ νʔϜͰͷಋೖΛ༰қʹ͢Δ4%, ͷఏڙ ύϑΥʔϚϯε
ϨΠςϯγ͔Ͳ͏͔
༻ڥ ఏڙ4%, NT ϨΠςϯγ Ձ֨ɾྉۚମܥɾӡ༻ਓݖඅ
0QFO'FBUVSFඪ४ͱ ϑΟʔνϟʔϑϥάཧͷΦʔϓϯͳελ ϯμʔυͰ͢ɻಛఆͷϕϯμʔґଘͳ͠ʹ "1*Λఆٛͨ͠Γ4%,Λఏڙ͠·͢ɻ ϑΟʔνϟʔϑϥάք۾ͷΤίγεςϜΛ ݎ࿚ʹൃలͤ͞Δ͜ͱΛతͱ͍ͯ͠·͢ɻ ͜ͷඪ४ʹॱक͍ͯ͠ΔϕϯμʔϩοΫ ΠϯΛ͗ɺඞཁͰ͋Ε͍ͭͰଞͷϕ ϯμʔʹΓ͑Δ͜ͱ͕؆୯ʹͳΓ·͢ɻ とは?
ロックインされない
ʢޙʣ 'FBUVSF'MBHTͷ ϕϯμʔΛ ൺֱ͠·ͨ͠ CZ (ÛOUIFS#SVOOFS
ੈͷதͷϕϯμʔൺֱදʢݸʣ ϕϯμʔ αʔόʔ 4%, ΫϥΠΞϯτ 4%, ϦΞϧλΠϜ ߋ৽
&EHFॲཧ 0QFO 'FBUVSF DevCycle LaunchDarkly ConfigCat Split.io Optimizely
ੈͷதͷϕϯμʔൺֱදʢݸʣ ϕϯμʔ αʔόʔ 4%, ΫϥΠΞϯτ 4%, ϦΞϧλΠϜ ߋ৽
&EHFॲཧ 0QFO 'FBUVSF VWO Statsig CloudBees Molasses Harness
ੈͷதͷϕϯμʔൺֱදʢݸʣ ϕϯμʔ αʔόʔ 4%, ΫϥΠΞϯτ 4%, ϦΞϧλΠϜ ߋ৽
&EHFॲཧ 0QFO 'FBUVSF Firebase Remote Config Growthbook AWS Evidently Bugsnag Posthog
ੈͷதͷϕϯμʔൺֱදʢݸʣ ϕϯμʔ αʔόʔ 4%, ΫϥΠΞϯτ 4%, ϦΞϧλΠϜ ߋ৽
&EHFॲཧ 0QFO 'FBUVSF Flagsmith Unleash Flipt Bucketeer Flargd
ൺֱͨ͠ ॴײ
%FW$ZDMF ύϑΥʔϚϯεɺ%9ɺ 69͕࠷༏ल -BVODI%BSLMZ ΠϯςάϨʔγϣϯɺ ख़ߴ͍͕ɺྉۚ 1PTU)PH 044͋Γɺόϥϯε औΕ͍ͯΔ 4UBUTJH
ྉۚମܥ͕ັྗ ࠾༻ͯ͠ྑ͍ ͱఆੑධՁͨ͠ 4BB4
6OMFBTI 044ͷதͰ͍͕࠷ ͋Δ͕ɺ4BB4൛ߴ͍ 'MBH4NJUI 4BB4൛ྑ৺తͳྉۚ #VDLFUUFS ฐ͔ࣾΒެ։͞Ε͔ͨ ΓͰظͷ044 'MJQU γϯϓϧɺ
4BB4൛ͳ͍ ϝϯς͞Ε͍ͯ Δ044
ϝϯς͞Ε ͳ͘ͳͬͨ 044 'MBSH 5XP'MBHT ྆ํ044ͱ$MPVEGMBSF8PSLFSTΛલఏͱͨ͠ &EHFΞʔΩςΫνϟͰ͕͢ɺ ೦ͳ͕Βϝϯς͞Εͳ͘ͳΓ·ͨ͠ɻ
(PPHMF'JSFCBTF 3FNPUF$POGJH Ӭٱແྉັྃతɻ ϨΠςϯγٴͼαʔόʔ 4%,͕ͳ͍ɺૉత "84$MPVE8BUDI &WJEFOUMZ ྉ͚ۚͩັྃతɻ %9ෆࡏ (PPHMFͱ
"NB[PO
69ͱ ϨΠςϯγͷॏཁੑ
69ͱϨΠςϯγɿNTͷน Edgeの時代が到来し、ユーザのUX体験がさらに重要と なった。ドハティの閾値の指標によると、ユーザの生産 性が落ちないためのレスポンスタイムの上限は400msと されてきた。しかし、最近の人気アプリ(Figma、Linear やCron等)の反応速度の動向は、100ms以下になってい ます。一般的なフィーチャーフラグシステムでは、シス テムのアーキテクチャ上この100msを実現するのは難し い。一部のSaaSはUXを考慮して、Edgeにキャッシュを載
せますが、DBや処理自体はEdgeではないです。 そこで注目したいのが、エッジで実装されてるフィー チャーフラグシステム。 &EHF$PNQVUJOHͱ0GGMJOF 'JSTU
%FW$ZDMFͷ
%FW$ZDMFͷొ ΫϥυΤοδͰͷ ߴͳϑΟʔνϟʔϑϥάγες ϜΛݟ͚ͭͨͷ͕ʮ%FW$ZDMFʯ Ͱ͢ɻ ཁ݅Λຬͨͨ͠
%FW$ZDMFͷϝϦοτ NTҎԼͷϨΠςϯγ ߴͳϨεϙϯε 4%,ͷ๛͞ ಋೖ͕༰қ ྉۚମܕ ."6՝ۚͰ͕͢ɺՁ֨໘Ͱྑ৺తͳྉۚɻ
͍͢͞ %9ɾ69͕ײతɻ74$PEFͷ&YUFOTJPO ͋Δɻ
%FW$ZDMFͷϝϦοτ ϦΞϧλΠϜߋ৽ #VTJOFTTNPEFMEFTJHOHFOFSBMMZSFGFST UPUIFBDUJWJUZPGEFTJHOJOHBDPNQBOZT CVTJOFTTNPEFM 0QFO'FBUVSFରԠ 5IFQSPDFTTPGCVTJOFTTNPEFMEFTJHO
JTQBSUPGCVTJOFTTTUSBUFHZ#VTJOFTT NPEFMEFTJHOBOEJOOPWBUJPOSFGFSUP EFGJOFTJUTCVTJOFTTMPHJD ϦΞϧλΠϜߋ৽ 44&ܦ༝Ͱߋ৽͞ΕΔ -PDBM#VDLFUJOH &EHFΑΓߋʹߴͳϩʔΧϧॲཧɻ
ͷ ༏Εٕͨज़ઓུ $)"15&3
ΞʔΩςΫνϟ
&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.
ͷ αϙʔτ $)"15&3
%FW$ZDMFͷ ·ͩ%FW$ZDMFʹ՝ۚͨ͜͠ͱ͕ͳ͍ʹ͔ ͔ΘΒͣɺ ࣭ɾཁ͕͋ͬͨͷͰɺ%JTDPSEͰ͛ͯ ΈͨΒɺ࣌ؒʹ)FBEPG1SPEVDUʢ 1E.ʣ͔ΒճΛ͖ɺߋʹۙͷެ ։ϩʔυϚοϓʹ͢Ͱʹࡌ͍ͬͯΔͱڭ͑ͯ ͍͍ͨͩͨͷͰɺਆͳରԠͰײΛ࣋ͪ· ͨ͠ɻ
·ͱΊ
։ൃαΠΫϧεϐʔυࣄۀՁʹ݁ 5SVOL#BTF։ൃͱ 'FBUVSF'MBHT͔ܽͤͳ͍ ߴ·Δ69ͷظʹԠ͑ΔͨΊʹ %FW$ZDMFͷΑ͏ͳ ߴγεςϜͷಋೖ͕伴 ։ൃʹखΛग़͢લʹɺ ϦαʔνΛ͔ͬ͠Γ
3FTFBSDI&WFSZUIJOH &WFSZXIFSF"MM"U0ODF *O &OHMJTI (ÛOUIFS#SVOOFS
None
"*4IJGUͰҰॹʹಇ͖͍ͨ ΤϯδχΞͷ࠾༻ʹྗΛೖΕ͍ͯ·͢ʂ ٕज़ྖҬ "*ΤϯδχΞʢ1ZUIPOɺ--.ʣ αʔόʔΤϯδχΞʢ(PMBOHɺ$MPVEGMBSF 8PSLFSTʣ ϑϩϯτΤϯδχΞʢ5ZQF4DSJQUɺ3FBDUʣ オンライン・19時以降の面談も可能です! カジュアル面談フォーム
https://hrmos.co/pages/cyberagent-group/jobs/1826557091831955459 @gunta85