在中國軟件行業現狀中,惡性競爭比比皆是,而惡性競爭的產生物:合同,導致大中型軟件項目中,項目組面臨著在時間上,成本上和人力上都不切實際的目標,一個在標準含義上注定要失敗的項目;而項目組對于這種項目要做,并且還要盡量做好,同時由于客戶成熟度不夠,而造成更多的問題。
根據個人的經驗,如果照合同中列出的項目范圍來做,從狹義的項目范圍角度來說是可以完成的,但客戶既然付了錢,他將不斷努力大化他的利益,擴充并充實需求的內容,所以項目組面臨著項目中從始至終需求不斷變化的過程。
在做好基本的需求控制的基礎上,既然面對不斷變化的需求,要求項目組對事件的反應要快。
在這種快節奏的項目環境中,充滿了太多的不確定因素,成功的按時完成項目像是一場長距離障礙跑。項目組經常要在沒有完整確切的數據情況下決定如何做,項目范圍的重點和方向要經常改變,如果軟件承包商內部不協調一致,復雜的項目將經常會陷入泥潭,不能自拔。
這種項目中標準的項目管理手段不再適用,它需要很多特別的資源去處理不確定的方面,更有彈性的項目管理手段和反應時間是必要的,靈活的項目管理手段將是此類項目的終方法。
什么是靈活的項目管理
做過軟件項目管理的項目經理的人都知道,在客戶的需求和項目組能夠提交的成果之間找到一個完美的平衡點不僅僅是一種項目管理手段,而是一種藝術,如果按照標準的項目管理流程,項目可能永遠不會完成,比如在合同中或銷售環節中承諾,所提供的系統將滿足客戶在未來幾年中的業務需求;但實際上這是不可能的,特別是行業軟件項目,中國各個行業處于快速發展的過程中,業務需求不斷在增加,如果不在項目和業務需求之間達到平衡,項目將不再是一個利潤點,而是一個成本點。這要求在標準的項目管理手段之外增加一些新的概念和技巧來適應飛速變化的項目環境。
那什么是靈活的項目管理呢?
由于在實際項目的某些方面,標準項目管理方法不再具備有效性和可操作性,所以有些公司試圖拋開項目管理標準方法,獨立制定符合自己實際的項目管理流程,而在不斷嘗試的過程中,他們在很多核心管理方面又不得不遵循標準項目管理手段,這造成了困擾,什么是一種有效而可行的項目管理方法?
所以說,靈活的項目管理不是一種獨立的項目管理模式,而是基于標準項目管理基礎上的一種很大的發展延伸。像一個城市的地鐵站臺,她的基礎是標準的,牢固地,像標準項目管理,而站臺和所運行的地鐵之間的差距需要根據地鐵的實際形狀來加以適當的延伸,所以說靈活的項目管理歸根結底是在標準項目管理的基礎上的延伸。
計劃和實施
當我們談到項目管理的時候,我們直接的印象是工作列表和甘特圖,或者叫工作時間表或安排,從標準項目管理理論來講,項目計劃是重點,要占項目周期的很大一部分,首先要制定一整套項目計劃,包括項目范圍計劃、項目進度管理計劃、項目質量管理計劃、項目人力管理計劃、項目成本管理計劃、項目風險管理計劃、項目溝通管理計劃、項目配置管理計劃、項目變更管理計劃等等。而在現實情況下,客戶決不允許你在計劃階段花費太多時間,實際上,客戶希望看到項目組到現場馬上進入編程開發,他才覺得項目組在做事情,不然開發商是在浪費他們的精力和資金;如果項目經理頂住客戶的壓力,嚴格按照標準項目管理流程,將得罪客戶,為以后的工作添置很多障礙,有些是致命的。
應用靈活的項目管理,項目管理的重點從計劃轉移到實施,但不是說項目的范圍定義和計劃被完全忽略,而是在不完整的需求確認和項目總體計劃框架下進入實際開發,在需求不斷變化和項目目標漸進明細的情況下靈活的把握項目,將項目始終處于控制范圍內。
而且,對于行業軟件開發而言,隨著業務的變化發展,業務需求和功能需求的不斷變更,要求有豐富業務和技術水平的獨特專家在項目組中,這些專家不僅僅簡單的認為是高級程序員,也不是系統設計人員。具體來說他們是一組人,一組在這個行業摸爬滾打中練一身過硬業務知識和技術水平的人員。他們對于行業軟件這個大的系統里的不同部分具有很多比客戶還要深刻的理解和認識,在同一個行業軟件領域中,比如針對中小型商業銀行的銀行軟件解決方案,大多數項目在功能上,業務需求上等等方面都有著某些方面的類似性和相同性,在一個新的項目中,這組人不管是在簡單或復雜的項目計劃情況下都有能力和水平將項目中所有的部分組和在一起,像事先經過了詳細的系統設計一般。
在這種情況下,項目經理面臨著一個挑戰,項目艱難而有效的實施下去將是項目所能達到的好效果;面對太多太快的變化導致項目經理手忙腳亂,不知所措將是項目經理所要經歷的壞局面,如果不及時將項目重新納入正軌,項目將是一場災難。行業軟件這個領域而言,不要希望這些項目你不會遇到,在現實世界中,你要做好準備,經常性面對這種項目。
靈活的項目管理特點: 內部和外部不確定因素
內部和外部不確定因素是靈活的項目管理的重點所在,眾多的不確定因素導致項目總是處于緊急和高風險的狀態下,這要求項目經理和項目組的獨特才能和技術。
內部不確定因素包括那些在項目經理可控制的項目范圍內,進度安排內和預算成本內所有的內部可控或不可控的方面。例如:對于數據倉庫項目,針對客戶在系統某些功能執行時間上的苛刻要求,在1G的數據量以下,系統可以滿足要求,但隨著可以預見數據量的飛速增加,在一段時間后,系統將不得不面對1G以上的數據處理量,而解決此問題的途徑有幾種,不論是在項目中解決該問題,還是在維護期解決該問題,項目經理一定要從項目的各個方面進行權衡,快速找到一個恰當的方案。
外部不確定因素包括不在項目原始范圍內,比如行業發展和競爭需求中所產生的新要求,例如:一個城市商業銀行一攬子解決方案的項目,包括核心業務系統、信貸管理系統、國際業務系統、中間業務系統等等,項目經理和項目組業已將客戶的需求控制在一定范圍內,信貸項目組根據以往的經驗,預見到在綜合業務系統上線后不久客戶將會提出現場信貸功能的需求,但按照現有銀行模式,所有數據是大集中在中央數據庫中,如果現場信貸的功能要實現,那不得不要求核心業務系統提供數據源和數據端口,而由于此項功能需求是行業中發展中一項新的功能亮點,現在的核心業務系統不包括此接口,而要增加此功能端口和源要求核心業務系統要做很多改動,有些是重大改動,如果放在二期來做,客觀條件不允許在具有生產數據下進行長時間充分的測試,很可能造成系統的不穩定,而銀行系統又需要具備很強的穩定性,還有可能造成銀行在結算、沖賬這些關鍵環節上的錯誤,這個時候項目經理面對的是外部不確定因素。
這兩個方面都是靈活的項目管理方法中必須要考慮的因素,項目經理不得不決定到底如何要解決它們。
對于內部不確定因素,它的風險性對于第一次做此類項目的項目經理是高的,隨著項目經理經驗的增加,它的風險性呈現反比例發展。像世間無一樣,風險不可能減小到零,所以,無論你作為項目經理和你的團隊做過多少個同類型的項目,也不論之前成功實施的幾個項目間和新項目有多么的類似性,永遠不要期望項目完全按照你的既定計劃來走,沒有人會知道會有什么樣的事情會在項目中等著你,每一個項目都在考驗你的項目管理能力和靈活的項目管理手段。