第25章 生命期模型的選擇
效果
縮短原進度的潛力
一般
過程可視度的改善
一般
對項目進度風(fēng)險的影響
減低風(fēng)險
一次成功的可能性
很大
長期成功的可能性
極大
主要風(fēng)險
l選擇生命期模型這個行為本身沒有風(fēng)險,但針對每個具體的生命期,都可能存在對應(yīng)的風(fēng)險。
主要的相互影響和權(quán)衡
l無。
關(guān)于生命期的更多內(nèi)容請查看第7章。
第26章測量
測量不僅有激勵員工的短期效益,在成本,質(zhì)量和進度方面也有長期效益。測量為預(yù)估,進度,可見性提供了矯正機會。
效果
縮短原進度的潛力
好
過程可視度的改善
很好
對項目進度風(fēng)險的影響
減低風(fēng)險
一次成功的可能性
大
長期成功的可能性
極大
主要風(fēng)險
l對某個測量標(biāo)準(zhǔn)過度優(yōu)化。
對某個測量標(biāo)準(zhǔn)過度優(yōu)化是有害的,常常導(dǎo)致開發(fā)速度減低到非常慢。
l在對員工評估中誤用測量方法。
常犯的錯誤是用一個測量方法來評估一個具體的人。測量方案是跟蹤項目的,不是跟蹤某一個人的。
l從代碼行中獲得誤導(dǎo)信息。
l數(shù)據(jù)的精確性問題
主要的相互影響和權(quán)衡
l為改善項目預(yù)算,制定進度計劃,評估生產(chǎn)工具和評估編程實踐提供了基礎(chǔ)。
測量計劃通過下列方法來支持快速開發(fā):
l測量能提供狀態(tài)可見性。
l測量能誘導(dǎo)人員的活動。
l測量能提高士氣。
l測量能幫助設(shè)置實際期望。
1.應(yīng)用測量
以下是高效應(yīng)用測量的幾個關(guān)鍵因素:
1.目標(biāo),問題,測量標(biāo)準(zhǔn)
一些機構(gòu)常常因為測量無用的數(shù)據(jù)而浪費時間和金錢。目標(biāo),問題,測量標(biāo)準(zhǔn)有助于解決這個問題。
l確定目標(biāo)。決定若何改善你的項目或產(chǎn)品。
l提出問題。決定哪些問題有利于達到目標(biāo)。
l建立測量標(biāo)準(zhǔn)。
2.測量小組
建立一個獨立的測量小組通常是一個好辦法。因為有效的測量需要特殊的技巧。你并不一定需要一個全職的測量小組,因為測量是短期活動。
3.測量什么
成本和資源數(shù)據(jù),更改和缺陷數(shù)據(jù),過程數(shù)據(jù),產(chǎn)品數(shù)據(jù),
l數(shù)據(jù)粒度
大多數(shù)公司遇到的一個問題,就是數(shù)據(jù)收集的粒度太大,以至于無法使用。例如一個公司收集了項目總工花費多少工時,卻沒有收集總體說明,原型制作,體系結(jié)構(gòu),設(shè)計,實現(xiàn)等分別用了多少工時。工體工時對改善軟件開發(fā)活動并沒有太大作用。以下列出了計算時間的種類,為大部分項目提供了所需的顆粒度:

