最近,K哥跟一些大型企業(yè)的CTO朋友交流,觀察到一個“魔咒”一樣的現(xiàn)象:研發(fā)團隊到達一定規(guī)模后,人越多出活反而越慢,開發(fā)質(zhì)量也越差。按常理說這很不科學(xué),兵強馬壯,還有規(guī)范的研發(fā)流程作為保障,產(chǎn)出和質(zhì)量怎么會不升反降?
就這個問題,我特地請教了老朋友——禪道軟件創(chuàng)始人王春生。春哥把這一現(xiàn)象稱為“流程失效”,并很有心得,一番長談下來,讓K哥收獲頗多。今天,我把這次交流的核心內(nèi)容,給大家做一個分享,相信能給很多人帶來啟發(fā)。
01
為什么研發(fā)流程會“失效”?
很多公司都有一套“看起來很美”的研發(fā)流程,從需求分析到設(shè)計、開發(fā)、測試、發(fā)布,環(huán)環(huán)相扣。團隊成員,尤其是技術(shù)人員,對TDD、代碼評審、持續(xù)集成這些概念也頭頭是道。可為什么一到實際工作中,就全變了樣?
春哥坦言,他自己也曾深受“流程失效”的困擾。為此,還舉了一個設(shè)計評審的例子:“我們要求大家做設(shè)計,然后評審。結(jié)果呢,要么大家自己隨便寫點,然后自己給自己評審?fù)ㄟ^;要么就是你給我評,我給你評,互相‘放水’,讓評審?fù)耆饔谛问健!?/p>
后來春哥想明白了,這不就是心理學(xué)上“知行鴻溝”嘛:我們明明知道什么是“對”的,但在行動上卻選擇了“更容易”的。具體到“流程失效”上,春哥認為其根本原因在于,那些“流程規(guī)范”大多停留在“倡導(dǎo)”層面,缺乏一套讓其必須被執(zhí)行的剛性約束機制。當(dāng)流程可以被輕易繞過,且繞過之后沒有直接的負反饋時,“走捷徑”就成了人的本能。久而久之,流程文檔成了墻上的標(biāo)語,規(guī)范形同虛設(shè),團隊規(guī)模越大,這種“公地悲劇”就越明顯,最終導(dǎo)致溝通成本劇增、質(zhì)量無人兜底的混亂局面。
02
引入“剛性機制”,強化執(zhí)行效果
既然問題的根源在于流程“軟”,那解藥自然就要“硬”一些。春哥帶領(lǐng)禪道團隊的破局之法,就是用一套組合拳,將原本“倡導(dǎo)式”的流程,升級為一套帶有“強制性”和“工具化”的“剛性機制”。
1.“技術(shù)設(shè)計”前置,集體評審替代個人作業(yè)
很多團隊的問題,都始于一個潦草的設(shè)計。春哥發(fā)現(xiàn),如果把技術(shù)設(shè)計交給開發(fā)在迭代中“順便”完成,結(jié)果往往是“他不會認真去做”。這會給后續(xù)的開發(fā)、測試甚至未來的系統(tǒng)優(yōu)化埋下巨大的隱患。
而禪道的對策,是把技術(shù)設(shè)計這個環(huán)節(jié),從迭代中“拎出來”,強制前置。并在迭代啟動前,留出三天左右的時間,給技術(shù)同事做設(shè)計。這“三天”不是憑空多出來的,而是流程重構(gòu)的結(jié)果。更關(guān)鍵的是,這三天的工作內(nèi)容被嚴格定義了:
指定負責(zé)人:禪道會指定一些經(jīng)驗比較豐富的同事去做設(shè)計負責(zé)人,避免了責(zé)任不清、無人負責(zé)的窘境。
強制評審:設(shè)計不再是個人作業(yè),而是必須經(jīng)過集體評審的公共產(chǎn)品。在《禪道研發(fā)流程規(guī)范3.0》中,也明確列出了各事業(yè)部的設(shè)計負責(zé)人和評審負責(zé)人,責(zé)任到人。
前置宣講:在正式的迭代計劃會議上,新增了技術(shù)設(shè)計負責(zé)人講解技術(shù)設(shè)計的宣講環(huán)節(jié),確保設(shè)計思路是清晰的,是能達成共識的。
通過這一系列操作,禪道將技術(shù)設(shè)計從一個模糊的、依賴個人自覺的“任務(wù)”,轉(zhuǎn)變?yōu)橐粋€有明確時間窗口、有責(zé)任人、有評審機制、有宣講環(huán)節(jié)的“儀式”。這種轉(zhuǎn)變從源頭上保證了技術(shù)方案的質(zhì)量,為整個迭代打下了堅實的基礎(chǔ)。
2. 計劃會議三環(huán)驗證,杜絕理解偏差
在傳統(tǒng)的計劃會中,往往是產(chǎn)品經(jīng)理唱“獨角戲”。為了打破這種單向傳遞模式,禪道在計劃會議中設(shè)計了一個精巧的“三環(huán)驗證”機制,確保信息閉環(huán)。
第一環(huán):技術(shù)設(shè)計講解。如前文所述,設(shè)計負責(zé)人先講解方案,讓團隊對“如何實現(xiàn)”有了統(tǒng)一認知。
第二環(huán):開發(fā)反講需求。需求分配下去后,不是馬上開始做,而是“請開發(fā)同學(xué)反講自己負責(zé)的需求”。負責(zé)人要說清楚自己對需求的理解,確保自己沒有跑偏。
第三環(huán):測試實例化核心用例。開發(fā)反講后,輪到測試登場。測試人員要對需求進行實例化,比如:針對這個東西,測試點是什么,任務(wù)分解是什么等等。春哥認為,這相當(dāng)于在開發(fā)啟動前,就從測試的視角,對需求進行“翻譯”和“確認”,可以很好地起到提前暴露理解盲區(qū)的作用。
這“三環(huán)驗證”,將單向的需求灌輸,變成了開發(fā)、測試、產(chǎn)品之間的多輪雙向確認,極大地降低了因理解偏差導(dǎo)致的后期返工。這種驗證看似在前期多花了一點時間,實則是在為整個迭代過程節(jié)省了更大的成本。
3. 工程門禁,質(zhì)量管理工具化
如果說流程調(diào)整是“道”的層面,那么工程門禁就是“術(shù)”的極致。禪道將很多抽象的質(zhì)量規(guī)范變成了具體的、可量化的、由工具強制執(zhí)行的“門禁”。這些門禁不是“建議”,而是“規(guī)定”,在《禪道研發(fā)流程規(guī)范3.0》中,被白紙黑字地固定下來,包括:
單元測試:每個方法必須有對應(yīng)的單元測試腳本,且必須成功通過。
本地代碼掃描:掃描結(jié)果沒有錯誤。
性能門禁:響應(yīng)時間小于500ms,SQL數(shù)量小于100。
提交限制:單次commit修改行數(shù)≤50,單次push修改行數(shù)≤200。
這種工具化門禁,就像一條自動化的質(zhì)量流水線,讓不符合標(biāo)準(zhǔn)的產(chǎn)品無法進入下一個環(huán)節(jié),從而將質(zhì)量標(biāo)準(zhǔn)從“人的領(lǐng)域”拉到了“機器的領(lǐng)域”,擺脫了對個人能力和責(zé)任心的依賴。
“用機器實現(xiàn)自動化”這一思想,在禪道的產(chǎn)品中也展現(xiàn)得淋漓盡致。像禪道團隊自研的DevOps智能研發(fā)運維平臺正式基于這一理念打造。這一平臺深度集成了常用的Jenkins、GitFox、GitLab、SonarQube等主流DevOps應(yīng)用,通過底層數(shù)據(jù)接口的自動化打通,實現(xiàn)了與禪道系統(tǒng)的數(shù)據(jù)交互無縫銜接,讓研發(fā)流程中的需求管理、項目管理、代碼托管、質(zhì)量管理、持續(xù)集成等環(huán)節(jié)形成自動化閉環(huán)。
4. 流程左移:開發(fā)自測驅(qū)動質(zhì)量提升
“測試左移”是軟件開發(fā)中的優(yōu)秀實踐之一,但如何真正落地,一直是技術(shù)管理者亟待破解的大問題。禪道給出的答案是:倒逼開發(fā)進行高質(zhì)量的自測。春哥還做了個形象的類比,“這就像小學(xué)生考試時,老師強調(diào)一定要檢查,但是大部分小學(xué)生,根本就檢查不好。為什么?因為沒有方法,沒有步驟,全憑感覺。”
禪道的做法很有創(chuàng)新性,比如,第一輪測試,由測試同學(xué)分配用例,開發(fā)人員必須照著“一板一眼地跑一遍”。在K哥看來,這其實就是一種測試左移,倒逼大家進行質(zhì)量內(nèi)建。其巧妙之處在于,它不再寄希望于開發(fā)人員“自覺”進行全面自測,而是提供了一份明確的“檢查清單(測試用例)”。開發(fā)自測不再是漫無目的的“點點點”,而是有據(jù)可依的“執(zhí)行”。這不僅保證了第一輪測試的覆蓋度,更重要的是在這個過程中,潛移默化地向開發(fā)人員傳遞了測試思維,促使他們在編碼時,就更多地考慮代碼的可測性和健壯性。
03
為剛性機制提供支撐環(huán)境
好的制度需要適宜的土壤。除了上述核心的“剛性機制”,禪道還通過一系列環(huán)境和文化的配套改造,確保新流程能順暢運轉(zhuǎn)。
1. 精簡看板,聚焦宏觀風(fēng)險與團隊狀態(tài)
在很多敏捷團隊,物理看板上貼滿了需求卡、任務(wù)卡、Bug卡,信息龐雜,更新費力。而禪道的做法是“做減法”。
“我們現(xiàn)在看板上已經(jīng)不放需求卡片和Bug卡片了,”春哥告訴我,“因為禪道項目管理軟件本身有跟蹤,再去寫一遍就有點重復(fù)。我們現(xiàn)在更多地看宏觀的人力圖風(fēng)險,還有大家的信心指數(shù)。”他們甚至還引入了“心情卡”,鼓勵大家把自己的心情“貼出來”。
這是一個非常高明的取舍。把已經(jīng)能被工具(禪道軟件)高效管理的信息(如具體任務(wù))從物理看板上移除,讓看板回歸其核心價值:可視化那些工具難以呈現(xiàn)的“軟信息”,比如團隊的整體負載、潛在的宏觀風(fēng)險、成員的情緒和信心。讓大家把有限的精力和時間,更聚焦于真正需要集體關(guān)注的問題上。
2.引入預(yù)生產(chǎn)環(huán)境,真實場景驗證
測試環(huán)境和真實生產(chǎn)環(huán)境之間,永遠存在一條看不見的鴻溝。為了跨越它,禪道在傳統(tǒng)的測試流程之后,增加了一個“預(yù)生產(chǎn)環(huán)境”的緩沖期。
很多團隊或公司習(xí)慣了項目測試驗收結(jié)束,就直接下發(fā),但這樣很容易把一些潛藏的Bug流轉(zhuǎn)到客戶那里。為避免這一現(xiàn)象,禪道構(gòu)建了一個預(yù)防策略:項目驗收完,先發(fā)布到內(nèi)網(wǎng),自己用大概一到兩周,確認沒有問題再下發(fā)。
這個“預(yù)生產(chǎn)環(huán)境”,在禪道內(nèi)部被稱為UAT環(huán)境(內(nèi)禪),部署的是真實的數(shù)據(jù)和系統(tǒng)。團隊自己先當(dāng)“小白鼠”,這樣能更有效地發(fā)現(xiàn)在特定數(shù)據(jù)和操作流下,才會暴露的深層次問題。
同時,禪道還規(guī)定了固定的發(fā)布節(jié)奏:“每個月會有兩次的發(fā)布窗口,如果你趕得上就發(fā),趕不上就要推延到下一個周期發(fā)。”固定的發(fā)布火車,給所有迭代都設(shè)定了一個明確的外部約束,倒逼團隊更好地進行規(guī)劃和風(fēng)險控制,避免無休止延期現(xiàn)象的發(fā)生。
為了管理的便捷和高效,這種敏捷發(fā)布火車的管理方法也已經(jīng)被禪道團隊抽象為標(biāo)準(zhǔn)化方案,內(nèi)置到了禪道的規(guī)模化敏捷(SAFe)管理平臺中。不論是發(fā)布火車的管理,還是PI規(guī)劃的管理,團隊都能在禪道工具中完成不同團隊間的目標(biāo)對齊和透明度、協(xié)作效率的提升。
在落地層面,禪道就是一邊實踐,一邊將自身驗證過的團隊協(xié)作的管理智慧放到產(chǎn)品中,反哺給行業(yè)中的更多團隊使用。這種知行合一的產(chǎn)品迭代路徑,既確保了管理方法論的實戰(zhàn)性,也推動了禪道工具在敏捷管理中的持續(xù)進化。
3.用技術(shù)團建,替代回顧會
高頻的迭代回顧會,很容易變得“流于形式”。當(dāng)大家不知道該說什么,或者不敢說真話時,回顧會就成了例行公事。禪道用更輕松的“研發(fā)Party”取代了回顧會,讓大家每月聚一次,在更放松的氛圍下,敞開心扉。
這個“Patty”也并非簡單的吃吃喝喝,《禪道研發(fā)流程規(guī)范3.0》對此是有清晰的議程規(guī)定的,比如,分享本月亮點、交流技術(shù)挑戰(zhàn)、針對實際問題展開討論、圍繞主題進行頭腦風(fēng)暴……它本質(zhì)上更像是一場技術(shù)團建和問題研討會,只是形式上更加輕松開放,更有利于激發(fā)大家參與的熱情和創(chuàng)意的火花。
04
什么樣的研發(fā)團隊,適合這套
“加強版敏捷”?
聊到最后,我問了春哥一個很多人都關(guān)心的問題:這套在禪道行之有效的“嚴格”流程,是不是所有團隊都能“抄作業(yè)”?春哥的回答很務(wù)實,他認為這套方法論有其特定的適用范圍:
團隊規(guī)模:團隊規(guī)模要達到一定規(guī)模(至少要大幾十號人)。如果是小團隊,靠大家彼此之間的默契和協(xié)作,就可以解決流程中常見的一些問題,也就沒必要“抄作業(yè)”了。
產(chǎn)品階段與復(fù)雜度:如果產(chǎn)品相對簡單,同樣也不需要。禪道的這套經(jīng)驗,更適合復(fù)雜產(chǎn)品系統(tǒng)的開發(fā);同時團隊的產(chǎn)品最好處在不斷更新迭代中,如果產(chǎn)品到了生命周期的后期,都是些“修修補補”的活兒,也沒必要“大動干戈”了。
質(zhì)量訴求:這套流程的誕生,本身就是被問題“倒逼”出來的,其核心著眼點還是保證質(zhì)量。換句話說,當(dāng)團隊發(fā)展到質(zhì)量的優(yōu)先級高于單純追求速度時,引入禪道這種“加強版敏捷”,才會成為必要選擇。
彼得·德魯克有句名言:“如果你不能衡量它,你就無法管理它。”與春哥的這次對話,讓我對禪道“自研”的流程管理機制,有了更深的了解。他們所做的,正是將那些模糊的、難以衡量的質(zhì)量環(huán)節(jié),轉(zhuǎn)化為了清晰的、可衡量的、必須達成的剛性指標(biāo)。這或許才是敏捷在規(guī)模化團隊中,能夠持續(xù)生效的真正秘訣,也是幫助很多團隊掉入“流程失效”陷阱的有益借鑒。
K哥有話說:
這次聊完后,我問春哥這份內(nèi)部的《禪道研發(fā)流程規(guī)范3.0》是否方便分享。春哥也表示正有此意,他說希望通過這份規(guī)范的分享,給正在受此問題困擾或想要避免這類問題困擾的團隊一些新的思路。
大家掃描下方二維碼,備注【研發(fā)3.0】,即可獲取這份涵蓋技術(shù)規(guī)范、管理流程、團隊成長等模塊的完整版研發(fā)流程規(guī)范。當(dāng)然,如果有對禪道的DevOps方案或規(guī)模化敏捷(SAFe)方案感興趣的朋友,也可備注【DevOps】【SAFe】,進行深入了解與試用。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.