適應(yīng)日益加劇的競爭環(huán)境、把握瞬息萬變的市場信息是企業(yè)得以生存和發(fā)展的基礎(chǔ),某大型IT公司估計(jì)其產(chǎn)品推遲上市一個月將導(dǎo)致收入減少530萬(人民幣)、利潤減少265萬、還要付出另外的研發(fā)費(fèi)用37.5萬。這就對產(chǎn)品研發(fā)項(xiàng)目提出了更高的要求:如何在有限的資源投入下以更快的速度滿足或者超越用戶的需求。
在提高研發(fā)效率方面,業(yè)界已經(jīng)進(jìn)行了大量有益的探索和實(shí)踐,下面是幾種較有代表性的見解:
l? 過程/流程決定一切(強(qiáng)調(diào)過程的重要性);
l? 人是生產(chǎn)力的決定因素(強(qiáng)調(diào)人的重要性);
l? 采用XXX編程工具,可以使您的開發(fā)效率提高一個數(shù)量級(強(qiáng)調(diào)工具的重要性);
l? 良好的計(jì)劃是項(xiàng)目成功的一半(強(qiáng)調(diào)項(xiàng)目管理的重要性);
? ? ? ? ? ? ? ……
盡管每種見解都有大量的擁躉(無論處于業(yè)務(wù)還是商務(wù)角度),但是仍然會遭到大量的挑戰(zhàn)而不能自圓其說,從研發(fā)項(xiàng)目的實(shí)踐來看也同樣反映了“瞎子摸象”的現(xiàn)象:好像每種見解都是對的,但是又不完全對。
根據(jù)美國項(xiàng)目管理協(xié)會的定義:“項(xiàng)目管理是在項(xiàng)目活動中運(yùn)用知識,技能,工具和技術(shù),以便達(dá)到項(xiàng)目要求”;項(xiàng)目管理的目標(biāo)是在給定的資源、預(yù)算和時間內(nèi)安全地完成符合質(zhì)量要求的項(xiàng)目。以上定義意味著項(xiàng)目的資源、預(yù)算、時間和項(xiàng)目范圍有著內(nèi)在的約束關(guān)系,在這四個因素已經(jīng)被“極其樂觀”的限定的情況下,項(xiàng)目最終無法完成——項(xiàng)目經(jīng)理常常會遇到非常緊張的、不可能完成的Deadline,如何應(yīng)對?項(xiàng)目范圍的約束關(guān)系告訴我們手中的王牌包括增加人手(有時候人多反幫倒忙,可以參考《人月神話》)、投入更多資源(部分模塊外包、使用COTS、購買最好的開發(fā)/管理工具)、削減項(xiàng)目范圍/需求(承諾在后續(xù)版本中提供某些功能,但是用戶未必會認(rèn)同)、降低質(zhì)量(軟件項(xiàng)目交付質(zhì)量的降低往往意味著客戶需求沒有完全實(shí)現(xiàn),用戶也未必會認(rèn)同)。
更深一個層次,多個因素影響了研發(fā)項(xiàng)目的開發(fā)效率,片面強(qiáng)調(diào)某一個因素而忽略其他的因素,都無法揭示項(xiàng)目實(shí)踐中遇到的問題。這里引用一個老笑話:
有個警察看到個喝醉的人在路燈下找東西,他就問:你找什么?那個醉鬼說,車鑰匙下車時掉了,我在找。警察問:你不在掉的車子附近找,怎么到路燈下找呢。醉鬼說:那里黑啊,這里亮啊,好找!
其實(shí)很多項(xiàng)目經(jīng)理或者咨詢機(jī)構(gòu)都在犯類似這個醉鬼的錯誤,不管是有意或是無意的——試圖在自己最熟悉、最容易控制的因素上尋求突破,而對自己陌生的、難以控制的因素卻置若罔聞,盡管它可以為項(xiàng)目帶來更大的回報(bào)。我推測很大程度上是由于“人類本能的需要心理安全感”。
那么,到底哪些因素影響了開發(fā)的效率、他們又能夠在多大程度上造成影響?下面的資料是Capers Jones在《Software Assessments, Benchmarks, and Best Practices》中使用的數(shù)據(jù),這是目前為止最新資料(雖然量化管理是管理追求的較高層次,但是現(xiàn)在度量方面的專著卻幾乎絕跡,可能是商業(yè)利益使然)。
影響軟件項(xiàng)目生產(chǎn)率的積極因素(以影響程度排序):
項(xiàng)目因素 | 影響程度(%) | 項(xiàng)目因素 | 影響程度(%) |
高質(zhì)量可交付產(chǎn)品復(fù)用 | 350 | 正式審查的使用 | 15 |
高水平的管理人員經(jīng)驗(yàn) | 65 | 好的辦公室人體工程學(xué) | 15 |
高水平的技術(shù)人員經(jīng)驗(yàn) | 55 | 低的項(xiàng)目復(fù)雜度 | 13 |
有效的方法與過程 | 35 | 適度的進(jìn)度壓力 | 11 |
有效的管理工具 | 30 | 生產(chǎn)率測量 | 10 |
有效的CASE工具 | 27 | 低的需求蔓延 | 9 |
高級程序設(shè)計(jì)語言 | 24 | 10天以上的年度培訓(xùn) | 8 |
質(zhì)量評估工具 | 19 | 開發(fā)團(tuán)隊(duì)分布集中 | 8 |
細(xì)的崗位分工 | 18 | 高昂的團(tuán)隊(duì)士氣 | 7 |
有效的客戶參與 | 18 | 分層管理機(jī)構(gòu) | 5 |
正式的成本與進(jìn)度估計(jì) | 17 |
|
|
?
影響軟件項(xiàng)目生產(chǎn)率的消極因素(以影響程度排序):
項(xiàng)目因素 | 影響程度(%) | 項(xiàng)目因素 | 影響程度(%) |
低質(zhì)量可交付產(chǎn)品復(fù)用 | -300 | 擁擠的辦公空間 | -27 |
管理人員缺乏經(jīng)驗(yàn) | -90 | 低級語言 | -25 |
技術(shù)人員缺乏經(jīng)驗(yàn) | -87 | 工作場所分散 | -24 |
高的需求蔓延 | -77 | 非正式的成本與進(jìn)度估計(jì) | -22 |
不適當(dāng)?shù)腃ASE工具 | -75 | 崗位分工不細(xì) | -15 |
沒有使用審查 | -48 | 沒有客戶參與 | -13 |
不適當(dāng)?shù)墓芾砉ぞ?/span> | -45 | 沒有年度培訓(xùn) | -12 |
無效的方法與過程 | -41 | 平面式的管理結(jié)構(gòu) | -8 |
無質(zhì)量評估 | -40 | 沒有生產(chǎn)率測量 | -7 |
項(xiàng)目很復(fù)雜 | -35 | 低的團(tuán)隊(duì)士氣 | -6 |
過大的進(jìn)度壓力 | -30 |
|
|
從上面的數(shù)據(jù)中可以有很多新的發(fā)現(xiàn),當(dāng)然是仁者見仁,智者見智:
l? 同一要素的不同影響:相同的項(xiàng)目因素,例如“管理人員經(jīng)驗(yàn)”,對項(xiàng)目生產(chǎn)率的正面影響為65%,也就是說管理人員具備高質(zhì)量的管理經(jīng)驗(yàn),最高可以使生產(chǎn)率提升65%;而蹩腳的管理人員卻對生產(chǎn)率造成最高90%的下降。65%對比-90%,并不相同,這一點(diǎn)在“需求蔓延”上面表現(xiàn)的最為突出,是9%對比-77%。這說明了相同的事情如果做的不好,帶來的負(fù)面影響遠(yuǎn)遠(yuǎn)大于將其做好而帶來的積極影響;
l? 產(chǎn)品/模塊復(fù)用:復(fù)用可以包括平臺化開發(fā)、模塊重用等,高質(zhì)量產(chǎn)品復(fù)用所帶來的收益是驚人的,但是如果有問題的模塊被復(fù)用,就會對相關(guān)產(chǎn)品均造成負(fù)面影響,這種影響被批量放大,解決起來也更加困難;
l? 人的問題:我們會發(fā)現(xiàn)管理人員、技術(shù)人員的能力經(jīng)驗(yàn)對項(xiàng)目造成很大的影響,在這方面的努力會得到很好的回報(bào):不少公司愿意在營銷運(yùn)作、過程改進(jìn)、設(shè)備引進(jìn)等方面投入巨資,在引入和培訓(xùn)人才方面缺乏力度,初衷是認(rèn)為“人”在短期內(nèi)不可改變,即便是這樣,對“人”視而不見,長期看來只能是在低水平踏步;另一個問題,項(xiàng)目經(jīng)理往往會認(rèn)為項(xiàng)目團(tuán)隊(duì)的成員是短板,事實(shí)卻常常相反,項(xiàng)目失利源于經(jīng)理的經(jīng)驗(yàn)不足,對項(xiàng)目喪失控制,“能力越大,責(zé)任越大(“With Great Power, Comes Great Responsibility”,Uncle Ben to Peter Parker in Spider-Man)”,不斷提升應(yīng)該是管理者的必修課;
l? 需求:產(chǎn)品需求可以看作射擊的目標(biāo),如果目標(biāo)沒有找準(zhǔn)或是錯誤的,項(xiàng)目必定走向失敗。需求對于項(xiàng)目的重大意義無論怎么強(qiáng)調(diào)都是不為過的,幾乎每個項(xiàng)目經(jīng)理都會被“需求蔓延/變更”折磨過,但是真正能夠從中吸取教訓(xùn)的比例卻相當(dāng)少;
l? 管理工具/編程語言:運(yùn)用恰當(dāng)?shù)墓芾砉ぞ?編程語言會極大的提高工作效率,例如項(xiàng)目管理工具、配置管理工具、團(tuán)隊(duì)交流工具、集成開發(fā)環(huán)境等,但是卻不能指望工具可以改變項(xiàng)目的命運(yùn)或者產(chǎn)生數(shù)量級的飛躍,因?yàn)檎麄€項(xiàng)目的工作不僅僅是編寫代碼,需求分析、系統(tǒng)設(shè)計(jì)、測試設(shè)計(jì)、評審等活動不能由工具完全代勞;此外,過分迷信工具的效果反而會削弱對其他因素的關(guān)注程度;
l? 流程:CMM/CMMI的影響已經(jīng)將過程的重要性渲染得無以復(fù)加,但是令人失望的是它只有30%-40%的影響,其實(shí)在其他因素不變的情況下,哪怕只有10%的改善已經(jīng)非??捎^了;過程改進(jìn)方面過猶不及,不顧公司的商業(yè)收益而片面強(qiáng)調(diào)規(guī)范化、一味向某個所謂“業(yè)界最佳”實(shí)踐看齊,更像是一場無收效的做秀而不是真正的過程改進(jìn);
l? 進(jìn)度估計(jì)與控制:現(xiàn)在已經(jīng)有很多成熟的估算方法和工具,那些復(fù)雜的方法并不見得比相對簡易的方法擁有更好的準(zhǔn)確度,關(guān)鍵是方法運(yùn)用和熟悉的程度;適當(dāng)?shù)倪M(jìn)度壓力可能刺激開發(fā)人員的工作積極性,但是過大的進(jìn)度壓力卻可能導(dǎo)致追求進(jìn)度而放棄產(chǎn)品質(zhì)量,結(jié)果就是產(chǎn)品不穩(wěn)定,開發(fā)周期拖長,直到大家都已經(jīng)不耐煩了才勉強(qiáng)發(fā)布;
l? 團(tuán)隊(duì)士氣:盡管這個因素的影響程度并不大,但是相比耗資巨大、周期漫長的過程改進(jìn)活動,其投資回報(bào)是非常高的。開發(fā)團(tuán)隊(duì)具備高昂士氣并且由衷的愿意為項(xiàng)目做貢獻(xiàn),就會主動的高質(zhì)量完成工作,這是任何流程規(guī)范無法比擬的。電影《勇敢的心》、《特洛依戰(zhàn)爭》、《魔戒》中,在英雄們率領(lǐng)他的部隊(duì)展開詩史般的沖鋒之前,都會發(fā)表一番激情洋溢的演說,用意就是激勵起部隊(duì)斗志,顯然這樣會比士氣低落時的勝算要大很多。但是一味的強(qiáng)調(diào)“精神勝利”是不夠的,古人曾總結(jié)出“一鼓作氣,再而衰,三而竭”,試圖激勵士氣并不是一件很容易的事情,不過挫傷士氣倒是輕而易舉的;
項(xiàng)目管理是一門尋求平衡的藝術(shù),即憑借有限的資源最大程度的滿足項(xiàng)目干系人的期望;上述的表格只是眾多因素的一個子集,不同的項(xiàng)目在不同的階段可能會出現(xiàn)不同的短板,這就是我們改進(jìn)的機(jī)會所在。