2.應(yīng)用收集到的數(shù)據(jù)
1.Pareto分析
如果你關(guān)心開發(fā)速度,收集數(shù)據(jù)后最有力的辦法就是Pareto分析,尋找那些花費了80%的時間,卻只占任務(wù)列表20%的活動。
2.分析及測量
與機構(gòu)收集過于粗糙的數(shù)據(jù)一樣,另一個極端的例子就是收集了過多無用數(shù)據(jù)。一個原則是在收集工作上花較少的時間,而在分析上花較多的時間。
3.反饋
一旦建立了測量計劃,測量結(jié)果就會影響開發(fā)者和管理者。機構(gòu)常常忘記向開發(fā)者提供反饋信息。
向開發(fā)者提供反饋信息,有利于開發(fā)者認(rèn)真對待測量計劃。
4.基準(zhǔn)報告
成功應(yīng)用測量的關(guān)鍵
l建立一個測量小組。
l在合適的測量粒度下跟蹤收集數(shù)據(jù)。
l提供測量反饋。
第27章小型里程碑
小型里程碑是一種項目跟蹤和控制的好辦法,它能很好的提供項目狀態(tài)可視性。它實際上是通過消除不可控制的風(fēng)險和不能發(fā)覺的進度滯后來獲得快速開發(fā)的效果的。
效果
縮短原進度的潛力
好
過程可視度的改善
很好
對項目進度風(fēng)險的影響
減低風(fēng)險
一次成功的可能性
大
長期成功的可能性
極大
主要風(fēng)險
l無。
主要的相互影響和權(quán)衡
l特別適合項目恢復(fù)。
l與日構(gòu)建和冒煙測試結(jié)合使用,效果很好。
l能與漸進原型法,用戶接口原型,需求說明和其他難管理的項目活動結(jié)合使用。
l增加項目跟蹤工作量換來良好的可視性和控制性。
小型里程碑對于快速開發(fā)的支持可以歸結(jié)為以下四點:
l提高狀態(tài)可見性
l提高控制精確度
l改善激勵
l減少進度風(fēng)險
1.應(yīng)用小型里程碑
小型里程碑可以通過技術(shù)領(lǐng)導(dǎo)或項目經(jīng)理在具體項目上執(zhí)行,可以由單個員工在個人工作范圍內(nèi)執(zhí)行。
當(dāng)執(zhí)行小型里程碑時,詳細(xì)需求分析的工作量將使開發(fā)人員猶豫不決,在大型項目中更是如此,同時大型項目又是容易失控的,因此在大型項目中堅持這種詳細(xì)跟蹤是非常必須的。
1.盡早啟動小型里程碑
2.讓開發(fā)者自己建立個人的小型里程碑
3.保持里程碑的小型特征
4.里程碑的二分性
如果允許開發(fā)人員報告90%完成里程碑,那么它就失去了意義。一定要確保里程碑二分性的嚴(yán)格。
5.制定一系列完整的里程碑
里程碑列表中一定要包含每一項任務(wù)。最常見的錯誤就是忽略了一些必要的任務(wù),或者開發(fā)人員在他們腦海中存在另一些計劃外的里程碑,不要允許這樣的行為。
6.在短期計劃中使用小型里程碑
小型里程碑適合對一個大的目標(biāo)進行短期進度跟蹤。一般來說是對一個主要里程碑的拆解。
7.定期評價進度和調(diào)整或重新制定計劃
小型里程碑還有一個優(yōu)點就是可以不斷地比較計劃和實際,然后根據(jù)實際進行調(diào)整。
小型里程碑在項目修復(fù)時非常有用(第16章)。
小型里程碑非常適合用于每日構(gòu)建和冒煙測試(第18章)。
小型里程碑也適合于控制漸進原型(第21章)和用戶接口原型法(第42章)。
第28章 外包
效果
縮短原進度的潛力
極好
過程可視度的改善
無
對項目進度風(fēng)險的影響
增加風(fēng)險
一次成功的可能性
大
長期成功的可能性
很大
主要風(fēng)險
l把專業(yè)知識擴到其他公司去。
l失去對開發(fā)的控制。
l泄露機密信息。
l丟失進度可視度和對進度的控制。
主要的相互影響和權(quán)衡
l以失去控制和削弱公司內(nèi)部開發(fā)能力,來換取減低成本和提高開發(fā)速度。
l減輕員工壓力。
l減少人員變動。當(dāng)沖忙上一個項目時,外包能人員部署上的變動。
1.應(yīng)用外包
1.制定一個包括風(fēng)險管理的管理計劃
在管理計劃中需要包含:供應(yīng)商選擇,合同洽談,開發(fā)需求,控制需求變化,跟蹤供應(yīng)商進度,監(jiān)督質(zhì)量,審核產(chǎn)出等。你可以跟你的供應(yīng)商一起制定管理計劃。
2.了解合同管理
管理外包合同已經(jīng)有成熟的知識體系了。可以參考《軟件采集管理》
3.優(yōu)先跟供應(yīng)商溝通
即使覺得與供應(yīng)商沒什么可以溝通時,也需要定期跟他們溝通。
4.依靠一些公司內(nèi)部的技術(shù)資源
5.留意不穩(wěn)定的需求
無論項目是自行開發(fā)還是外包,第一步都是應(yīng)該全力投入來確定一個穩(wěn)定的需求。這樣在項目的總價上不會出現(xiàn)更多的追加。
6.合同種類
這個可以參考PMP的采購管理。
7.承包商評估

