雖然在敏捷開發(fā)過程中,工具的使用已經(jīng)不會再被反復地強調(diào),但是實踐證明,我們?nèi)匀粺o法忽視工具對敏捷開發(fā)項目的重要意義。合理的選擇和使用工具,將使敏捷開發(fā)真正受益于工具,而不是受工具所累。
隨著軟件規(guī)模和復雜度的不斷加大,想在計劃的時間和預(yù)算內(nèi)完成一個項目似乎越來越難。主要原因就是不可控制的因素對整個開發(fā)過程的影響日益凸現(xiàn),如人員流失、需求變更、分布式團隊難于協(xié)調(diào)等。針對于此,一些被廣泛認可的方法,譬如敏捷和CMMI,越來越受歡迎。根據(jù)VersionOne在2006年的調(diào)查報告,大約有80%的公司在采用敏捷方法后生產(chǎn)力提高或明顯地提高。
敏捷開發(fā)強調(diào)以人為本,認為面對面溝通是軟件項目成功的一個重要因素。
當我詢問一個研發(fā)經(jīng)理關(guān)于敏捷開發(fā)所需的工具時,他開玩笑地說,一張白板和兩杯咖啡。這也反映出開發(fā)人員對于敏捷方法的普遍認知。
事實上,許多開發(fā)項目主管雖然認同敏捷開發(fā)所強調(diào)的快速反應(yīng)和溝通的理念,卻擔心它的“雜亂無章”帶來的“不安定因素”。因為它極度地強調(diào)人的因素,使得人員的素質(zhì)對敏捷團隊的影響,遠比對其他團隊更大。
舉例來說,配對檢入是個保證代碼質(zhì)量很好的方法。但編程人員不了解其重要性,可能為了進度,常常一個人草草就檢入了。因此,在采用敏捷方法時,若能適當?shù)厥褂霉ぞ邅肀4胬鄯e的知識并固化關(guān)鍵過程,必能使敏捷項目更加成功。我們試以敏捷開發(fā)的幾個主要特點為例,探討工具在敏捷開發(fā)中扮演的角色。
特點一:測試驅(qū)動開發(fā)
傳統(tǒng)的瀑布方法先編碼再測試,等到發(fā)現(xiàn)需求和設(shè)計上的問題,為了節(jié)省費用,常常不了了之。測試驅(qū)動開發(fā)是在需求產(chǎn)生后,設(shè)計模塊和其之間的接口,并將單元測試代碼完成。在此過程中,需求和設(shè)計上的偏差將會被發(fā)現(xiàn)。由于編碼尚未進行,只需更改需求和設(shè)計即可,避免造成太大浪費。
特點二:簡單設(shè)計
敏捷開發(fā)崇尚簡單的漸進設(shè)計,而不是劇烈的顛覆式設(shè)計。其目標是首先只設(shè)計我們所了解的那些部分,然后使該設(shè)計隨著時間的推移而逐漸改進,這有助于提高靈活性并將變化導致的成本最小化。
特點三:配對編程
盡管兩人一組的配對編程從理論上看使眼前目標和長遠目標都得以保證,這卻是敏捷方法中備受爭議的做法,反對者普遍認為它會導致耗時加倍。廣義的配對編程也包括前面提到的配對檢入(Pair Check-in),也就是由兩人一起檢驗代碼的正確性,然后才檢入。
特點四:小型發(fā)布
發(fā)布周期短可使對項目的評估提前,進而降低了風險性。但這所帶來是大量的可執(zhí)行文檔,造成管理上的困難。
工具所扮演之角色
現(xiàn)在讓我們以一個典型的敏捷團隊DevAgile為例,看看該如何用工具實現(xiàn)其敏捷過程和設(shè)想(圖1)。Smart先生是DevAgile團隊的項目經(jīng)理,他被要求在開發(fā)過程中體現(xiàn)我們以上所列的幾方面特點,在配對編程方面還要求配對檢入。
此文章共有5頁 1 2 3 4 5 下一頁
文章來源:中國項目管理資源網(wǎng)
|