推動(dòng)軟件交付的24個(gè)關(guān)鍵能力
持續(xù)交付能力
1.對所有生產(chǎn)工件使用版本控制
版本控制是將所有生產(chǎn)工件納入版本控制系統(tǒng)(例如GitHub或Subversion)管理,包括應(yīng)用程序代碼,應(yīng)用程序配置,系統(tǒng)配置以及用于自動(dòng)構(gòu)建和配置環(huán)境的腳本。
2.自動(dòng)化部署過程
部署自動(dòng)化是指部署完全自動(dòng)化且不需要人工干預(yù)的程度。
3.實(shí)施持續(xù)集成
持續(xù)集成(CI)是實(shí)現(xiàn)持續(xù)交付的第一步。這是一種開發(fā)實(shí)踐,其中的代碼會(huì)定期檢入,每次檢入都會(huì)觸發(fā)一組快速測試,以發(fā)現(xiàn)嚴(yán)重的回歸問題,開發(fā)人員會(huì)立即對其進(jìn)行修復(fù)。CI流程將創(chuàng)建規(guī)范的構(gòu)建和程序包,并最終進(jìn)行部署和發(fā)布。
4.使用基于主干開發(fā)方法
基于主干的開發(fā)模式已被證明可以實(shí)現(xiàn)軟件開發(fā)和交付中的高性能。它的特點(diǎn)是在代碼存儲(chǔ)庫中少于三個(gè)活動(dòng)分支。在合并入主干分支之前具有非常短的生命周期(例如,少于一天)的分支;應(yīng)用程序團(tuán)隊(duì)很少或從來沒有“code lock”期,因?yàn)楹喜_突,代碼凍結(jié)或穩(wěn)定階段,沒人能簽入代碼或執(zhí)行拉取請求。
5.實(shí)施測試自動(dòng)化
測試自動(dòng)化是一種在整個(gè)開發(fā)過程中自動(dòng)(而非手動(dòng))連續(xù)運(yùn)行軟件測試的實(shí)踐。有效的測試套件是可靠的,也就是說,測試會(huì)發(fā)現(xiàn)真正的失敗,并且只能通過可發(fā)布的代碼。請注意,開發(fā)人員應(yīng)主要負(fù)責(zé)創(chuàng)建和維護(hù)自動(dòng)化測試套件。
6.支持測試數(shù)據(jù)管理
測試數(shù)據(jù)需要仔細(xì)的維護(hù),并且測試數(shù)據(jù)管理已成為自動(dòng)化測試中越來越重要的部分。有效的做法包括擁有足夠的數(shù)據(jù)來運(yùn)行您的測試套件,按需獲取必要數(shù)據(jù)的能力,在管道中對測試數(shù)據(jù)進(jìn)行條件調(diào)整的能力以及不限制可以運(yùn)行的測試數(shù)量的數(shù)據(jù)。但是,我們確實(shí)要警告,團(tuán)隊(duì)?wèi)?yīng)盡可能減少運(yùn)行自動(dòng)化測試所需的測試數(shù)據(jù)量。
7.左移安全性
將安全性集成到軟件開發(fā)過程的設(shè)計(jì)和測試階段是提高IT性能的關(guān)鍵。這包括對應(yīng)用程序進(jìn)行安全審查,包括在應(yīng)用程序的設(shè)計(jì)和演示過程中的信息安全團(tuán)隊(duì),使用預(yù)先批準(zhǔn)的安全性庫和程序包,以及將安全性功能作為自動(dòng)化測試套件的一部分進(jìn)行測試。
8.實(shí)施持續(xù)交付(CD)
CD是一種開發(fā)實(shí)踐,其中軟件在其整個(gè)生命周期中都處于可部署狀態(tài),并且團(tuán)隊(duì)優(yōu)先考慮使軟件保持在可部署狀態(tài),而不是研究新功能。所有團(tuán)隊(duì)成員都可以快速獲得有關(guān)系統(tǒng)質(zhì)量和可部署性的反饋,當(dāng)他們收到有關(guān)系統(tǒng)不可部署的報(bào)告時(shí),可以快速進(jìn)行修復(fù)。最后,可以根據(jù)需要隨時(shí)將系統(tǒng)部署到生產(chǎn)或最終用戶。
架構(gòu)能力
9.使用松耦合的架構(gòu)
這影響了團(tuán)隊(duì)可以按需測試和部署其應(yīng)用程序的程度,而無需與其他服務(wù)進(jìn)行協(xié)調(diào)。松散耦合的架構(gòu)使您的團(tuán)隊(duì)能夠獨(dú)立工作,而無需依賴其他團(tuán)隊(duì)的支持和服務(wù),從而使他們能夠快速工作并為組織創(chuàng)造價(jià)值。
10.授權(quán)團(tuán)隊(duì)的架構(gòu)師
我們的研究表明,可以選擇要使用哪些工具的團(tuán)隊(duì)在持續(xù)交付方面會(huì)更好,進(jìn)而可以推動(dòng)更好的軟件開發(fā)和交付性能。沒有人比從業(yè)者更清楚他們需要什么才能有效。
產(chǎn)品和過程能力
11.收集并實(shí)施客戶反饋
我們的研究發(fā)現(xiàn),組織是否定期主動(dòng)地尋求客戶反饋,并將此反饋納入其產(chǎn)品設(shè)計(jì)對軟件交付性能很重要。
12.通過價(jià)值流使工作流程可見
團(tuán)隊(duì)?wèi)?yīng)該對從業(yè)務(wù)一直到客戶的工作流程有很好的理解和可視性,包括產(chǎn)品和功能的狀態(tài)。我們的研究發(fā)現(xiàn),這對IT性能有積極影響。
13.小批量工作
團(tuán)隊(duì)?wèi)?yīng)該將工作分成小塊,可以在一周或更短的時(shí)間內(nèi)完成。關(guān)鍵是將工作分解為允許快速開發(fā)的小功能,而不是在分支上開發(fā)復(fù)雜的功能并很少發(fā)布它們。這個(gè)想法可以應(yīng)用于功能和產(chǎn)品級別。(MVP是產(chǎn)品的原型,具有足夠的功能以使人們能夠有效地了解產(chǎn)品及其商業(yè)模型。)小批量工作可縮短交貨時(shí)間并加快反饋循環(huán)。
14.培養(yǎng)和啟用團(tuán)隊(duì)實(shí)驗(yàn)
團(tuán)隊(duì)實(shí)驗(yàn)是開發(fā)人員在開發(fā)過程中嘗試新想法并創(chuàng)建和更新規(guī)范的能力,而無需團(tuán)隊(duì)外部的批準(zhǔn),這使他們能夠快速創(chuàng)新并創(chuàng)造價(jià)值。當(dāng)與小批量工作相結(jié)合,合并客戶反饋并使工作流程可見時(shí),這特別有影響。
精益管理和監(jiān)控能力
15.進(jìn)行輕量級變更批準(zhǔn)流程
我們的研究表明,與使用外部變更批準(zhǔn)委員會(huì)(CAB)相比,基于同級審查(對編程或團(tuán)隊(duì)內(nèi)部代碼審查)的輕量級變更批準(zhǔn)過程可產(chǎn)生出色的IT性能。
16.跨應(yīng)用程序和基礎(chǔ)架構(gòu)進(jìn)行監(jiān)視以通知業(yè)務(wù)決策
使用來自應(yīng)用程序和基礎(chǔ)架構(gòu)監(jiān)視工具的數(shù)據(jù)來采取行動(dòng)并制定業(yè)務(wù)決策。當(dāng)出現(xiàn)問題時(shí),這不僅僅可以傳呼別人。
17.主動(dòng)檢查系統(tǒng)運(yùn)行狀況
使用閾值和變化率警告來監(jiān)視系統(tǒng)運(yùn)行狀況,以使團(tuán)隊(duì)能夠搶先發(fā)現(xiàn)和緩解問題。
18.改進(jìn)流程并管理在制品(WIP)限制的工作
在精益社區(qū)中,使用在制品限制來管理工作流程是眾所周知的。有效使用后,可提高流程效率,提高吞吐量并在系統(tǒng)中顯示約束。
19.可視化工作以監(jiān)視質(zhì)量并在整個(gè)團(tuán)隊(duì)中進(jìn)行溝通
已顯示用于監(jiān)視質(zhì)量和在制品的視覺顯示,例如儀表板或內(nèi)部網(wǎng)站,有助于軟件交付性能。
文化能力
20.支持生成文化
衡量組織文化的依據(jù)是社會(huì)學(xué)家羅恩·韋斯特魯姆(Ron Westrum)開發(fā)的一種類型學(xué),他在航空和醫(yī)療保健領(lǐng)域研究了對安全至關(guān)重要的復(fù)雜系統(tǒng)。我們的研究發(fā)現(xiàn),這種文化程度可以預(yù)測IT績效,組織績效和減少倦怠。此措施的標(biāo)志包括良好的信息流,高度的合作與信任,團(tuán)隊(duì)之間的橋梁以及有意識的詢問。
21.鼓勵(lì)和支持學(xué)習(xí)
在您的文化中,學(xué)習(xí)被認(rèn)為對持續(xù)進(jìn)步至關(guān)重要嗎?學(xué)習(xí)被視為成本還是投資?這是對組織學(xué)習(xí)文化的一種衡量。
22.支持和促進(jìn)團(tuán)隊(duì)之間的合作
這反映了傳統(tǒng)上孤立的團(tuán)隊(duì)在開發(fā),運(yùn)營和信息安全方面的互動(dòng)程度。
23.提供使工作有意義的資源和工具。
這項(xiàng)工作滿意度的特殊衡量標(biāo)準(zhǔn)是從事具有挑戰(zhàn)性和有意義的工作,并有權(quán)鍛煉您的技能和判斷力。這還與獲得做好工作所需的工具和資源有關(guān)。
24.支持或體現(xiàn)變革型領(lǐng)導(dǎo)
變革型領(lǐng)導(dǎo)支持并擴(kuò)大了DevOps中至關(guān)重要的技術(shù)和流程工作。它由五個(gè)因素組成:視覺,智力刺激,鼓舞性溝通,支持性領(lǐng)導(dǎo)和個(gè)人認(rèn)可。