成功應(yīng)用外包的關(guān)鍵
l仔細(xì)選擇供應(yīng)商。
l與承包商簽訂詳細(xì)的合同。
l至少要像自行開發(fā)項目一樣管理好外包項目。
l把與供應(yīng)商交流放在工作最重要的位置。
第29章原則性談判
原則性談判是一種基于改善溝通和創(chuàng)造雙贏的策略,而不是單方獲利的談判技巧。它可以應(yīng)用于需求分析,進度計劃制定,性能修改討論以及項目其他階段。
效果
縮短原進度的潛力
無
過程可視度的改善
很好
對項目進度風(fēng)險的影響
減低風(fēng)險
一次成功的可能性
很大
長期成功的可能性
非常大
主要風(fēng)險
l無。
主要的相互影響和權(quán)衡
l無。
第30章高效開發(fā)環(huán)境
效果
縮短原進度的潛力
好
過程可視度的改善
無
對項目進度風(fēng)險的影響
沒有影響
一次成功的可能性
大
長期成功的可能性
很大
主要風(fēng)險
l以裝飾為目標(biāo)的辦公環(huán)境會導(dǎo)致生產(chǎn)率下降。
l搬遷造成停工。
l由于軟件開發(fā)人員的優(yōu)越待遇會產(chǎn)生各種反應(yīng)。
主要的相互影響和權(quán)衡
l小量增加成本,帶來生產(chǎn)力的提高。
第31章快速開發(fā)語言
效果
縮短原進度的潛力
好
過程可視度的改善
無
對項目進度風(fēng)險的影響
增大風(fēng)險
一次成功的可能性
大
長期成功的可能性
很大
主要風(fēng)險
l帶來銀彈錯誤和過高估計時間的節(jié)省。
l不能拖大道大型項目。
l鼓勵魯莽編程。
主要的相互影響和權(quán)衡
l小量增加成本,帶來生產(chǎn)力的提高。
第32章需求修正
需求修正就是對產(chǎn)品說明進行仔細(xì)檢查,如果發(fā)現(xiàn)不必要或過于復(fù)雜的需求,就去掉。由于產(chǎn)品成本和進度主要受到產(chǎn)品范圍的影響,因此減少產(chǎn)品范圍將有助于產(chǎn)品成本和進度。
效果
縮短原進度的潛力
很好
過程可視度的改善
無
對項目進度風(fēng)險的影響
降低風(fēng)險
一次成功的可能性
很大
長期成功的可能性
極大
主要風(fēng)險
l刪除一些必要的需求。
主要的相互影響和權(quán)衡
l無。
第33章重用
。
效果
縮短原進度的潛力
極好
過程可視度的改善
無
對項目進度風(fēng)險的影響
降低風(fēng)險
一次成功的可能性
低
長期成功的可能性
很大
主要風(fēng)險
l如果重用部件質(zhì)量不高,或沒有經(jīng)過仔細(xì)挑選,可能造成資源的浪費。
l花費工作量。
l錯誤的投入。
l對節(jié)約的過高估計。
主要的相互影響和權(quán)衡
l無。
人們有時認(rèn)為重用只包含代碼層面,而實際上每一項工作都是可以被重用的:代碼,設(shè)計,數(shù)據(jù),文檔,測試材料,說明書,計劃等。
第34章簽約雇傭
第35章螺旋形生命期模型
螺旋形生命期模型是一個非常典型的生命期模型,它關(guān)注的重點在于發(fā)現(xiàn)和降低風(fēng)險。它對快速開發(fā)方面帶來的好處并不在于速度的加快,而在于不斷減低項目的風(fēng)險水平。能否成功運用螺旋形生命期模型,取決于盡責(zé)的,專心的和知識淵博的管理人員。
效果
縮短原進度的潛力
一般
過程可視度的改善
很好
對項目進度風(fēng)險的影響
降低風(fēng)險
一次成功的可能性
大
長期成功的可能性
極大
主要風(fēng)險
l無。
主要的相互影響和權(quán)衡
l用增加針對計劃的要求和實施的追蹤,換來進展可視度的改善和風(fēng)險的大幅度降低。
有關(guān)螺旋形生命期的詳細(xì)內(nèi)容,請參閱第7章的內(nèi)容。
第36章階段性交付
階段性交付是一種生命期模型,在該模型中軟件被分階段開發(fā)。在通常情況下,首先開發(fā)最重要的功能。它并不能減少軟件在開發(fā)上需要的時間,但能充分的提供開發(fā)進度標(biāo)記,以及項目狀態(tài)標(biāo)記。
效果
縮短原進度的潛力
無
過程可視度的改善
好
對項目進度風(fēng)險的影響
降低風(fēng)險
一次成功的可能性
很大
長期成功的可能性
極大
主要風(fēng)險
l目標(biāo)偏離。
主要的相互影響和權(quán)衡
l利用小型里程碑,可以規(guī)劃每個交付階段。
l成功依賴于確定一個程序族。
l靈活性小于漸進原型和漸進交付。
l可以作為漸進交付的基礎(chǔ),用增加計劃時的投入,換取進度可視性。

