目前,軟體公司越來越多,為了討好客戶,獲得業務,許多軟體公司都開展定製軟體業務,即根據客戶的需求開發軟體。說實在的,這是一件技術難度特大的活,我以為是不適合一般的小公司做的,但一般的大公司卻不屑於做這些吃力不討好的事,就是做也是定價不菲。但一些小公司卻仗自己人力資源成本低,往往能以比較低的報價拿到專案。儘管某些小公司人力資源成本低,但管理水平不高,培訓不到位,人力資源水平也不盡如人意,結果專案做的跌跌爬爬,客戶不滿意,自己賺不到錢。
產生這種結果的原因太多,絕不是一兩篇博文能說清楚,上一篇已經說了一個原因,那就是專案演示的問題,今天我再說另外一個原因。說的不對的請大家批評。
1、專案遭遇客戶內部矛盾時要堅決說“NO”。我遇到的一個很有才氣的專案經理,是一名博士後,我很敬佩,從他那裡我學到了太多太多的知識。但我認為他在一個失敗的專案中仍由於不善於說“NO”而負有責任。本來這個專案是一個極具挑戰性的前沿技術。客戶也是一家頗具實力的公司。本來這種合作應該是珠聯璧合的。但在專案初步完成的時候,客戶更換了專案的使用人,就是客戶進行了中層幹部調動,本來這個調動是例行的,並不是針對這個專案的,但卻對這個專案產生了極其不利的影響。
儘管專案已經在試用中,客戶方面新的負責人重新提出了很多的要求,而且這些要求使專案的演算法由非NP問題變成了NP問題。其實這些問題的提出的背景是客戶新的專案負責人不希望沿著原有的路線圖工作,他有自己的工作思路和工作方法,需要實現自己的政績。在這之前,他已經另起爐灶在開發類似的專案,在借鑑了這個專案的部分資料後做了一些區域性的工作。但我們的博士後專案經理並沒有深刻的理解這個含義,結果想盡一切辦法基本達成了這些要求。那段時間這位專案經理對我說,這幾天他整夜不能眠,每天都掉很多頭髮。看著他本來就不多的頭髮,我感到專案經理真的很難很難。同時我也感到這時是他的高水平害了他,換成一般的人掉再多的頭髮也想不出解決辦法,所以早就不想了。
但問題雖然解決了,專案卻變得複雜了很多,系統執行速度也下降了。問題並沒有結束,客戶又提出了新的問題。這樣做了很長時間總沒有結束。最後沒辦法,這個專案經理只好走人,不來了。
說實在的,一開始我也沒有意識到客戶是不想採用新專案,而是迫於總經理的壓力不能直接拒絕。這些我們也是事後分析出來的,但我們有一些更充分的依據。最後這個專案因為缺乏維護而停用了,但客戶另外開發的一套也沒有使用,或者根本沒有開發出來。這個專案的最後沒有贏家。
我想說的就是,如果碰到這類情況,專案不可能有贏家,但專案經理的及時止步可以使專案經理(及其所在的公司)少損失一些。專案經理當時能夠採取的措施只能是果斷退出,並和客戶方總經理做一次全面的交談,說明情況,等將來條件成熟了再做。我相信總經理雖然不一定認同你的說法,但一般是會尊重你的決定的,因為你的一切決定是有合同作為依據的。“兩害相較取其輕”,才是唯一正確的選擇。這是一個悲劇的結果,但現實中也不全部是喜劇。在專案過程中,一旦出現不可控的客戶內部分歧,我們的專案經理只有及時(至少是暫時)撤退才是上策。
2、專案經理對不能在規定時間內完成的要求要及時說“NO”。
定製專案不確定性很多,準確的確定完成時間很難。但我認為磨刀不誤砍柴功夫,我們的專案經理值得花時間去事先弄清楚,否則你就有可能被套。
舉一個很簡單的例子,假如說你的專案是設計一個原材料採購工作流程。那麼你想到的就不能僅是申報採購、稽核、批准、採購這麼簡單。什麼人可以申報?什麼人可以稽核?什麼人可以批准?是一個人批准?還是幾個人競爭審批?等等,需要考慮。這些也是設計者一開始就能想到的。那麼再進一步,是所有的東西都是一個報、一個人批?還是要區別對待?如果要區別對待,那麼客戶能夠給你一個明確的分類嗎?如果客戶將來要增加分類怎麼辦?原材料採購當然就涉及供應商和價格,那麼價格和供應商要不要審批?供應商和價格的審批要不要分級分層?如果需要,客戶對於供應商和價格的分類能否提夠一個可以準確描述的依據?是否存在增加分類型別和重新分類的問題?如果專案經理一開始沒有弄清楚原材料採購流程可能包括比這多得多的內容,而且有可能有些客戶自己並沒有確定或說不清楚的話,你就不能知道你這個專案要多長時間完成。說實在的,客戶不是專家,一次性和你說清楚這些問題是不可能的。做過專案經理的人就應該知道,在這個時候,客戶是牙膏,你擠一點他就說一點。其實這也不能怪客戶,因為客戶不可能還時間為你的專案策劃,一是沒有時間,二是真的不懂。
所以對不能在規定時間內完成的要求說“NO”的難點不在於說“NO”本身,而在於要知道完成客戶的已經說出的要求和為了完成客戶已經說出的要求還要完成哪些潛在的要求要清楚,並且要了解需要花多長時間。這需要專案經理對於專案有很強的把握能力,對業務十分精熟。
3、對於客戶的要求不能先說“YES”,再說“NO”。
有些專案經理對客戶提出的要求開始漫不經心,滿口答應,然後到做到中途才發現做不了。這種情況出現一次還可以原諒,出現多了恐怕問題就大了。客戶對你的能力就產生了懷疑,進而就懷疑到你們公司的實力。一個好的專案經理應該一次也不出現這樣的情況。
4、不能對客戶提出的細節要求說“NO”。如果某部分內容是承諾客戶應該做的,那麼客戶要求的一些細節的修改,我認為不論多難,也應該滿足。因為這些細節一般就是操作細節、操作習慣和操作效率之類的問題。如果某項大的功能你不做,客戶充其量沒得用,但如果某一個功能你做了,卻沒有做好,那麼客戶每用一次就會在心理對你反感一次,就等於你投入了精力在為自己做負面廣告。你傷害的不僅是你自己的名聲,還有你所在的公司的名聲。
對於專案經理說“NO”的問題,可說的還很多,但我想也沒必要說的太多,因為大多數都是很明白的,大家都知道的。比如專案經理不能對“5S 說“NO”,等等。
對於我上面說的這些問題,我想分析一下其深層次的原因。之所以出現這些問題,主要有兩個方面的原因:
首先,我們的一些軟體公司管理不規範,人員素質低下。一般的國外的軟體公司和大的軟體公司是不會出現上面的這些問題,因為大公司管理規範,員工培訓到位。不是到人力資源市場上隨便招一個人來就能做專案經理的。專案經理需要經過嚴格的培訓。而一些小的軟體公司根本沒有內部培訓,就是培訓也不知道培訓什麼。這樣的公司如果不改進,不引進真正的人才,遲早會倒閉。如果客戶和這樣的公司簽約,至少是專案效率低下,甚至專案失敗,雙方受傷。專案經理的培訓是一個大課題,有時間我真想好好寫寫這方面的內容。
其次,我們的客戶還不成熟,客戶需要培養。客戶希望付出少量的投入,獲得更多的回報,結果這些不規範的小公司反而能拿到訂單,而那些規範的大公司因為報價切合實際而過高,從而失去了訂單。最後受到損失就包括我們的客戶。還有一些客戶在如何和軟體公司溝通和合作上面還缺乏經驗,這也是一個問題。客戶的不成熟使得我們有的時候只有主動放棄一些訂單,才能保全利益。關鍵是要練就一雙識別客戶的火眼金星。
總的來說,我不主張定製軟體,應該將定製軟體做成標準版本。做定製產品要求軟體公司要在短時間內瞭解客戶的所有業務流程和公司文化,這幾乎是不可能的,所以定製軟體的投入產出比一般不高。軟體企業要有自己的產品,要靠自己的產品去生存和發展。軟體公司可以將軟體產品做成能夠儘可能的通過簡單的配置適應各種可能的情況,而不是臨時再去設計軟體。
但在目前的情況下,定製軟體是不可避免的,而且這個市場還很大,值得去挖掘。因此,對於一些管理不夠完善的小軟體公司,練好內功,就能成就一番事業。