| 2005 年 10 月 19 日 來(lái)自 Rational Edge:軟件項目管理者常常認為 Rational Unified Process(即大家所熟知的RUP),不適用于有限規模的軟件項目。本文提供了在整個(gè)迭代開(kāi)發(fā)階段均遵循RUP,從而獲益匪淺的兩個(gè)小項目的典型示例。 David Kohrell 在2005年2月的 Rational Edge 期刊上指出,Rational Unified Process,? 或者稱(chēng) RUP,?為項目的推進(jìn)提供了一個(gè)靈活的過(guò)程 -- 從先啟階段,經(jīng)過(guò)細化階段、構建階段,以及產(chǎn)品化階段 -- 給予指導和說(shuō)明。本文特別關(guān)注RUP如何同樣能為小項目和團隊提供指導。另外,在用于敏捷開(kāi)發(fā)環(huán)境的能力方面,我們也觀(guān)察了RUP和其它指導(比如,項目管理協(xié)會(huì )的項目管理知識體系,或PMBOK?)。 小型項目和團隊的背景 通??磥?lái),如果被安排來(lái)管理一個(gè)小項目,也就意味你是新人或者你已經(jīng)落伍了。大家都認為“一流的資源”應該被分配給大型的、企業(yè)級的、全特性的發(fā)布項目。這種認識是錯誤的,讓我們來(lái)看一下市場(chǎng),特別是2001年 .com 破碎之后,小型項目和敏捷團隊的時(shí)機成熟了。公司在一個(gè)月、一個(gè)季度、或者一年之內完成的項目越小,那么,產(chǎn)生收益、減少成本、或者拓展品牌和價(jià)值的機會(huì )就越多。 明確以下一些定義之后,我們繼續這個(gè)話(huà)題的討論: - 大型項目:預算超過(guò)$500,000,團隊規模為十三人或者更大,項目進(jìn)行時(shí)間超過(guò)一年。
- 中等項目:預算$100,000-$500,000,團隊規模為六到十二人,項目進(jìn)行時(shí)間為六個(gè)月到一年。
- 小型項目:預算低于$100,000,團隊規模少于六人(包括在該項目和其他項目之間共用的團隊成員,以及每日必須的人員)。項目進(jìn)行時(shí)間少于六個(gè)月。
- 變更請求:預算低于$50,000的所有任務(wù)都是被一個(gè)人在幾周之內來(lái)完成。
RUP同樣適用于小型項目 在 Michael Jordan、Greg LeMond、Tiger Woods之前,Bo Jackson統治著(zhù)整個(gè)體育世界。19世紀80年代后期流行著(zhù)這樣一句話(huà):“Bo 懂得籃球、足球、投資”。 過(guò)去的三個(gè)多月里,在研討會(huì )或課堂上,我引用Bo Jackson的例子來(lái)反駁RUP“不適”小型項目的錯誤觀(guān)點(diǎn)。我認為RUP“適合”于所有類(lèi)型的項目,這讓很多人都感到驚詫。就我在過(guò)去幾年使用RUP的經(jīng)歷而言,它能夠用在所有大型、企業(yè)級項目,并且組織變更請求。它不僅僅是一個(gè)可有可無(wú)的方法論。 下面是人們經(jīng)常提起的用來(lái)說(shuō)明“RUP不適用于小型項目”的兩個(gè)方面,我將逐一解答這些問(wèn)題,來(lái)證明他們的看法是錯誤的: - 敏捷方法考慮到迅速和緊密的增加或者階段;減少開(kāi)銷(xiāo);并且確保開(kāi)發(fā)人員與客戶(hù)之間的緊密聯(lián)系。
我的回答:敏捷方法以及類(lèi)似的方法(SCRUM,Paired Programming)在軟件構建中是革新的、有用的。然而,在RUP中也可以使用敏捷方法。那些輕量級的方法可以很好地在新系統的構建階段、解決方案,或者程序中得到運用;但是仍然需要管理其它三個(gè)階段的上游和下游活動(dòng),比如決定需要做什么(需求)以及操作環(huán)境將受到什么影響(發(fā)布管理)。RUP并不關(guān)注先啟階段、細化階段、構建階段和產(chǎn)品化階段所有業(yè)務(wù)原則的使用,事實(shí)上,它是為這些活動(dòng)提供了一個(gè)最佳框架。
- RUP以及類(lèi)似的指導,比如PMBOK, 軟件工程協(xié)會(huì )(SEI)的集成的能力成熟度模型 (CMMI),或 UK 的 IT Infrastructure Library (ITIL)標準給小型項目強加了一些不必要的過(guò)程。他們其實(shí)僅適用于一千萬(wàn)以上的大型項目。
我的回答:方法、知識體系,或者成熟模型不會(huì )強加過(guò)程。他們只為估算需要做什么,以及如何做得更好而提供一定的基礎?!叭绾巫觥边@部分是由實(shí)施組織來(lái)決定的。
PMBOK并沒(méi)有規定2000版本中的39個(gè)過(guò)程或者2004版本中的44個(gè)過(guò)程在項目中都必須得到使用。它是一個(gè)知識體系,為項目管理者可能遇到的各種情況提供了一個(gè)起點(diǎn)。例如,它有助于定義組織的變更控制過(guò)程應該包括哪些內容?,F在,項目管理專(zhuān)業(yè)人員(PMP?)在項目管理協(xié)會(huì )(PMI)監督之下,當然必須遵循PMBOK。PMI提供PMP資格認證,這樣,聘用專(zhuān)業(yè)人員的組織機構就能夠放心該專(zhuān)業(yè)人員懂得PMBOK。但是這并不意味著(zhù)專(zhuān)業(yè)人員必須在每個(gè)項目中都使用到PMBOK的每一項知識。
SEI的能力成熟度模型(CMM)和CMMI從五個(gè)級別來(lái)評估并驗證某組織的成熟度。按照SEI的規定,很清楚地評估和驗證一個(gè)組織做什么,以及在某種程度上,他們如何完成。然而,這并不是規定一個(gè)“可重復過(guò)程”(二級)必須利用過(guò)程、工具和組織角色來(lái)完成。
相似地,“RUP的精髓”-- 以及已開(kāi)發(fā)的許多實(shí)施RUP的工具 -- 培養逐漸細化的理念,即增量開(kāi)發(fā)的本質(zhì)。RUP的觀(guān)點(diǎn)是組織應當設計并構建部分而不是全部解決方案,需求是已知的?,F實(shí)中,驗證某特色或者系統是“受人歡迎的應用程序”(比如,想法),還是“失敗”(比如,Coca-Cola‘s New Coke,自1984)的一個(gè)最有效辦法就是將產(chǎn)品交付給用戶(hù)。
應用RUP,探尋SEI CMM/CMMI評估,或者使用PMI PMBOK時(shí),最佳實(shí)踐是成體系地使用這些向導。例如,你應該首先懂得業(yè)務(wù)需要(a.k.a 需求),從本質(zhì)的用例開(kāi)始,基于那些用例和UML的強大功能進(jìn)行建模。在2004年《The Rational Unified Process Made Easy》一書(shū)中,Per Kroll和Philippe Krutchen很好地描述了這個(gè)方法: ...也許,人們采用RUP時(shí)最常出現的錯誤是使用太多工件或者做太多活動(dòng)。過(guò)量使用RUP將會(huì )降低你的開(kāi)發(fā)效率;RUP過(guò)程框架類(lèi)似于自助餐,如果你還想保持健康和快樂(lè ),那么就不能吃光所有的飯菜。 1
RUP應用在小型項目環(huán)境中 現在,讓我們舉兩個(gè)例子,來(lái)驗證RUP在小型項目環(huán)境中的使用。首先是公共部分項目 – 更新一個(gè)使用了十五年的打印工作過(guò)程。第二個(gè)項目涉及將RUP用于創(chuàng )建一個(gè)學(xué)習管理系統入口,稱(chēng)為“TAP University”。兩個(gè)項目預算均低于$100,000,由小型團隊在90到120天以?xún)韧瓿伞?/p> 打印服務(wù)更新項目 Bill Wonch,本文作者之一,是 Nebraska 州勞工部的兼職講師和軟件架構師。他最近負責更新一套已使用20年的程序,合計并打印出成千上萬(wàn)份報表和帳單,以下是他的故事。 這只是一個(gè)小項目。但是,它卻是系統的核心,稱(chēng)為 Mix,而且,必須支持部門(mén)內其它系統的更新。這個(gè)大框架說(shuō)明了RUP中可交付的軟件體系架構文檔 -- 理解每個(gè)項目、變更命令,或者任務(wù)都影響著(zhù)工作的進(jìn)展,如同高爾夫球的每個(gè)線(xiàn)都與其它相關(guān)聯(lián)一樣。 當即有系統需要更新,以便與公司現代化的失業(yè)保險利益支付系統一起運作的時(shí)候,“Mix更新項目”開(kāi)始了。原先的系統Mix是用COBOL構建的,運行于一個(gè)主機系統上?!癕ix”并不是一個(gè)簡(jiǎn)稱(chēng);1987年起名為“Mix”是因為它混合了進(jìn)行大量打印工作的主框架數據和窗體。 新系統將在Java中使用成熟的商業(yè)化(commercial-off-the-shelf,COTS)應用和組件來(lái)構建,生成必要的XML文件。 項目的先啟階段,我們?yōu)橄到y定義三個(gè)參與者: - 抽象應用類(lèi),表示使用即有Mix應用程序的所有系統。
- 操作類(lèi),表示員工管理打印的操作。
- 業(yè)務(wù)使用者,即使用該文檔存儲庫的人員。
如圖1所示,每個(gè)參與者均與相應的用例關(guān)聯(lián)。記住這些參與者和用例,我們可以為更新系統選擇最佳的商業(yè)應用。通過(guò)這個(gè)信息,我們可以精確地計算出更新所需的成本。那些是項目合同與計劃中有限的內容?;诖?,我們可以估算出項目的資金。 圖1:在項目先啟階段為系統定義的三個(gè)參與者 根據先啟階段確定的計劃和捕獲的用例,RUP指引著(zhù)項目的進(jìn)行。RUP精髓的一部分就是可以將需求劃分成不同的組,并根據需要將各組歸入先啟、細化、構建和產(chǎn)品化階段。Mix系統中包括106個(gè)打印程序,從先啟階段到產(chǎn)品化階段,將這些程序分成幾個(gè)組,然后再單獨迭代地處理,經(jīng)過(guò)四個(gè)階段的每次進(jìn)展都是低風(fēng)險的(驗證方法),然后再將大大小小打印程序集成。以上做法是有意義的。 TAP University TAP (Technology As Promised) University是一個(gè)在線(xiàn)學(xué)習管理系統項目。TAP University的目標是延伸這種由TAP伙伴提供給公司客戶(hù)的面對面培訓,并為公司、公共用戶(hù)及學(xué)生提供在線(xiàn)服務(wù)。 2 這是一個(gè)小型的項目。改進(jìn)一個(gè)開(kāi)源的學(xué)習管理系統。 該項目的可視化文檔草案于2005年2月22日提出,項目計劃完成于2005年5月3日,包括需要的資源、成本和范圍。表1描述了每個(gè)迭代和用例。 表1:TAP University項目的迭代和用例 | Iteration | Target release | - LMS functional and ready for course loading and configuration
- Use Cases
- Administer LMS
- Ingest Content
- Manage Users -- load instructors and students
- Actors
- TAP University LMS
- Instructors
- Course Developers
- System administrators
- Students
| May 23, 2005 | - Student registration and e-Commerce
- Use Cases
- Register students
- Process payments
- Enable courses
- Actors
- Same as in #1 plus
- ACH systems (check)
- Credit card validation systems
- Accreditation systems
| June 20, 2005 | - Course conduct and extensions
- Use Cases
- Modify Courses
- Interface with institutions
- Actors
- Same as #1 and #2 plus
- Institutional systems
| August 15, 2005 | | 從設想到實(shí)施,這個(gè)項目只有不到六個(gè)月的時(shí)候;從正式的項目工作開(kāi)始到功能的完成,從項目計劃到支持這個(gè)產(chǎn)品僅花費了90天。 這里涉及到了8項資源;估計完成該項目所需的小時(shí)數為652。成本主要是“人力資本” -- 低于 $15,000。 RUP在本項目中的應用主要包括以下兩方面: - 在迭代和用例的組織方面,RUP已經(jīng)提供了一個(gè)框架。表1所示的用例與包含MS project 進(jìn)度表輸出的兩頁(yè)項目計劃共同構成了文檔文件。CVS 1.12 和 LMS 充當共享庫的作用。
- RUP指導我們如何構建和產(chǎn)品化,甚至在僅僅已知80%需求的情況下。例如,有三個(gè)可選的電子商務(wù)解決方案有待評估。決定使用哪個(gè)電子商務(wù)工具并不排除在迭代1眾的產(chǎn)出。這意味著(zhù)公司客戶(hù)能夠立即地使用迭代1。
結論:RUP的確也適合于小型項目 文章中提到的兩個(gè)小型項目呈現了不同類(lèi)型的組織的需要:大型公共部門(mén)辦事處與新近發(fā)展起來(lái)的小公司。項目的關(guān)注點(diǎn)也不同:更新使用15年之久的打印集合工具和在線(xiàn)學(xué)習管理系統。兩個(gè)項目共同之處是,他們的規模都很小,并且RUP都可以提供一套嚴格而靈活的方法。 Gary Pollice 等幾位作者在《小型團隊的軟件開(kāi)發(fā)》一書(shū)中為小型項目的管理者提出了一些有價(jià)值的建議: 面對不斷的變化,項目團隊如何掌握怎樣應對變化才能獲得最大的生產(chǎn)率?我們認為,關(guān)鍵在于盡可能多地學(xué)習不同技術(shù),學(xué)習如何有效地使用工具來(lái)支持不同的技術(shù),以及決定聯(lián)合起什么作用和什么時(shí)候起作用。 3 RUP以及各種支持RUP的工具,確確實(shí)實(shí)也“適用于小型項目”,另外,項目管理者應懂得如何最好地發(fā)揮RUP的優(yōu)勢。
注釋 1 Per Kroll and Philippe Kruchten, The Rational Unified Process Made Easy: A Practitioner‘s Guide to the RUP, Addison-Wesley: 2004, pp. 244-245. 2 http://www.tapuniversity.com/ 3 Pollice, Augustine, Lowe, and Madhu, Software Development for Small Teams: A RUP-Centric Approach, Addison-Wesley, 2004. p. xix.
參考資料 - 您可以參閱本文在 developerWorks 全球站點(diǎn)上的 英文原文。
作者簡(jiǎn)介 | | | | David Kohrell,Technology As Promised,LLC,(www.aspromised.com)總裁和 TAP University (http://tapuniversity.aspromised.com)。他是位于 Omaha, Nebraska的Bellevue大學(xué)項目管理方向的一位教授。作為IBM Scholars 網(wǎng)絡(luò )的一員,他曾在幾個(gè)組織中負責產(chǎn)品開(kāi)發(fā)、軟件交付、網(wǎng)絡(luò )基礎設施和過(guò)程工程項目方面的領(lǐng)導、培訓和咨詢(xún)。他獲得管理 M.A.,MIS,社區和地區計劃 M.A.,Nebraska 大學(xué)的 B.S.。他通過(guò)了項目管理協(xié)會(huì )的項目管理專(zhuān)家資格認證。此外,他還通過(guò) MS Project 2000 認證,成為 Microsoft Solutions Framework Practitioner 和 Microsoft Certified Programmer。 | | | | | Bill Wonch,Instructor,Technology As Promised,LLC(www.aspromised.com),Nebraska 州勞工開(kāi)發(fā)部門(mén)的一名軟件架構師。他從 Oklahoma 的 Rogers State University 獲得 Associates 學(xué)位。他在軟件工具的使用方面有豐富的經(jīng)驗,包括 Cold Fusion、PHP、 Rational Product Suite、UML、WebSphere、DB2、MS SQL、Crystal、ASP和XML。 | |