1.應(yīng)用階段交付
應(yīng)用階段交付,你必須在開始時,就對最終要交付的產(chǎn)品有清晰的概念。
運用階段交付是較晚一些的活動,可以等到你需求分析和結(jié)構(gòu)設(shè)計之后再開始著手考慮階段交付相關(guān)的事情。
一旦完成了結(jié)構(gòu)設(shè)計,為了應(yīng)用階段交付,你必須對一系列的版本做出計劃。然后在每一個版本中完成詳細(xì)設(shè)計,構(gòu)建,測試等工作。
1.關(guān)注開發(fā)者
階段交付要求每一個開發(fā)者都在階段截至日期前完成開發(fā)。如果一個開發(fā)者沒有完成,其他的版本都將受到影響。一些開發(fā)者習(xí)慣獨自工作,按找他們自己的順序來安排工作,還有一些開發(fā)者可能對階段交付的強制性感到反感。如果你不能有效的解決這兩個問題,而是放任開發(fā)者習(xí)慣自由,階段交付將失去意義。
確保開發(fā)者接受計劃,最好的辦法就是在最初制定計劃時,讓開發(fā)者參與其中。
2.項目的種類
階段交付能很好的應(yīng)用于已經(jīng)完全熟知的系統(tǒng)。如果你對產(chǎn)品中一些特性還沒有完全了解,你就必須繼續(xù)對產(chǎn)品深入了解,之后再做出階段計劃。
當(dāng)你的用戶急于使用產(chǎn)品中某一部分時,階段交付將發(fā)揮更好的作用。在產(chǎn)品完全完成之前,如果你能提供客戶他們繼續(xù)的20%的功能,那么你對客戶就提供了非常有價值的服務(wù)。
第37章W理論管理
通常一個項目涉及了很多帶有各自利益的干系人,包括指揮者,開發(fā)者,用戶,客戶,維護者等。W理論提供了一種與各自利益一致的管理框架。它的基礎(chǔ)是:開誠布公的了解各個干系人各自的利益,對沖突進行協(xié)商,然后組織項目,讓所有干系人實現(xiàn)各自的需求。
效果
縮短原進度的潛力
無
過程可視度的改善
很好
對項目進度風(fēng)險的影響
降低風(fēng)險
一次成功的可能性
極大
長期成功的可能性
極大
主要風(fēng)險
l無。
主要的相互影響和權(quán)衡
l取決于對原則性談判方法的使用。

從以上表格來看,很多目標(biāo)都是沖突的。如果組織沒有對這些目標(biāo)進行很好的協(xié)調(diào),各方都會感到利益受損。
1.應(yīng)用W理論
1.讓所有人都成為獲勝者

