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