高效敏捷的十大經(jīng)驗法則
摘要:敏捷是一種應對快速變化的需求的一種軟件開發(fā)能力,文中Robert總結(jié)了這十年來的敏捷軟件開發(fā)經(jīng)驗,縮減成十條經(jīng)驗法則,比如:敏捷就是紀律、把自己當做統(tǒng)觀大局的人、持續(xù)規(guī)劃、簡單至上等等。
敏捷是一種應對快速變化的需求的一種軟件開發(fā)能力,相對于“非敏捷”,更強調(diào)程序員團隊與業(yè)務專家之間的緊密協(xié)作、面對面的溝通(認為比書面的文檔更有效)、頻繁交付新的軟件版本、緊湊而自我組織型的團隊、能夠很好地適應需求變化的代碼編寫和團隊組織方法,也更注重軟件開發(fā)中人的作用。 本文是VersionOne 公司CEO Robert Holler,一家專注于敏捷開發(fā)工具和敏捷培訓的公司。Robert總結(jié)了這十年來的敏捷軟件開發(fā)經(jīng)驗,縮減成十條經(jīng)驗法則,希望對熱愛敏捷的公司、團隊和個人有所幫助。 1. 簡單至上 由于軟件和組織架構(gòu)的復雜性,這就需要我們能夠清楚地分辨出什么是重點,什么是非重點。敏捷,雖然從概念上理解起來很簡單,但實際上它是相當復雜的。即使是很小的團隊,他們也關乎著整個架構(gòu)的調(diào)整以及復雜的網(wǎng)絡通信。與迭代式開發(fā)相比兩者都強調(diào)在較短的開發(fā)周期提交軟件,敏捷方法的周期可能更短,并且更加強調(diào)隊伍中的高度協(xié)作。 此外,成功的敏捷人士需要具備不同的業(yè)務能力以適應與他們一起工作的相關人員,包括企業(yè)的相關利益者,產(chǎn)品企劃人員、開發(fā)者,測試人員等等。Holler稱很多公司在建立敏捷平臺時,每當面對有獨特需求的用戶時,他們很容易使自己陷入困境。 2. 定義自己的節(jié)奏 面對公司日常的冗長會議時你會做什么?——需要時刻提醒自己如何削減時間,不浪費會議時間。在會議開始之初,不要一個一個提問問題,讓員工在會議之初就把問題準備好并且能夠以快速、簡潔的話語表述出。當你的敏捷模式進行實施的時候,你需要依靠這些問題的答案來優(yōu)化你的流程并衡量項目的成敗。 3. 敏捷就是紀律 Holler曾聽說過一些公司對敏捷的一些描述及案例。有的公司甚至推崇“Cowboy Coding”牛仔式編碼。他說真正的敏捷團隊恰恰與之相反的。事實上,靈活的自動化和高效的紀律性是通向敏捷團隊成功的重要一步。好的敏捷團隊在紀律上能夠比其他團隊更加嚴謹,尤其是在計劃區(qū)域,單元測試、持續(xù)集成以及自動化測試等方面。 4. 軟件很難Scale,但是敏捷卻不 持懷疑論者并不認為敏捷能得到很好的擴展。相反,如果一個組織架構(gòu)中心發(fā)生改變或者缺乏紀律,此時軟件開發(fā)規(guī)模則不受控制。對于大多數(shù)團隊、項目、程序以及投資者而言,敏捷能夠很好的擴展。因為敏捷更多關注的是業(yè)務的而不是一些瑣事。 5. Think of the Big Picture 把自己當做統(tǒng)觀大局的人 從大局開始,然后再思考某個特性,然后進行修復,那么你才算真正完成。在這里,系統(tǒng)思考非常重要,這就需要一個真正成熟、能夠深入探究復雜與沖突議題的團隊,否則改變系統(tǒng)可能會帶來一定的風險。 此外,溝通很重要。在項目的初期,各個項目組(至少每個組有部分人)應該集中在一起工作,這樣有助于項目組之間人員今后的溝通。在這個期間,有這樣的事情需要完成,互相了解、做一些關鍵決定。 6. 失去信仰 有人說,敏捷就是一門宗教,需要人們虔誠地去尊重其各項規(guī)范。但靈活性對于敏捷來說非常重要,敏捷內(nèi)部應用實踐需要運用哪些生存法則?比如NASA(美國航空航天局)需要迭代、實地測試、了解所有的操作以便當發(fā)射太空時不會發(fā)生重構(gòu)。因此,你要做的是適應敏捷需求。通常開發(fā)團隊比業(yè)務部門更能適應不同的操作周期。因此,為了適應不同的節(jié)奏,你應該盡可能的與敏捷迭代方面保持密切聯(lián)系。 也許這個很難做到自動化,但是很多開發(fā)者運用一些靈活的做法,難題自然會迎刃而解。 7. 持續(xù)關注商業(yè)價值 許多敏捷團隊在做Technical Story's Delivery以速度來考量總體的商業(yè)價值。這是個錯誤的想法,千萬不要這么做。團隊中的成員需要縱觀全局以最大限度地降低項目開發(fā)周期。 8. 敏捷不只是為軟件部們 這實際上有利于開發(fā)部門的敏捷轉(zhuǎn)型,如果(Ops,業(yè)務部分)也可以在他們的團隊中敏捷轉(zhuǎn)型。當然我們也能看到業(yè)務部門、系統(tǒng)管理以及UX/設計部門的敏捷成功轉(zhuǎn)型案例。此外,你必須同時考慮技術層面,改進質(zhì)量并支持工程師、測試人員以及其他進行編碼實施工作的人。 9. 持續(xù)規(guī)劃 Winston Churchill(溫斯頓-丘吉爾)說:“計劃的意義很渺小,但規(guī)劃卻是必不可少的?!?每天給自己設定計劃以便能適應日常的工作流程,從而確保你的價值最大化。 產(chǎn)品路線必須要適應敏捷策略,但是路線圖依然是戰(zhàn)略趨勢和產(chǎn)品長期版本之間重要的調(diào)節(jié)方法。 10. 做敏捷但不要做重復的敏捷 你應該時刻保持敏捷并遵循“敏捷”之外的敏捷。盡管這些都是小事,或許對你有很大的成效。 有人說,成功實施敏捷的團隊與沒能完成敏捷實施的團隊之間最簡單最大的區(qū)別就在于,他們使用了一塊真正的實體白板。請別光說不練,行動永遠比空談有效,你無法預見將發(fā)生的所有困難與問題,直到你真正開始去做敏捷模式。你花在空談如何去做卻從不開始的時間越長,越可能建立起不切實際的期望,最終使之變成又一個管理層的噱頭。不要因為趕時髦而去實施敏捷模式,而讓敏捷模式幫你實現(xiàn)更重要的東西,理解每個成員想從敏捷模式中獲得什么,以便讓他們的生活、工作變得更美好。 |
|