2.步驟一:確定公共獲勝的前提
l了解人們希望如果獲勝
l建立合理的期望
l將大家的任務(wù)與他們獲勝條件相匹配
l營造一個支持項目目標(biāo)實現(xiàn)的環(huán)境
3.步驟二:建立一個共同獲勝的軟件開發(fā)過程
l做一個現(xiàn)實的計劃
l用計劃來控制項目
l辨別并管理一方獲勝一方失敗,或雙方失敗的風(fēng)險
l讓大家都參與進來
4.步驟三:建立一個共同獲勝的軟件產(chǎn)品
除了成功的過程之外,你還需要去構(gòu)建一個成功的產(chǎn)品:從客戶看來,產(chǎn)品的外部特征,也包括內(nèi)部質(zhì)量,從最終用戶看來,產(chǎn)品應(yīng)該易學(xué)易用,而且可靠,從維護者看來,產(chǎn)品應(yīng)該文檔出色,編程風(fēng)格嚴(yán)謹(jǐn),容易修改。
第38章舍棄原型法
舍棄原型法,是指代碼是為了探究系統(tǒng)成功關(guān)鍵因素而開發(fā)的,驗證完成之后就被舍棄了。
效果
縮短原進度的潛力
一般
過程可視度的改善
無
對項目進度風(fēng)險的影響
降低風(fēng)險
一次成功的可能性
極大
長期成功的可能性
極大
主要風(fēng)險
l保留一個舍棄型原型。
l沒有有效利用建立原型的時間。
l不現(xiàn)實的進度和預(yù)算。
主要的相互影響和權(quán)衡
l無
1.應(yīng)用舍棄原型法
1.用戶界面
2.報告格式
3.圖形格式
4.數(shù)據(jù)庫組織
5.數(shù)據(jù)庫性能
6.復(fù)雜計算的精確度和性能
7.實時系統(tǒng)中的關(guān)鍵時間部分
8.交互系統(tǒng)的性能
9.校驗系統(tǒng)中部分功能可行性
第39章限時開發(fā)
限時開發(fā)能幫助提高開發(fā)團隊的緊迫感,也有助于項目把重點放在產(chǎn)品上。限時開發(fā)是通過“讓產(chǎn)品服從進度,而不是進度服從項目”的方式,來保障進度計劃。限時開發(fā)獲得成功的關(guān)鍵因素是獲得管理人員和客戶的同意,因為在必要時,需要削減功能而非延長進度計劃。
效果
縮短原進度的潛力
極好
過程可視度的改善
無
對項目進度風(fēng)險的影響
降低風(fēng)險
一次成功的可能性
大
長期成功的可能性
極大
主要風(fēng)險
l將限時開發(fā)應(yīng)用在不合適的項目上。
l為了保持特性數(shù)量而不顧質(zhì)量。
主要的相互影響和權(quán)衡
l依賴于漸進原型的使用。
l用性能的控制來換取開發(fā)時間的控制。
l通常在RAD項目(項目修復(fù))中,與JAD,漸進原型共同使用。
l當(dāng)交付時間比交付內(nèi)容重要時,可以與漸進交付共同使用。
l能很好的避免90-90問題。
很多項目都碰到這樣的問題,當(dāng)項目已經(jīng)完成90%的時候,接下來的項目進度就停止了,這種狀態(tài)能維持幾個月甚至幾年。
1.應(yīng)用限時開發(fā)

