擴(kuò)展敏捷和DevOps以實(shí)現(xiàn)數(shù)字化轉(zhuǎn)型
在組織層面對產(chǎn)品和服務(wù)的開發(fā)和交付流程進(jìn)行全面的檢查有助于確保數(shù)字化的成功。
許多組織都將敏捷軟件開發(fā)和DevOps視為了數(shù)字化轉(zhuǎn)型過程中的關(guān)鍵步驟。
但是在許多情況下,這些轉(zhuǎn)變是由較小的團(tuán)隊(duì)在處理的,因此限制了它們可能產(chǎn)生的總體影響。在整個組織中更廣泛地推廣這些實(shí)踐可以通過在更大的范圍內(nèi)修改流程來獲得顯著的收益。但實(shí)現(xiàn)這一飛躍是具有挑戰(zhàn)性的。
敏捷是一種開發(fā)方法,涉及自組織和跨職能團(tuán)隊(duì)之間的以及與軟件最終用戶之間的協(xié)作,旨在提高軟件和服務(wù)開發(fā)的質(zhì)量和速度。
與此同時,DevOps則能夠?qū)④浖_發(fā)和IT運(yùn)營結(jié)合在一起,縮短開發(fā)周期,并提供高質(zhì)量的應(yīng)用程序的持續(xù)交付。
將這些方法結(jié)合在一起可以加速數(shù)字化轉(zhuǎn)型,并對如何完成工作產(chǎn)生重大影響--特別是在將它們擴(kuò)展到涉及更多用戶和項(xiàng)目的情況下。這里有一些關(guān)于在一定規(guī)模上成功使用敏捷和DevOps的技巧。
文化為王
作為數(shù)字化轉(zhuǎn)型的一部分,那些在尋求擴(kuò)展敏捷和DevOps的公司必須建立一種文化,這種文化應(yīng)該包括對這些軟件開發(fā)方法的責(zé)任和所有權(quán)的共享。
“DevOps的技能和DNA必須在整個組織中被廣泛傳播,”能源和自動化產(chǎn)品供應(yīng)商施耐德電氣的首席數(shù)字官HerveCoureil表示。“它必須成為公司文化的一部分。”
為了達(dá)到這個目標(biāo),公司不能將敏捷和DevOps的責(zé)任局限于一小部分專家。“提供符合DevOps最佳實(shí)踐的版本是整個團(tuán)隊(duì)的責(zé)任,而不只是一個人的責(zé)任,因?yàn)檫@個人可能成為一個單一的失敗點(diǎn),”Coureil說。
在施耐德,“實(shí)施敏捷和DevOps的愿景是試圖轉(zhuǎn)變公司的整體運(yùn)營模式”,Coureil說。“我們正在應(yīng)用敏捷實(shí)踐,在組織的所有功能之間建立持續(xù)而透明的溝通流,包括項(xiàng)目組合管理、財務(wù)管理、產(chǎn)品管理、產(chǎn)品工程、體系結(jié)構(gòu)、專業(yè)服務(wù)和終端消費(fèi)者。”
在2019年初,施耐德創(chuàng)建了一個敏捷轉(zhuǎn)型辦公室,以幫助團(tuán)隊(duì)更快地交付數(shù)字化產(chǎn)品,提高質(zhì)量,并減少浪費(fèi)。“我們正在采用‘Wave和Spike’方法來擴(kuò)大整個公司的轉(zhuǎn)型規(guī)模,”Coureil說。“在Wave中選擇的任何產(chǎn)品或一組產(chǎn)品都應(yīng)用了利用敏捷的Scrum和看板、DevOps CI/CD(持續(xù)集成和持續(xù)交付)、持續(xù)反饋和精益的項(xiàng)目組合管理實(shí)踐等新操作模型的所有方面。”
另外,該公司為團(tuán)隊(duì)提供了研討會來獲得Scrum實(shí)踐經(jīng)驗(yàn),另外還提供了教練來幫助團(tuán)隊(duì)改進(jìn)他們對敏捷的使用。施耐德的所有開發(fā)項(xiàng)目現(xiàn)在都已經(jīng)利用了敏捷框架方法。
衡量你的改進(jìn)
僅僅在組織中擴(kuò)展敏捷和DevOps部署是不夠的。企業(yè)還需要衡量這些舉措在擴(kuò)張的每一個階段所帶來的價值。
“你需要用當(dāng)前狀態(tài)基線定義關(guān)鍵性能的度量,并不斷迭代度量和進(jìn)展,”Coureil說。“從了解現(xiàn)有的團(tuán)隊(duì)角色和工作實(shí)踐開始,了解他們是如何工作的,以及哪里需要改進(jìn)。”
施耐德有幾個團(tuán)隊(duì)在使用瀑布開發(fā)模型--瀑布模型是將項(xiàng)目活動分解為線性的、連續(xù)的階段,每個階段都依賴于前一個階段的交付--但都過渡到了Scrum敏捷流程框架。
“我們有其他的團(tuán)隊(duì)在實(shí)踐Scrum的部分內(nèi)容,但內(nèi)容并不一致,”Coureil說。“我們創(chuàng)建了一個團(tuán)隊(duì)自我評估模板,幫助團(tuán)隊(duì)理解敏捷的最佳實(shí)踐,他們自己的實(shí)踐,以及他們需要做什么來進(jìn)行改進(jìn)。”
IT服務(wù)提供商Insight Enterprises使用了諸如技術(shù)進(jìn)步、產(chǎn)品線趨勢、資源消耗、產(chǎn)品質(zhì)量、性能和業(yè)務(wù)成果等度量指標(biāo),
高級數(shù)字化轉(zhuǎn)型架構(gòu)師Jonathan Parnell說,要檢查的具體因素包括流程的時間、減輕問題的時間、修復(fù)產(chǎn)品缺陷的成本,以及其他因素。
在人員/文化方面,管理層還需要關(guān)注團(tuán)隊(duì)動態(tài)、流程開銷、可信度、士氣和動機(jī)方面的趨勢。
抵制部署過多工具的誘惑
幫助企業(yè)開發(fā)DevOps的產(chǎn)品并不缺乏,其中很多都是有用的。但重要的是要防范工具數(shù)量的膨脹。
“有太多的參考工具會導(dǎo)致團(tuán)隊(duì)之間的不同行為,并限制共享的文化,”Coureil說。“這會加大采用最佳實(shí)踐和標(biāo)準(zhǔn)的難度,增加我們的潛在網(wǎng)絡(luò)安全攻擊,并阻礙規(guī)模的縮減。”
施耐德的核心DevOps架構(gòu)師會負(fù)責(zé)維護(hù)工具堆棧,不斷地豐富它以覆蓋新的用例,并在需要時進(jìn)行更改。“這需要一個永久性的技術(shù)觀察,”Coureil說。
為了提高生產(chǎn)效率并保證安全性,施耐德維護(hù)了一個用于相互協(xié)作的DevOps工具棧,它涵蓋了一系列的技術(shù)和場景,包括基于云的應(yīng)用程序和用于物聯(lián)網(wǎng)應(yīng)用程序的傳感器。
盡早并經(jīng)常性地確保安全和治理
在敏捷和DevOps項(xiàng)目開始時就考慮安全措施是很重要的,因?yàn)檫@樣就不會引起可能影響開發(fā)生命周期的問題。
“不管我們的發(fā)布和部署有多快,安全都不會是唯一的瓶頸問題,速度和可伸縮性也會是一個制約因素,”Parnell說。“有時候信任的程度和動機(jī)會嚴(yán)重失調(diào)。因?yàn)椴⒉皇莾r值流中的每個人都能夠感受到安全的責(zé)任。”
在Insight,開發(fā)的重點(diǎn)一直就是業(yè)務(wù)的最終用戶。“從技術(shù)上來說,我們通常忽略了一個關(guān)鍵的觀點(diǎn),即把安全性視為質(zhì)量的一部分,而把違反安全性的行為視為缺陷的一部分,”Parnell說。“我們必須一路返回,在持續(xù)集成中解決這個問題。”
該公司實(shí)施了許多基于安全的元素,包括考慮到威脅建模和其他安全措施的策略驅(qū)動開發(fā)。
“我們花了一年多的時間來實(shí)現(xiàn)這一點(diǎn),因?yàn)槲覀兯袚?dān)的技術(shù)債務(wù)并不是從安全開始的,而是從傳播‘安全文化’所需的認(rèn)知開始的。”Parnell說。
敏捷和DevOps的治理也很重要。“要避免將敏捷轉(zhuǎn)化為‘每個人都可以做自己想做的事情’的陷阱,”金融服務(wù)提供商萬事達(dá)的首席技術(shù)官Steve Bagby表示。“這只會導(dǎo)致混亂,扼殺你運(yùn)營和保護(hù)系統(tǒng)的能力,以及阻礙你最終服務(wù)客戶的能力。”
幾年來,萬事達(dá)卡一直圍繞著敏捷原則來組織其工程團(tuán)隊(duì)。“由于我們所做的幾乎所有的事情都是作為服務(wù)來交付的,出于需要,可操作性建設(shè)一直就是其中不可分割的一部分,”Bagby說。
將構(gòu)建、部署和運(yùn)行應(yīng)用程序的職責(zé)集成在一起有一個明顯的好處,“每個人都會有自己的利害關(guān)系,并且需要對團(tuán)隊(duì)負(fù)責(zé),”Bagby說。
強(qiáng)調(diào)培訓(xùn)
要在組織中廣泛地部署敏捷和DevOps,就需要有大量精通這些方法并準(zhǔn)備在開發(fā)過程中進(jìn)行必要更改的員工。
“需要盡早并經(jīng)常性的進(jìn)行訓(xùn)練,包括面對面的課堂訓(xùn)練和練習(xí)場景,”Coureil說。“我們在全球進(jìn)行了數(shù)十次課堂實(shí)踐培訓(xùn),以便建立一個基礎(chǔ)。然后,我們會讓教練進(jìn)行小型的培訓(xùn),以強(qiáng)化最佳實(shí)踐。”
所有的培訓(xùn)內(nèi)容都可以在一個交互式的學(xué)習(xí)門戶中獲得,以便跨團(tuán)隊(duì)的進(jìn)行重用,Coureil說。“每個人都可以添加自己的評論和內(nèi)容來提高學(xué)習(xí)效果。”他說。
Insight為其敏捷和DevOps項(xiàng)目創(chuàng)建了一個12到15人的跨職能團(tuán)隊(duì),還有包括開發(fā)人員、數(shù)據(jù)庫管理員和來自IT運(yùn)營、網(wǎng)絡(luò)、安全和業(yè)務(wù)部門的代表。
“這個團(tuán)隊(duì)進(jìn)行了一系列的初始研討會,以便使敏捷和DevOps的概念、基礎(chǔ)、最佳實(shí)踐和命名法以及與其他相關(guān)的學(xué)科得到統(tǒng)一和支持,”Parnell說。“這是至關(guān)重要的。沒有這些基本的一致性,實(shí)現(xiàn)流動性就幾乎是不可能的。”
Insight很快發(fā)現(xiàn),跨職能團(tuán)隊(duì)代表了業(yè)務(wù)的各個方面,他們的動機(jī)可能各不相同,在某些情況下甚至是完全相反的。“主要是那些想要速度和靈活性的開發(fā)人員,但不包括那些需要穩(wěn)定性和安全性的開發(fā)人員,”Parnell說。“通過整合來自指標(biāo)中的客觀證據(jù),它最終成為了進(jìn)攻(利用機(jī)會)和防守(管理風(fēng)險和不確定性)的最好的平衡。”
分享最佳實(shí)踐
前面提到的一些步驟也涉及到了實(shí)踐的共享。但值得一提的是,這對于在整個組織中成功地擴(kuò)展敏捷和DevOps是多么的重要,并且需要有一種額外的機(jī)制來實(shí)現(xiàn)這一點(diǎn)。
保險公司Liberty Mutual Insurance已經(jīng)創(chuàng)建了一個敏捷實(shí)施辦公室,它可以幫助不同的開發(fā)團(tuán)隊(duì)隨著時間的推移在敏捷和DevOps中變得成熟。
“我們還從Liberty外部聘請了經(jīng)驗(yàn)豐富的人才,比如Scrum master,以便將最佳實(shí)踐引入并嵌入團(tuán)隊(duì),”公司的高級副總裁兼托管服務(wù)總經(jīng)理MarkCressey表示。
“在某些情況下,他們承擔(dān)了這項(xiàng)工作,在大多數(shù)情況下,他們將指導(dǎo)我們在轉(zhuǎn)型過程中引進(jìn)的內(nèi)部Scrum大師,”Cressey說。“不要讓每個球隊(duì)都朝著自己的方向前進(jìn),這真的很重要。通過關(guān)于敏捷、敏捷轉(zhuǎn)型和DevOps的外部知識來支持他們是我們成功的關(guān)鍵。”
分享經(jīng)驗(yàn)還意味著可以從團(tuán)隊(duì)中聽取他們的進(jìn)展或是可能出現(xiàn)的任何問題。“從0到100%的敏捷并不是在一條直線上的,”Cressey說。“但在整個過程中,我們聽取了團(tuán)隊(duì)的意見,當(dāng)我們需要根據(jù)反饋來采取不同的策略時,我們就會這么做。”我們可以暫?;蛑刂萌魏谓o定的區(qū)域或練習(xí),以便獲取有關(guān)哪些有效哪些無效的關(guān)鍵反饋。”
從高層獲得支持
對于那些原生使用這些方法的組織來說,擴(kuò)展敏捷和DevOps可能是很自然的事情。但對于許多對這些概念相對陌生的人來說,來自高管的支持是成功的關(guān)鍵。
“每個人都說他們想要或者已經(jīng)是敏捷的。但為了真正做到這一點(diǎn),高管們必須完全接受這個概念,”金融服務(wù)公司CapitalOne的小型企業(yè)與國際業(yè)務(wù)首席技術(shù)官M(fèi)arkMathewson表示。
“在我的工作中,我發(fā)現(xiàn)管理人員必須能夠支持預(yù)算、能力規(guī)劃等各方面的工作。”Mathewson說。
Capital One已經(jīng)進(jìn)行了7年的大規(guī)模的技術(shù)轉(zhuǎn)型,通過轉(zhuǎn)型,它全面重塑了自己的人才和文化、人們的工作方式以及技術(shù)基礎(chǔ)設(shè)施。“我們轉(zhuǎn)向了一個100%的交付軟件敏捷模型,并建立了一個規(guī)模龐大的工程組織,”Mathewson說。
該公司花了三年的時間來轉(zhuǎn)向云計(jì)算、擴(kuò)展DevOps、采用開源,并最終能夠開始利用由此帶來的靈活性。Capital One現(xiàn)在正將注意力轉(zhuǎn)向標(biāo)準(zhǔn)化和持續(xù)交付。
“在過去,開發(fā)者對產(chǎn)品的參與大多在交付運(yùn)營后就結(jié)束了,”Mathewson表示。“但現(xiàn)在我們正在實(shí)踐一種新的DevOps方法,我們的開發(fā)人員對這些產(chǎn)品有了更多的所有權(quán),并且能夠?qū)φ_\(yùn)行時間、可支持性和監(jiān)控變得更加積極主動。”