軟體專案管理“固化、簡化、標準化”

dicksonjyl560101發表於2015-04-14
 我曾任職的某公司軟體工程中心有8位專案經理,成功地管理過許多應用軟體開發專案,部門同事戲稱他們“八仙”,因為他們帶專案的風格迥異,就像八仙過海,各有神通。

 第一位,性格溫和、思路清晰。走的是專家形象的路子,只要和使用者交流一次,就能獲得使用者認同和尊重;一般問題剛有苗頭,就會被他察覺,並化解於無形之中。因此被使用者敬若神明,言聽計從。

 第二位,性格開朗、善於溝通。走的是關係調節的路子,幾次接觸,就能和使用者稱兄道弟,於是專案中所有的問題都在酒桌上解決。

 第三位,善於把握使用者心理和使用者內部之間的矛盾。走的是威逼利誘的路子,由於專案中使用者方關鍵人員有的涉足幕後交易,因此往往有苦難言,只能就範。因此,即使遇到最刁鑽、難纏的客戶,經他一番軟硬兼施,最後也都能擺平。

 第四位,為人踏實、肯幹,富有耐心,走的是埋頭苦幹的路子,態度極佳、有求必應,和使用者處的時間長了,就是鐵石心腸的使用者也不再忍心刁難。

 而其他幾位,也都可以歸結為以上某兩種或幾種型別的結合。

 在大家津津樂道他們傳奇般的成功專案管理經歷之餘,我曾私下向他們取經:如何才能取得軟體開發專案的成功?他們的觀點居然出奇地一致:最重要的是規範開發過程管理!

 那麼,為什麼要規範軟體開發過程?又如何規範軟體開發過程呢?

 我認為規範就是要約束自己、約束參與軟體開發過程的各方,目的是要消除軟體開發中的種種不良做法和習慣,採用符合軟體規律、事半功倍的方法,降低風險,以使軟體開發專案能獲得可重複、可以預期的滿意結果。

 總結多年來專案管理的實踐經驗和感悟,我覺得要規範軟體開發過程必須做好“三化”、同時避免踏入兩個誤區。所謂做好“三化”、避免踏入兩個誤區,就是指要堅持固化、簡化、標準化,避免踏入僵化、隨意化兩個誤區。

 第一,要“固化”。

 軟體過程又稱“軟體生存週期過程”,是軟體生存期內為達到一定目標而必須實施的一系列相關過程的集合。說白了,就是軟體開發中一系列最佳實踐的集合。所謂“固化”,其本質就是把軟體開發過程中已被實踐反覆證明的、符合軟體規律的正確做法(最佳實踐)沉澱在開發管理流程之中,供後人實踐時借鑑、使用。

 軟體企業是一個天才彙集的地方,是人類智慧最集中的場所之一,同時,由於軟體人才的流動性很強,軟體企業又是智慧流失最快的地方。我覺得,軟體企業要想做大、做強,除了採用好的機制留住人才之外,最重要的是沉澱眾人的智慧。而企業沉澱眾人智慧有三個載體:第一是知識庫,第二是流程,第三是軟體資產庫(面向領域的軟體構架及構件庫)。沉澱眾人智慧的過程就是“固化”。

 有了固化的軟體開發管理流程,才有了規範軟體開發過程的基礎。透過不斷地固化軟體開發實踐中符合規律的正確做法,我們得到了流程規範。然後,用這些流程規範指導新的軟體專案開發,並在開發實踐中持續改進,從而使得我們的軟體開發過程越來越規範。

 固化的軟體開發實踐分為兩個層次,一個是制度,一個是指南。制度是公司強制執行的一些流程規範,不可缺失、省略,如公司制定的標準、規範、管理制度等;而指南是一般情況下推薦執行,建議這麼做,允許根據專案實際情況適度剪裁、取捨,如公司定義的軟體開發過程模型、模板等。實現固化的手段也多種多樣,如透過管理制度、定義開發過程、採用軟體工具、培訓等,根據本人實踐體會,採用一些專案管理輔助軟體工具,不失為“固化”眾人智慧、規範軟體開發過程管理的有效手段!

 說到“固化”,有的企業走向了另一個極端:僵化。不顧本企業、本專案的實際情況,對ISO9000、CMM、ISO12207等標準盲目地生搬硬套、墨守成規,對其他企業的成功經驗不加消化的照搬照抄、教條主義,從而扼殺了專案團隊的主觀能動性和創造性。殊不知,標準、規範、過程模型、模板是死的,參與專案的團隊成員才是規範軟體開發過程的主角和靈魂。

 第二,要“簡化”。

 “固化”只是規範軟體開發過程的“靜態基礎”,而“動態管理”對於規範軟體開發過程更為重要。

 回顧上個世紀70年代,軟體開發很簡單,因此很容易規範。隨著軟體專案規模越來越大,軟體開發過程越來越複雜,涉及的人、財、物資源也越來越龐大。複雜導致多變,多變帶來隨意,隨意容易使軟體開發誤入歧途,使開發過程難以規範。所以說規範軟體開發過程還必須簡化軟體開發過程!

 說到簡化,也有企業走進了“隨意化”的誤區。自由主義、經驗主義隨心所欲地發揮,口頭協議滿天飛,時間緊、人手不足是他們拋棄規範、拒絕監督的最佳介面。其實,簡化絕不意味著隨意化。

 如何簡化呢?我認為採用基於構件的軟體開發方法就是一種有效手段。透過對應用領域的研究(領域工程),提煉領域需求的共性和變化性,刻畫領域模型,設計面向領域的體系結構,開發各種構件,從而使應用軟體的開發過程更接近於工業化生產流水線,基於體系結構,用各種構件進行組裝。簡化了的軟體開發過程,變化因素更少,更容易規範管理。

 第三,要“標準化”。

 前面所說的固化、簡化都只是單個企業內部的實踐行為,而“標準化”則是整個社會範圍內的固化和簡化行為。技術標準化、管理過程標準化、度量標準化、應用領域內業務的標準化,都是推動整個軟體行業內、軟體產業鏈上各個企業規範軟體開發過程的前提基礎和有力保障。標準,凝聚著眾多企業、科研院所的智慧,同時,又大大簡化了標準所規範的領域內軟體開發過程。當然,標準化也是規範軟體開發過程的征途上最漫長、最困難而又最具意義的一步。

 總之,失敗的軟體專案各有其失敗,而成功的軟體專案都一樣:離不開規範的軟體開發過程管理。固化、簡化、標準化正是規範軟體開發過程重要的三個方面。
[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-1576129/,如需轉載,請註明出處,否則將追究法律責任。

相關文章