一辣之、背景
近30年來掰伸,企業(yè)面對(duì)的商業(yè)環(huán)境瞬息萬變,移動(dòng)怀估、社交狮鸭、物聯(lián)網(wǎng)合搅、云計(jì)算、大數(shù)據(jù)歧蕉、AI等蓬勃發(fā)展灾部,傳統(tǒng)研發(fā)模式越來越無法適應(yīng)快速變化的市場(chǎng)需求,為了應(yīng)對(duì)這些挑戰(zhàn)惯退,華為的研發(fā)模式也在不斷變遷赌髓、優(yōu)化,從90年代初游擊隊(duì)式開發(fā)催跪,到2000年引入IPD-CMMI锁蠕,轉(zhuǎn)變?yōu)榧瘓F(tuán)軍作戰(zhàn)模式,到2008年經(jīng)過敏捷思潮的洗禮懊蒸,開啟了“班長(zhǎng)的戰(zhàn)爭(zhēng)”這一全新模式荣倾,形成了 “敏捷+ DevOps”相融合的、獨(dú)特的華為敏捷研發(fā)模式骑丸。通過這種獨(dú)特的敏捷模式舌仍,擁有8萬華為研發(fā)人員的研發(fā)體系,行走在時(shí)代的前沿通危,在電信運(yùn)營(yíng)商铸豁、企業(yè)、終端和云計(jì)算等領(lǐng)域構(gòu)筑了行業(yè)領(lǐng)先的解決方案優(yōu)勢(shì)菊碟。
二节芥、敏捷、DevOps方法論介紹
敏捷開發(fā)模式框沟,遵循萬物生長(zhǎng)的客觀規(guī)律藏古,通過不斷迭代的增量式開發(fā),確比淘铮可運(yùn)行的軟件逐步生長(zhǎng)壯大拧晕,并盡早獲得客戶的反饋,及時(shí)開展優(yōu)化梅垄。
DevOps理念是在開發(fā)流程和組織結(jié)構(gòu)上厂捞,打破部門墻。通過端到端全自動(dòng)化的持續(xù)交付流水線工具鏈队丝,將市場(chǎng)靡馁、開發(fā)、運(yùn)維等環(huán)節(jié)高度協(xié)同起來机久,并不斷提升Ops環(huán)節(jié)的自動(dòng)化能力臭墨,解放人力,聚焦于業(yè)務(wù)開發(fā)實(shí)現(xiàn)上膘盖。
三胧弛、華為敏捷項(xiàng)目管理實(shí)踐
華為敏捷項(xiàng)目管理尤误,融合了敏捷、DevOps思想结缚,不僅僅是開發(fā)階段的敏捷损晤,而是打通市場(chǎng)、交付红竭、運(yùn)維尤勋、運(yùn)營(yíng)的端到端敏捷。在實(shí)踐中通過運(yùn)維自動(dòng)化茵宪,將Scrum敏捷團(tuán)隊(duì)開發(fā)的產(chǎn)品快速上線最冰,并通過及時(shí)的運(yùn)營(yíng),反饋給敏捷團(tuán)隊(duì)進(jìn)行方向調(diào)整眉厨。
1锌奴、華為敏捷項(xiàng)目管理流程如下
敏捷開發(fā)流程可劃分為準(zhǔn)備兽狭、計(jì)劃憾股、開發(fā)、反饋四個(gè)階段箕慧。
2服球、準(zhǔn)備階段
○?按照模塊/服務(wù)組建全功能團(tuán)隊(duì),團(tuán)隊(duì)包括PD(產(chǎn)品經(jīng)理)颠焦、Scrum Master斩熊、UE(UCD工程師、美工/視覺)伐庭、SE(系統(tǒng)工程師)粉渠、開發(fā)、測(cè)試圾另、運(yùn)維霸株、運(yùn)營(yíng)。每一個(gè)團(tuán)隊(duì)人數(shù)控制在6-12人集乔。這需要配合系統(tǒng)解耦去件,模塊足夠小,或者采用微服務(wù)架構(gòu)扰路。
○?選擇合適的敏捷項(xiàng)目管理工具尤溜。軟件開發(fā)服務(wù)團(tuán)隊(duì)采用DevCloud on DevCloud的開發(fā)自用模式,可創(chuàng)建Scrum流程項(xiàng)目或精簡(jiǎn)流程項(xiàng)目(精簡(jiǎn)流程項(xiàng)目是比敏捷模式更簡(jiǎn)潔的模式汗唱,適合小宫莱、微團(tuán)隊(duì)和個(gè)體開發(fā)者)。
3哩罪、計(jì)劃階段
PD是本階段的核心角色授霸。需求從線上反饋肥印、線下訪談、友商分析绝葡、頭腦風(fēng)暴等渠道進(jìn)入產(chǎn)品Backlog后深碱,需求優(yōu)先級(jí)由PD實(shí)時(shí)刷新、定期評(píng)審藏畅,確狈蠊瑁“做正確的事”:
○ PD對(duì)產(chǎn)品Backlog中Epic和Feature進(jìn)行優(yōu)先級(jí)分層排序,選擇優(yōu)先級(jí)高的特性確定發(fā)布計(jì)劃愉阎。
○ 在每個(gè)Spring啟動(dòng)前绞蹦,按照優(yōu)先級(jí)排序的Story制定迭代計(jì)劃。
4榜旦、開發(fā)階段
Scrum Master是本階段的核心角色幽七,需保證整個(gè)團(tuán)隊(duì)高質(zhì)高效“正確的做事”:
○?基于迭代故事墻(看板),各個(gè)全功能團(tuán)隊(duì)開展每日站立會(huì)議溅呢,將進(jìn)展和求助錄入Story討論區(qū)澡屡,早會(huì)討論內(nèi)容通過站內(nèi)消息和郵件等實(shí)時(shí)通知責(zé)任人。
○?開發(fā)人員提交代碼時(shí)咐旧,發(fā)起同行評(píng)審驶鹉。之后由Scrum Master進(jìn)行代碼審核,確認(rèn)沒有問題后合入版本主干铣墨。
○?每天定時(shí)執(zhí)行自動(dòng)化靜態(tài)代碼檢查任務(wù)室埋,檢查編碼安全(如未授信訪問)、編碼問題(如空指針引用)伊约、圈復(fù)雜度姚淆、重復(fù)率、編程風(fēng)格屡律,問題清零才允許構(gòu)建出包腌逢。
○?通過云端自動(dòng)化的持續(xù)交付流水線,實(shí)現(xiàn)持續(xù)構(gòu)建疹尾、持續(xù)部署(包括腳本自動(dòng)下發(fā)上忍、比對(duì))、持續(xù)測(cè)試(功能纳本、接口窍蓝、性能、可靠性等實(shí)現(xiàn)100%自動(dòng)化)繁成、持續(xù)發(fā)布吓笙、持續(xù)監(jiān)控,可將Ops端手工操作的時(shí)間縮短到20%內(nèi)巾腕,全功能團(tuán)隊(duì)可以聚焦于業(yè)務(wù)交付上面睛,顯著提升效率和產(chǎn)品質(zhì)量絮蒿。
代碼提交時(shí)按照規(guī)范備注Story ID,即可將代碼關(guān)聯(lián)到對(duì)應(yīng)需求上叁鉴。創(chuàng)建測(cè)試用例和缺陷時(shí)土涝,也需關(guān)聯(lián)需求,這樣就實(shí)現(xiàn)了“需求-代碼-用例-缺陷”的雙向追溯幌墓。
5但壮、反饋階段
反饋階段主要開展驗(yàn)收和回顧活動(dòng)。
○ 召開ShowCase會(huì)議常侣,由PD進(jìn)行驗(yàn)收蜡饵,確保產(chǎn)品功能與需求一致。
○ 轉(zhuǎn)測(cè)試回歸不通過問題胳施,需由Scrum Master輔導(dǎo)問題責(zé)任人進(jìn)行回溯溯祸,并召開整個(gè)團(tuán)隊(duì)的質(zhì)量回溯會(huì)議。會(huì)議重點(diǎn)在于分析問題根因舞肆,并識(shí)別出管理焦辅、流程、技術(shù)胆绊、工具上可落地的改進(jìn)點(diǎn)氨鹏。這些改進(jìn)點(diǎn)每一個(gè)都必須符合Smart原則,是可落地压状、可執(zhí)行的,不能出現(xiàn)大話空話套話跟继。而且這些問題都要求最晚在下一個(gè)迭代中种冬,執(zhí)行落地,以避免問題再次出現(xiàn)舔糖。
○ 通過迭代需求統(tǒng)計(jì)報(bào)表和燃盡圖娱两,查看需求交付進(jìn)展。
○ 迭代遺留缺陷報(bào)告呈現(xiàn)每個(gè)模塊/服務(wù)質(zhì)量情況金吗,并設(shè)置質(zhì)量門禁十兢。單服務(wù)遺留嚴(yán)重及以上級(jí)別問題,或者總遺留DI值(遺留缺陷密度)>x分摇庙,則服務(wù)質(zhì)量不達(dá)標(biāo)旱物,不允許發(fā)布。
重點(diǎn)提一下質(zhì)量回溯會(huì)議卫袒,對(duì)應(yīng)于敏捷迭代回顧會(huì)議宵呛,是華為持續(xù)改進(jìn)的實(shí)踐瑰寶。其要義是塑造整個(gè)團(tuán)隊(duì)對(duì)事不對(duì)人夕凝、勇于直面問題宝穗、只要有方法有措施下次改進(jìn)不再重犯錯(cuò)的“從泥坑里爬起來就是圣人”的文化氛圍户秤。
下方是一個(gè)華為的開發(fā)者活動(dòng),掃碼立即生成你的2018年度開發(fā)者報(bào)告逮矛,感興趣的可以試試鸡号。