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