客戶今天提出需求,明天就想要?
友商發(fā)布了新產(chǎn)品,這個(gè)功能我沒有,可能被趕超?
無論是客戶需求,還是市場競爭,都對我們產(chǎn)品的迭代提出了更快更好的要求。在此情景下,我們需要盡量壓縮產(chǎn)品的迭代周期、控制版本延期率,以增強(qiáng)產(chǎn)品競爭力,提高客戶滿意度。
那怎么才能壓縮產(chǎn)品迭代周期呢?
產(chǎn)品迭代規(guī)模越大,開發(fā)進(jìn)度越難掌控,風(fēng)險(xiǎn)也會(huì)增加,我們需要更好地調(diào)整開發(fā)節(jié)奏,以增強(qiáng)抵抗風(fēng)險(xiǎn)和控制的能力。為此,我們在實(shí)際開發(fā)中引入了敏捷的思想,在迭代規(guī)模和開發(fā)流程(測試方法)上做了一些調(diào)整,希望在敏捷和To B企業(yè)的軟件產(chǎn)品開發(fā)之間做到較好的結(jié)合,詳見方法1與方法2。
自動(dòng)化是我們可以探索的另一個(gè)途徑。自動(dòng)化可以代替部分的手工操作,也可以減少人為錯(cuò)誤的機(jī)率,幫助團(tuán)隊(duì)利用更少的資源做更多的工作以提高效率。我們在開發(fā)和測試階段分別做了一些自動(dòng)化嘗試,詳見方法3。
方法1:迭代規(guī)模壓縮
我們發(fā)現(xiàn),當(dāng)前公司存在較多開發(fā)周期超1個(gè)月、迭代周期超過3個(gè)月的產(chǎn)品,過長的迭代周期易導(dǎo)致開發(fā)和測試環(huán)節(jié)的工作難以把控時(shí)間,延期率過高。
于是,我們通過控制需求量,調(diào)整產(chǎn)品開發(fā)迭代節(jié)奏,原本開發(fā)周期為4周甚至更久,逐步壓縮到3周,再壓縮到2周。
如下是產(chǎn)品A首次控制迭代規(guī)模后的效果,相對延期率從18.09%降至9.59%。實(shí)際開發(fā)中,測試時(shí)長從占比開發(fā)時(shí)長的48.39%,降至44.90%。
方法2:改輪次測試為批次測試
一個(gè)軟件產(chǎn)品迭代的開發(fā),我們可以簡單認(rèn)為其流程如下:
1)輪次測試
當(dāng)前公司進(jìn)行的是輪次測試,具體見下圖:
通過上圖我們可以看到,輪次測試下的產(chǎn)品迭代流程基本是串行的,每個(gè)輪次的測試都要等前一輪測試全部完成才可開始,這之間消耗了大量時(shí)間。而若產(chǎn)品質(zhì)量無法達(dá)到驗(yàn)收標(biāo)準(zhǔn),還會(huì)繼續(xù)走第四輪,甚至更多輪的測試
在代碼開發(fā)時(shí),兩個(gè)互相沒有依賴關(guān)系的需求,其實(shí)是可以通過快速跟進(jìn)的技術(shù),做到部分需求并行開發(fā),以實(shí)現(xiàn)產(chǎn)品迭代周期的壓縮。于是,我們開始調(diào)整輪次測試為批次測試。
2)批次測試
當(dāng)某產(chǎn)品迭代系統(tǒng)設(shè)計(jì)評審?fù)瓿珊螅_發(fā)人員可以對當(dāng)前迭代需求進(jìn)行批次劃分,要求各批次需求之間互相獨(dú)立,每批需求可單獨(dú)提測。
開發(fā)人員完成第一批需求的代碼開發(fā)后,可對第一批需求進(jìn)行提測,測試人員開始測試;與此同時(shí),開發(fā)人員開始進(jìn)行第二批需求的代碼開發(fā)工作;以此類推。
注意!開發(fā)人員排期時(shí),請?jiān)趦膳蔚男枨箝_發(fā)中,預(yù)留一定的Bug修復(fù)時(shí)間。
3)實(shí)例
我們?nèi)耘f以產(chǎn)品A的迭代開發(fā)為例,看看產(chǎn)品迭代開發(fā)轉(zhuǎn)批次測試的效果。此處需要注意,我們持續(xù)在控制迭代規(guī)模。
從相對延期率可以看出,在執(zhí)行了批次測試后,產(chǎn)品迭代的延期率受到了有效的控制,迭代5甚至做到了延期率為0。
方法3:自動(dòng)化
1)持續(xù)集成平臺(tái)
公司本身已有CI/CD的自動(dòng)化工具,但其他產(chǎn)線前期并未用起來。
經(jīng)各產(chǎn)線研發(fā)總監(jiān)推動(dòng),我們開始使用持續(xù)集成平臺(tái),集成研發(fā)工具幫助企業(yè)實(shí)現(xiàn)持續(xù)集成/持續(xù)部署(CI/CD)。研發(fā)人員完成代碼編寫后,提交代碼即可觸發(fā)流水線,構(gòu)建完后隨流水線自動(dòng)完成環(huán)境部署。
上線平臺(tái)前,產(chǎn)品A迭代1開發(fā)人員完成全部代碼開發(fā)、部署代碼至線上后才能了解整體功能的實(shí)現(xiàn)情況。持續(xù)集成平臺(tái)建成后,開發(fā)人員可以隨時(shí)線上自測,代碼質(zhì)量進(jìn)一步提高。
持續(xù)集成平臺(tái)的引入,幫助我們更高效地進(jìn)行業(yè)務(wù)交付,同時(shí)也強(qiáng)化了我們對研發(fā)過程的整體管控,滿足數(shù)字化建設(shè)下業(yè)務(wù)快速迭代的要求。
2)自動(dòng)化測試
通過自動(dòng)化測試,可以有效幫助解決測試時(shí)長和測試覆蓋率的問題,提高測試工作效率。
產(chǎn)品A自迭代3開始執(zhí)行接口自動(dòng)化測試。測試會(huì)在新的迭代做上一個(gè)迭代的P0級自動(dòng)化測試,要求產(chǎn)品同一個(gè)大版本內(nèi)要保證接口向下兼容。
企業(yè)持續(xù)交付好幫手——嘉為藍(lán)鯨CCI持續(xù)集成平臺(tái)
“工欲善其事,必先利其器”,研發(fā)團(tuán)隊(duì)可以通過各種流程和方法對研發(fā)迭代效率進(jìn)行優(yōu)化,而對于規(guī)模較大的企業(yè),建立統(tǒng)一平臺(tái)提供工具能力更是勢在必行,平臺(tái)能力可以快速幫助組織實(shí)現(xiàn)效率的提升,達(dá)到事半功倍的效果。
嘉為藍(lán)鯨CCI持續(xù)集成平臺(tái),是以藍(lán)盾CI為內(nèi)核的企業(yè)級持續(xù)交付平臺(tái),滿足數(shù)字化建設(shè)的傳統(tǒng)企業(yè)在提升數(shù)字業(yè)務(wù)交付效率的同時(shí),強(qiáng)化對研發(fā)過程的管理,是企業(yè)實(shí)現(xiàn)有質(zhì)量、高效率持續(xù)交付的得力助手。
在上文中,研發(fā)團(tuán)隊(duì)引入嘉為藍(lán)鯨CCI持續(xù)集成平臺(tái),利用從代碼到部署的自動(dòng)化工作流程,提供從代碼拉取、代碼掃描、編譯構(gòu)建、軟件部署、制品晉級到生產(chǎn)發(fā)布的自動(dòng)化研發(fā)流程,通過快速反饋循環(huán)提高工作效率,釋放敏捷開發(fā)的強(qiáng)大力量,更快更好地響應(yīng)業(yè)務(wù)。
嘉為藍(lán)鯨CCI持續(xù)集成平臺(tái),滿足持續(xù)集成、持續(xù)部署到持續(xù)交付所需的一站式DevOps工藝體系,通過全自動(dòng)可視化流水線+源碼監(jiān)控+質(zhì)量紅線的組合能力,真正做到了高度自動(dòng)化、支持多并發(fā)、能力可擴(kuò)展、全程可視化和質(zhì)量可卡控。
如果您有相關(guān)建設(shè)需求,歡迎聯(lián)系我們。
小結(jié)
通過迭代規(guī)模的壓縮、批次測試的推行、持續(xù)集成平臺(tái)和自動(dòng)化測試的使用,公司產(chǎn)品迭代延期率有效得到了控制,產(chǎn)品A甚至做到了迭代5的延期率為0(僅作參考,實(shí)際執(zhí)行時(shí)仍會(huì)因各公司情況而有不同)。
希望本文章可以為做軟件產(chǎn)品研發(fā)的朋友提供一些幫助~
ITSM運(yùn)營:服務(wù)請求管理持續(xù)改進(jìn)
查看詳細(xì)
AI驅(qū)動(dòng)IT運(yùn)維轉(zhuǎn)型:從審批流到AI工作流
查看詳細(xì)
國產(chǎn)化替代實(shí)踐:嘉為藍(lán)鯨全棧智能觀測中心對比IBM Tivoli
查看詳細(xì)
嘉為藍(lán)鯨平臺(tái):三位一體,打造云原生數(shù)字化基座
查看詳細(xì)
嘉為藍(lán)鯨DevOps研發(fā)效能管理平臺(tái):AI賦能研運(yùn),效能再進(jìn)化
查看詳細(xì)
ITSM運(yùn)營:事件管理持續(xù)改進(jìn)
查看詳細(xì)
申請演示