這些年敏捷開發(fā)在企業(yè)中取得了長足的進步,但常見的錯誤觀念阻礙了企業(yè)充分利用敏捷的方法。
今天你敏捷了沒有?
“敏捷”在互聯(lián)網(wǎng)和軟件開發(fā)領(lǐng)域從涓涓細流逐漸演變?yōu)樾袠I(yè)潮流,往小了說是改進了開發(fā)方法,往大了說是革了瀑布流式的命——把產(chǎn)品開發(fā)引向了快速迭代、小步快跑的路線上。
到目前為止,CIO已經(jīng)意識到敏捷開發(fā)的許多好處。比如個體和交互勝過過程和工具;可以工作的軟件勝過面面俱到的文檔;客戶合作勝過合同談判;響應(yīng)變化勝過遵循計劃等。但有仍舊存在一些誤區(qū),使企業(yè)變成敏捷開發(fā)的犧牲品。以下是CIO總結(jié)的經(jīng)驗。
敏捷人才
促進敏捷開發(fā)方式和有效的人才管理是許多CIO奮斗的目標(biāo)。敏捷不僅僅是一套原則和價值觀,而是與之配套的人才戰(zhàn)略。若想成功,CIO需要雇用具有敏捷經(jīng)驗的技術(shù)人才。
同時,敏捷是以人為核心、迭代、循序漸進的開發(fā)方式。我們學(xué)過瀑布開發(fā)模型,它是以文檔作為驅(qū)動,開發(fā)人員都是根據(jù)產(chǎn)品部門提供的需求文檔進行開發(fā),一切的核心是文檔。所以說文檔是這個模型中的一個核心。而敏捷開發(fā)的意義在于它只關(guān)注文檔中的重要點,或者盡可能的去簡化文檔,敏捷開發(fā)其實更注重的是人與人之間的溝通、交流。所以它強調(diào)以人為核心。
但非常遺憾,CIO在實施敏捷開發(fā)時并沒有足夠的投入在人才激勵策略上。因為現(xiàn)在的程序員應(yīng)該70%以上或許對開發(fā)語言很熟,但是缺少系統(tǒng)邏輯思維訓(xùn)練。更重要的是,嚴重缺乏項目管理、文檔管理的歷練。他們既不知道流程的重要性,也不知道死于流程的局限。對于敏捷開發(fā),他們只是抱著一種學(xué)語言的態(tài)度去學(xué)習(xí)敏捷開發(fā)的具體方法。CIO如果沒有及時投入精力去激勵他們,那么就將使得其反了。
預(yù)算阻礙
在預(yù)算固定的開發(fā)項目中,不要采用Agile。
當(dāng)前企業(yè)IT的預(yù)算都是在年初制定,但是Agile的開發(fā)模式往往會面臨需求比較大的改變,與之相對的就是預(yù)算不好確定,采用相對寬松和靈活的預(yù)算體系是企業(yè)需要提前做好準備的。
組織的變革阻力
敏捷的模式不僅僅是針對IT的開發(fā)和管理人員,同時也是對客戶或用戶的。以Scrum為例,業(yè)務(wù)部門需要有專門并且全職的人員和開發(fā)人員在一起完成工作,不斷做需求更新和排位,不斷收集業(yè)務(wù)部門的反饋來調(diào)整開發(fā)目標(biāo)。業(yè)務(wù)人員的參與程度的高低直接決定了Scrum方式的成敗。但是傳統(tǒng)企業(yè)中的業(yè)務(wù)部門是否做好了這個準備,是否有相應(yīng)的資源來匹配新的交付模式,都值得事先花更多的時間準備。
俗話說,“船小好掉頭”,只有規(guī)模夠小才能敏捷靈活,但是傳統(tǒng)大型企業(yè)IT有一個致命的問題,就是IT服務(wù)資源的全球化。以前這是一個引以為豪的地方,但是現(xiàn)在卻成為一個絆腳石。大部分的企業(yè)會把IT系統(tǒng)架構(gòu)、方案設(shè)計、IT運維、軟件開發(fā)和測試分家,業(yè)務(wù)關(guān)系管理(BRM)則可能緊挨著有業(yè)務(wù)部門的地點。這種分散的模式很難把Agile模式所需要的資源集中在某一個物理位置,所以企業(yè)IT只能采取虛擬團隊的模式來應(yīng)付這種情況,或者從長遠上來看準備進行大的組織結(jié)構(gòu)調(diào)整。
因此,這對組織結(jié)構(gòu)的轉(zhuǎn)變影響不小。目前還沒有看到哪個大企業(yè)為了實現(xiàn)Agile和DevOps改變傳統(tǒng)的IT組織架構(gòu),僅僅是在做小范圍的測試。
同時,如果沒有業(yè)務(wù)部門負責(zé)人、管理層,以及用戶的參與,那么敏捷開發(fā)的優(yōu)勢無法得到充分的發(fā)揮。如果公司其他部門不愿以新的方式去工作,那么與業(yè)務(wù)部門經(jīng)理和用戶的溝通將非常必要。
艱難過渡,循序漸進
在敏捷開發(fā)模式中,熟練的開發(fā)者能完成大規(guī)模的開發(fā),這就像是翻越大雪山。不過,積累必要的經(jīng)驗需要很長時間。如果組織剛剛轉(zhuǎn)向敏捷開發(fā)模式,那么需要從頭開始建立開發(fā)者的信心和能力,使他們逐步有能力承擔(dān)大型開發(fā)任務(wù)。
敏捷開發(fā)的實踐者需要持續(xù)優(yōu)化質(zhì)量和效率,這意味著每次開發(fā)都需要進行經(jīng)驗總結(jié),從而優(yōu)化開發(fā)策略和具體實踐過程。這樣的分析和學(xué)習(xí)并不僅僅是一小部分高級開發(fā)者的責(zé)任,而應(yīng)當(dāng)成為所有參與者的基本工作之一。此外,需要學(xué)習(xí)的也并不僅僅是軟件開發(fā)技能,還包括項目管理技巧、系統(tǒng)架構(gòu)、質(zhì)量保障,以及IT預(yù)算管理等。
敏捷開發(fā)模式的有機組成部分之一在于“持續(xù)地交付”。敏捷模式意味著與業(yè)務(wù)部門經(jīng)理和用戶的持續(xù)互動,這將在業(yè)務(wù)運營環(huán)境中持續(xù)帶來新版本軟件。這也意味著業(yè)務(wù)管理和關(guān)系管理的方式,以及運營團隊的基礎(chǔ)架構(gòu)會發(fā)生明顯的變化,這是一個循序漸進的過程,需要CIO格外的控制過程。
外包的困惑
有經(jīng)驗的CIO建議在敏捷開發(fā)模式中,如果需要與第三方開發(fā)服務(wù)提供商合作,那么需要額外的關(guān)注。
許多公司的IT部門都會將應(yīng)用開發(fā)工作外包給專業(yè)服務(wù)提供商。盡管在敏捷開發(fā)模式中,服務(wù)提供商可以扮演一定的角色,但商業(yè)模式和互動模式將會出現(xiàn)很大的不同。在敏捷開發(fā)過程中,坐在一起辦公是關(guān)鍵,因此能將大量工作任務(wù)外包給第三方的機會不大,而通過某種方式在內(nèi)部補充人員很可能是一種更有用的方式。
總結(jié):可以說,敏捷已經(jīng)得到管理層的注意,所以這也是CEO的關(guān)注點。CIO們必須考慮他們是如何描述敏捷的,這樣他們就能縮小IT和技術(shù)和業(yè)務(wù)之間的差距。因此,CIO應(yīng)該討論快速反饋、設(shè)計思維、客戶關(guān)系、整個組織的調(diào)整以適應(yīng)敏捷原則。