1.使用限時開發(fā)的最低要求
l各功能優(yōu)先級列表。
l切合實際的進度估計。
l適合的項目類型。限時開發(fā)最適合內(nèi)部商業(yè)軟件開發(fā)。需要大量手工代碼的高度定制系統(tǒng)通常不適合限時開發(fā)。
l最終用戶的充分介入。限時開發(fā)的成功取決于最終用戶的反饋。
2.成功使用限時開發(fā)的關(guān)鍵
l只對可以在規(guī)定時間內(nèi)完成的項目,使用限時開發(fā)。
l確保最終用戶與管理層對系統(tǒng)的核心已達成一致。
l確保管理層已經(jīng)同意,在進度壓力下,可以剔除部分功能。
l在限時開發(fā)全程中,都需要保證質(zhì)量。
l如果需要的話,寧可刪除功能,都不能延長工期。
第40章工具組
工具組是指在公司內(nèi)建立一個小組專門負(fù)責(zé)收集,評估,協(xié)調(diào)使用以及傳播介紹各種新開發(fā)工具。這樣可以減少嘗試和犯錯的次數(shù),任何一個需要同時開發(fā)兩個以上項目的單位都可以建立一個工具組。哪怕所謂的小組,只有一個非全職工作的人員。
效果
縮短原進度的潛力
好
過程可視度的改善
無
對項目進度風(fēng)險的影響
降低風(fēng)險
一次成功的可能性
大
長期成功的可能性
很大
主要風(fēng)險
l無。
主要的相互影響和權(quán)衡
l無
第41章十大風(fēng)險清單
十大風(fēng)險清單,是一種能幫助我們監(jiān)控軟件項目風(fēng)險的簡單工具。
效果
縮短原進度的潛力
無
過程可視度的改善
很好
對項目進度風(fēng)險的影響
降低風(fēng)險
一次成功的可能性
極大
長期成功的可能性
極大
主要風(fēng)險
l無。
主要的相互影響和權(quán)衡
l能夠與其他實踐結(jié)合使用。
詳細(xì)內(nèi)容,可以參閱第5章。
第42章構(gòu)建用戶接口原型
構(gòu)建用戶接口原型,就是構(gòu)建一個用戶接口來探究用戶接口設(shè)計和系統(tǒng)需求。
效果
縮短原進度的潛力
好
過程可視度的改善
一般
對項目進度風(fēng)險的影響
降低風(fēng)險
一次成功的可能性
極大
長期成功的可能性
極大
主要風(fēng)險
l不斷裝飾原型。
主要的相互影響和權(quán)衡
l能夠與其他實踐結(jié)合使用。
成功應(yīng)用構(gòu)建用戶原型的關(guān)鍵
盡量為原型制作一個漂亮的外觀。
重視最終用戶的參與和反饋。
第43章自愿加班
自愿加班為開發(fā)人員提供了有意義的工作實踐,也為管理人員提供了激勵內(nèi)部工作人員的機會。但是加班是不能持久維持下去的,適當(dāng)?shù)臅r候應(yīng)該讓開發(fā)人員恢復(fù)到正常的工作狀態(tài)。
效果
縮短原進度的潛力
好
過程可視度的改善
無
對項目進度風(fēng)險的影響
增加風(fēng)險
一次成功的可能性
大
長期成功的可能性
極大
主要風(fēng)險
l由于過分的進度壓力和過度加班,導(dǎo)致進度反而降低。
l降低了因為需要而緊急加班的應(yīng)變能力。
主要的相互影響和權(quán)衡
l需要采用具有人情味的和非強迫性的激勵方法。
l通常用來支持小型里程碑,漸進生命期模型,限時開發(fā)等。
1.應(yīng)用自愿加班
1.對開發(fā)者采用“拉”的方法,不要采用“推”的方法
激勵開發(fā)人員,就像是向前移動一根繩子,你最好采用拉的方式,而推是沒有太大作用的。

通常來說激勵開發(fā)人員最好的5種方法:
l成就感。
l成長的可能。
l工作本身。
l個人生活。
l技術(shù)管理機會。
一個非常有效的方法,就是激勵整個項目組。清晰地為小組設(shè)置目標(biāo),幫助小組建立集體感,并且讓小組成員知道產(chǎn)生效果比努力工作更重要。
只看到形式,不注重激勵是領(lǐng)導(dǎo)者“推”式加班的重要原因。在一個快速開發(fā)項目中,你需要關(guān)注的是做了多少工作,而不是員工在辦公室呆了多長時間。
2.不要要求加班,它將產(chǎn)生更少的產(chǎn)出。
強迫超過開發(fā)人員愿意加班的時間,影響的不止是加班的那些時間,正常的工作時間也將受到影響。

3.不要采用加班來進行項目控制。
當(dāng)項目被發(fā)現(xiàn)將要失去控制的時候,大部分管理者都讓開發(fā)者更多加班來控制項目,但是加班本身就是項目失控的標(biāo)志。處于控制下的項目不需要開發(fā)人員加班,一些開發(fā)者在可控項目下加班,只是因為他們對項目感興趣,而不是需要加班來進行項目控制。
4.不管什么理由,不要過多加班。
不論是強制加班,還是自愿加班,都不要過度。因為過度加班將導(dǎo)致以下問題:
增加缺陷數(shù)量。
容易誘發(fā)開發(fā)人員思維不集中。
降低創(chuàng)造性。
加快資源消耗。
減少了自我教育和組織改進的時間。
減少了生產(chǎn)力。
D,?WF-?VF/??3??G?\