我曾任職的某公司軟件工程中心有8位項(xiàng)目經(jīng)理,成功地管理過(guò)許多應(yīng)用軟件開(kāi)發(fā)項(xiàng)目,部門同事戲稱他們“八仙”,因?yàn)樗麄儙ы?xiàng)目的風(fēng)格迥異,像八仙過(guò)海,各有神通。
第一位,性格溫和、思路清晰。走的是專家形象的路子,只要和用戶交流一次,能獲得用戶認(rèn)同和尊重;一般問(wèn)題剛有苗頭,會(huì)被他察覺(jué),并化解于無(wú)形之中。因此被用戶敬若神明,言聽(tīng)計(jì)從。
第二位,性格開(kāi)朗、善于溝通。走的是關(guān)系調(diào)節(jié)的路子,幾次接觸,能和用戶稱兄道弟,于是項(xiàng)目中所有的問(wèn)題都在酒桌上解決。
第三位,善于把握用戶心理和用戶內(nèi)部之間的矛盾。走的是威逼利誘的路子,由于項(xiàng)目中用戶方關(guān)鍵人員有的涉足幕后交易,因此往往有苦難言,只能范。因此,即使遇到刁鉆、難纏的客戶,經(jīng)他一番軟硬兼施,后也都能擺平。
第四位,為人踏實(shí)、肯干,富有耐心,走的是埋頭苦干的路子,態(tài)度、有求必應(yīng),和用戶處的時(shí)間長(zhǎng)了,是鐵石心腸的用戶也不再忍心刁難。
而其他幾位,也都可以歸結(jié)為以上某兩種或幾種類型的結(jié)合。
在大家津津樂(lè)道他們傳奇般的成功項(xiàng)目管理經(jīng)歷之余,我曾私下向他們?nèi)〗?jīng):如何才能取得軟件開(kāi)發(fā)項(xiàng)目的成功?他們的觀點(diǎn)居然出奇地一致:重要的是規(guī)范開(kāi)發(fā)過(guò)程管理!
那么,為什么要規(guī)范軟件開(kāi)發(fā)過(guò)程?又如何規(guī)范軟件開(kāi)發(fā)過(guò)程呢?
我認(rèn)為規(guī)范是要約束自己、約束參與軟件開(kāi)發(fā)過(guò)程的各方,目的是要消除軟件開(kāi)發(fā)中的種種不良做法和習(xí)慣,采用符合軟件規(guī)律、事半功倍的方法,降低風(fēng)險(xiǎn),以使軟件開(kāi)發(fā)項(xiàng)目能獲得可重復(fù)、可以預(yù)期的滿意結(jié)果。
總結(jié)多年來(lái)項(xiàng)目管理的實(shí)踐經(jīng)驗(yàn)和感悟,我覺(jué)得要規(guī)范軟件開(kāi)發(fā)過(guò)程必須做好“三化”、同時(shí)避免踏入兩個(gè)誤區(qū)。所謂做好“三化”、避免踏入兩個(gè)誤區(qū),是指要堅(jiān)持固化、簡(jiǎn)化、標(biāo)準(zhǔn)化,避免踏入僵化、隨意化兩個(gè)誤區(qū)。
第一,要“固化”。
軟件過(guò)程又稱“軟件生存周期過(guò)程”,是軟件生存期內(nèi)為達(dá)到一定目標(biāo)而必須實(shí)施的一系列相關(guān)過(guò)程的集合。說(shuō)白了,是軟件開(kāi)發(fā)中一系列佳實(shí)踐的集合。所謂“固化”,其本質(zhì)是把軟件開(kāi)發(fā)過(guò)程中已被實(shí)踐反復(fù)證明的、符合軟件規(guī)律的正確做法(佳實(shí)踐)沉淀在開(kāi)發(fā)管理流程之中,供后人實(shí)踐時(shí)借鑒、使用。
軟件企業(yè)是一個(gè)天才匯集的地方,是人類智慧集中的場(chǎng)所之一,同時(shí),由于軟件人才的流動(dòng)性很強(qiáng),軟件企業(yè)又是智慧流失快的地方。我覺(jué)得,軟件企業(yè)要想做大、做強(qiáng),除了采用好的機(jī)制留住人才之外,重要的是沉淀眾人的智慧。而企業(yè)沉淀眾人智慧有三個(gè)載體:第一是知識(shí)庫(kù),第二是流程,第三是軟件資產(chǎn)庫(kù)(面向領(lǐng)域的軟件構(gòu)架及構(gòu)件庫(kù))。沉淀眾人智慧的過(guò)程是“固化”。
有了固化的軟件開(kāi)發(fā)管理流程,才有了規(guī)范軟件開(kāi)發(fā)過(guò)程的基礎(chǔ)。通過(guò)不斷地固化軟件開(kāi)發(fā)實(shí)踐中符合規(guī)律的正確做法,我們得到了流程規(guī)范。然后,用這些流程規(guī)范指導(dǎo)新的軟件項(xiàng)目開(kāi)發(fā),并在開(kāi)發(fā)實(shí)踐中持續(xù)改進(jìn),從而使得我們的軟件開(kāi)發(fā)過(guò)程越來(lái)越規(guī)范。
固化的軟件開(kāi)發(fā)實(shí)踐分為兩個(gè)層次,一個(gè)是制度,一個(gè)是指南。制度是公司強(qiáng)制執(zhí)行的一些流程規(guī)范,不可缺失、省略,如公司制定的標(biāo)準(zhǔn)、規(guī)范、管理制度等;而指南是一般情況下推薦執(zhí)行,建議這么做,允許根據(jù)項(xiàng)目實(shí)際情況適度剪裁、取舍,如公司定義的軟件開(kāi)發(fā)過(guò)程模型、模板等。實(shí)現(xiàn)固化的手段也多種多樣,如通過(guò)管理制度、定義開(kāi)發(fā)過(guò)程、采用軟件工具、培訓(xùn)等,根據(jù)本人實(shí)踐體會(huì),采用一些項(xiàng)目管理輔助軟件工具,不失為“固化”眾人智慧、規(guī)范軟件開(kāi)發(fā)過(guò)程管理的有效手段!
說(shuō)到“固化”,有的企業(yè)走向了另一個(gè)極端:僵化。不顧本企業(yè)、本項(xiàng)目的實(shí)際情況,對(duì)ISO9000、CMM、ISO12207等標(biāo)準(zhǔn)盲目地生搬硬套、墨守成規(guī),對(duì)其他企業(yè)的成功經(jīng)驗(yàn)不加消化的照搬照抄、教條主義,從而扼殺了項(xiàng)目團(tuán)隊(duì)的主觀能動(dòng)性和創(chuàng)造性。殊不知,標(biāo)準(zhǔn)、規(guī)范、過(guò)程模型、模板是死的,參與項(xiàng)目的團(tuán)隊(duì)成員才是規(guī)范軟件開(kāi)發(fā)過(guò)程的主角和靈魂。
第二,要“簡(jiǎn)化”。
“固化”只是規(guī)范軟件開(kāi)發(fā)過(guò)程的“靜態(tài)基礎(chǔ)”,而“動(dòng)態(tài)管理”對(duì)于規(guī)范軟件開(kāi)發(fā)過(guò)程更為重要。
回顧上個(gè)世紀(jì)70年代,軟件開(kāi)發(fā)很簡(jiǎn)單,因此很容易規(guī)范。隨著軟件項(xiàng)目規(guī)模越來(lái)越大,軟件開(kāi)發(fā)過(guò)程越來(lái)越復(fù)雜,涉及的人、財(cái)、物資源也越來(lái)越龐大。復(fù)雜導(dǎo)致多變,多變帶來(lái)隨意,隨意容易使軟件開(kāi)發(fā)誤入歧途,使開(kāi)發(fā)過(guò)程難以規(guī)范。所以說(shuō)規(guī)范軟件開(kāi)發(fā)過(guò)程還必須簡(jiǎn)化軟件開(kāi)發(fā)過(guò)程!
說(shuō)到簡(jiǎn)化,也有企業(yè)走進(jìn)了“隨意化”的誤區(qū)。自由主義、經(jīng)驗(yàn)主義隨心所欲地發(fā)揮,口頭協(xié)議滿天飛,時(shí)間緊、人手不足是他們拋棄規(guī)范、拒絕監(jiān)督的佳接口。其實(shí),簡(jiǎn)化絕不意味著隨意化。
如何簡(jiǎn)化呢?我認(rèn)為采用基于構(gòu)件的軟件開(kāi)發(fā)方法是一種有效手段。通過(guò)對(duì)應(yīng)用領(lǐng)域的研究(領(lǐng)域工程),提煉領(lǐng)域需求的共性和變化性,刻畫(huà)領(lǐng)域模型,設(shè)計(jì)面向領(lǐng)域的體系結(jié)構(gòu),開(kāi)發(fā)各種構(gòu)件,從而使應(yīng)用軟件的開(kāi)發(fā)過(guò)程更接近于工業(yè)化生產(chǎn)流水線,基于體系結(jié)構(gòu),用各種構(gòu)件進(jìn)行組裝。簡(jiǎn)化了的軟件開(kāi)發(fā)過(guò)程,變化因素更少,更容易規(guī)范管理。
第三,要“標(biāo)準(zhǔn)化”。
前面所說(shuō)的固化、簡(jiǎn)化都只是單個(gè)企業(yè)內(nèi)部的實(shí)踐行為,而“標(biāo)準(zhǔn)化”則是整個(gè)社會(huì)范圍內(nèi)的固化和簡(jiǎn)化行為。技術(shù)標(biāo)準(zhǔn)化、管理過(guò)程標(biāo)準(zhǔn)化、度量標(biāo)準(zhǔn)化、應(yīng)用領(lǐng)域內(nèi)業(yè)務(wù)的標(biāo)準(zhǔn)化,都是推動(dòng)整個(gè)軟件行業(yè)內(nèi)、軟件產(chǎn)業(yè)鏈上各個(gè)企業(yè)規(guī)范軟件開(kāi)發(fā)過(guò)程的前提基礎(chǔ)和有力保障。標(biāo)準(zhǔn),凝聚著眾多企業(yè)、科研院所的智慧,同時(shí),又大大簡(jiǎn)化了標(biāo)準(zhǔn)所規(guī)范的領(lǐng)域內(nèi)軟件開(kāi)發(fā)過(guò)程。當(dāng)然,標(biāo)準(zhǔn)化也是規(guī)范軟件開(kāi)發(fā)過(guò)程的征途上漫長(zhǎng)、困難而又具意義的一步。
總之,失敗的軟件項(xiàng)目各有其失敗,而成功的軟件項(xiàng)目都一樣:離不開(kāi)規(guī)范的軟件開(kāi)發(fā)過(guò)程管理。固化、簡(jiǎn)化、標(biāo)準(zhǔn)化正是規(guī)范軟件開(kāi)發(fā)過(guò)程重要的三個(gè)方面。