现象
项目æ¯ä¸ªè¿ä»£ç»“æŸéƒ½å‘布上线。最近上线模å¼å˜äº†ï¼Œä¼¼ä¹Žæ‰€æœ‰äººçªç„¶å˜å¾—å¾ˆçº ç»“ï¼Œéƒ½å›´ç»•ç€â€œä¸Šçº¿â€äºŒå—éƒé—·ç€ï¼š
@ Customer Care Center – 线上版本有个Bug,客户抱怨了,能ä¸èƒ½å°½å¿«æŠŠä¿®æ”¹åŽçš„功能上线啊。
@ IM – 似乎有些天没上线新功能了,尽快上线一次å§ã€‚
@ Business people – ä¸ç¡®å®šå“ªäº›æ–°åŠŸèƒ½éœ€è¦åœ¨æŽ¥ä¸‹æ¥ä¸Šçº¿å•Šï¼Œåæ£å¯ä»¥éšæ—¶ä¸Šçº¿å˜›ï¼Œè®©æˆ‘å†æƒ³æƒ³ã€‚
@ UX – 觉得UI还ä¸å¤Ÿå¥½ï¼ŒæœŸæœ›å°†è‡ªå·±çš„设计细节被完全实现了å†ä¸Šçº¿ï¼Œä¸å®Œç¾Žå®æ„¿ä¸ä¸Šçº¿è¿™ä¸ªåŠŸèƒ½ã€‚
@ OPS – 一键部署已ç»å®Œæˆæå»ºå¹¶éšæ—¶å¾…å‘½äº†ï¼Œç»ˆäºŽä¸ç”¨å†ä¸€ä¸ªè¿ä»£ä¸Šçº¿ä¸€æ¬¡äº†ã€‚团队å¯ä»¥éšæ—¶åœ¨åŠå°æ—¶å†…将最新代ç ä¸Šçº¿ï¼Œå› æ¤è¦æ±‚ä¸»å¹²ä»£ç æ°¸è¿œå¹²å‡€ã€‚
@ TechLead – è¦ä¿è¯ä¸»å¹²ä¸Šçš„代ç éšæ—¶èƒ½ä¸Šçº¿ï¼ŒåŒæ—¶è¦ä¿è¯æ‰€æœ‰äººçš„代ç 能æŒç»é›†æˆï¼Œè¿˜è¦ä¿è¯æ²¡æœ‰è¢«Business的人认å¯çš„功能暂时ä¸å¼€æ”¾ï¼Œåªå¥½é€‰æ‹©ä½¿ç”¨feature toggle的方案了。虽然å‡å°‘了代ç 分支的方案å¯èƒ½ä¸ºDEV带æ¥çš„集æˆä¸Šçš„苦æ¼ï¼Œä½†DEVå’ŒQA在新增和测试feature toggle上工作é‡çš„å¢žåŠ æ˜¯é€ƒä¸æŽ‰äº†ã€‚
@ BA – 到底Business的人想è¦ä¸Šçº¿å“ªäº›åŠŸèƒ½å•Šï¼Œä¸€ä¼šå„¿è¦è¿™ä¸ªä¸€ä¼šä¸è¦é‚£ä¸ªï¼Ÿå·²ç»æ‰“包æˆäº†è¿™ä¹ˆå¤šç‰ˆæœ¬çš„包,æ¯ä¸ªåŒ…é‡Œæœ‰å“ªäº›åŠŸèƒ½å•Šï¼Œåˆæœ‰å“ªäº›æ˜¯å·²åŠ ä¸Šäº†toggle被éšè—了的啊?
@ QA – 哪能说上线就上线?è¦ä¿è¯è´¨é‡ï¼Œè¦æŒ‰æµç¨‹åœ¨æ¯ä¸ªçŽ¯å¢ƒä¸Šæµ‹è¯•ï¼›ä¸ä»…æµ‹åŠŸèƒ½æœ¬èº«ï¼Œè¿˜è¦æµ‹feature toggleå¼€/关下的情况,以åŠå±‚å çš„toggleå…³ç³»ä¸‹çš„æƒ…å†µã€‚æ¯æ‹¿åˆ°ä¸€ä¸ªåŒ…ï¼Œéƒ½è¦æŠŠé‡Œé¢å¼€æ”¾å’Œå…³é—的功能历数一é,好麻烦。
@ DEV – 现在æäº¤ä»£ç è¦å°å¿ƒäº†ï¼Œéšæ—¶ä¸Šçº¿å‘¢ï¼Œä¸‡ä¸€æŠŠä¸»å¹²ä¸Šçš„ä»£ç 弄è„了,或者把人家还没决定好è¦ä¸Šçº¿çš„åŠŸèƒ½å¿˜äº†åŠ toggleå°±æäº¤äº†ï¼Œé‚£å°±éº»çƒ¦äº†ã€‚è¯è¯´è¿™storyä¸å°±æ˜¯æ”¹æ”¹UI么,ååä¸ºåŠ ä¸ªtoggle写这么多代ç 。
@ PM – å调所有人关于上线的æ„è§çœŸæ˜¯è´¹ç²¾åŠ›å•Šï¼Œæ€Žä¹ˆæ ·æ‰èƒ½è®©äº‹æƒ…顺利起æ¥å‘¢ï¼Ÿä¸€å®šæœ‰äº›ä»€ä¹ˆå¯ä»¥å𿥿”¹å˜çŽ°çŠ¶çš„ã€‚
梳ç†
æ•´ç†äº†ä¸€äº›å› 果线索:
1)Business peopleä¸ç¡®å®šä»€ä¹ˆåŠŸèƒ½éœ€è¦åœ¨æŽ¥ä¸‹æ¥ä¸Šçº¿
=> BAä¸çŸ¥é“功能的优先级,计划åšä¸å¥½
=> Kick offå¯èƒ½è¿˜ä¸èƒ½ä¸Šçº¿çš„用户故事
=> DEVä¸å¾—ä¸åŠ toggle以éšè—æ¤åŠŸèƒ½
=> QAä¸å¾—ä¸èŠ±æ›´å¤šæ—¶é—´åŽ»æµ‹è¯•toggle本身
2)OPSè¦æ±‚主干代ç 干净,ä¿è¯éšæ—¶èƒ½ä¸Šçº¿
=> 综åˆBusiness people对暂时éšè—部分功能的需求,以åŠä»£ç æŒç»é›†æˆçš„考虑,TechLead敲定使用feature toggleæ¥å¤„ç†æœªå®ŒæˆåŠŸèƒ½å’Œæš‚ä¸å¼€æ”¾åŠŸèƒ½
=> QA测试工作é‡å¢žåŠ ï¼ŒåŒæ—¶è¦æ±‚未被sign offçš„åŠŸèƒ½å¿…é¡»åŠæ—¶toggle off
=> DEV代ç 工作é‡å¢žåŠ ï¼Œè€Œä¸”åœ¨æ²¡æœ‰åŠ feature toggle或功能未完æˆå‰ä¸æ•¢æäº¤ä»£ç ,代ç é›†æˆæ¬¡æ•°å‡å°‘
=> BA交æµå·¥ä½œé‡å¢žåŠ ï¼Œä¸å¾—䏿¯å¤©æ•´ç†å¯èƒ½ä¸Šçº¿çš„ç‰ˆæœ¬ä¸æ‰€å«åŠŸèƒ½çš„æƒ…å†µ
3)回想从å‰ä¸¤å‘¨è¿ä»£ç»“æŸæ—¶å†»ç»“代ç 并上线的ç»åކ:
那时,所有人都清楚代ç 冻结的时间点,所以åªä¸ºä¸ªåˆ«çš„æœªå®ŒæˆåŠŸèƒ½è€ŒåŠ feature toggle
<=>Â çŽ°åœ¨ï¼Œå¤§å®¶å¯¹â€œéšæ—¶éƒ½æœ‰å¯èƒ½å–ä¸»å¹²ä»£ç æ¥ä¸Šçº¿â€å……æ»¡ææƒ§ï¼Œå› è€Œè¢«è¿«æ·»åŠ æ›´å¤šçš„feature toggle或在æŸäº›åŠŸèƒ½å®Œæˆå‰ä¸æäº¤ã€‚
应对
æˆ‘é€æ¸çœ‹åˆ°äº†æœ¬æºï¼ŒäºŽæ˜¯æœ‰ä¸‰æ‹›å‡ºç‚‰ã€‚
应对第一招:控制上线时间点,å–回部署主动æƒã€‚
好处是:
* 充分规划在接下æ¥ä¸Šçº¿çš„ç‰ˆæœ¬ä¸æ¶µç›–哪些功能
* 为开å‘过程拉开缓冲区,å‡å°‘å› æœªå®ŒæˆåŠŸèƒ½è€ŒåŠ çš„feature toggle
* 放æ¾DEV们绷ç€çš„弦,让他们æ£å¸¸æäº¤ï¼ŒåšæŒæŒç»é›†æˆ
应对第二招:功能性问题完æˆåŽåŠæ—¶ä¸Šçº¿ï¼Œå°æ”¹è¿›ä¸é˜»å¤§è¿›åº¦ã€‚
想åšåˆ°é¢‘ç¹éƒ¨ç½²ï¼Œä¸€æ–¹é¢è¦æœ‰å¥½çš„å·¥å…·èƒ½åŠæ—¶éƒ¨ç½²æŒ‡å®šç‰ˆæœ¬ï¼Œå¦ä¸€æ–¹é¢è¦å¯¹çº¿ä¸Šç‰ˆæœ¬åšå¥½å®¹é”™å‡†å¤‡ã€‚一键部署工具确实带æ¥å¾ˆå¤§çš„便利,让部署å˜å¾—快速简å•;而always betaçš„æ¦‚å¿µå‘Šè¯‰æˆ‘ä»¬è‹›æ±‚ä¸€æ—¶çš„å®Œç¾Žæ˜¯æ— æ„义的,è¦å…ˆå®¹å¿ä¸€äº›éžæ ¸å¿ƒé—®é¢˜æ»žç•™ï¼ŒåŒæ—¶å®¹å¿ä¸€äº›çж况å‘生的å¯èƒ½æ€§ï¼Œæˆ–在之åŽçš„ä¸Šçº¿ç‰ˆæœ¬ä¸æŒç»æ”¹è¿›ã€‚
åº”å¯¹ç¬¬ä¸‰æ‹›ï¼šæžæ¸…接下æ¥è¦äº¤ä»˜ä»€ä¹ˆï¼Œä¸è¦ç›²ç›®å¼€å§‹æˆ–盲目ç‰å¾…。
ä¹Ÿè®¸ä½ ä¼šè¯´ï¼Œäººå®¶Business people没拿定注æ„è¦ä¸Šçº¿ä»€ä¹ˆåŠŸèƒ½ï¼Œæˆ‘èƒ½æ€Žä¹ˆåŠžï¼Ÿå½“ç„¶æœ‰æˆ‘ä»¬èƒ½åšçš„。
* ç»™ä»–ä»¬åŽ‹åŠ›è®©ä»–ä»¬å°½å¿«åŽ»æƒ³åŽ»ç ”ç©¶ï¼Œäº‰å–在è¿ä»£å¼€å§‹å°±ç¡®å®šå¥½è¦ä¸Šçº¿çš„æ˜¯äº›ä»€ä¹ˆï¼Œå°½é‡é¿å…开始一个ä¸ç¡®å®šè¦ä¸è¦çš„功能,以åŠä¹‹åŽå¯èƒ½å‡ºçŽ°çš„éœ€æ±‚å覆。
* ä¿æŒæ€¥éœ€çš„ä¿®æ”¹èƒ½åŠæ—¶åœ°ä½œä¸ºè¡¥ä¸ä¸Šçº¿ã€‚
ä¹‹åŽæ€»ç»“
ç‰ç€çœ‹â€¦â€¦ 到时å†å†™ä¸‹æ¥