上一波是大家惡拼市場,說白了是以軟體之名掙錢,錢掙到了,卻沒留下像樣的軟體。那時大家高舉“資訊化”旗幟,各顯神通、窮盡關係人脈,以三寸之功煽動人家做軟體,說得人家都不好意思不買。買了的人都知道買了個爛東西。
現在不同了,人家都精明了,沒有人會象以前那樣對“軟體”二字敬若神明且一竅不通了。這叫消費市場成熟了,軟體消費者成長了。所以“惡拼市場”那一套該歇歇了。
在軟體業發展的上一波大潮中倖存下來的公司一定在市場方面為自己贏得了生存機會(產品品質方面就難說了)。下一波大潮已經來了,還會淘汰一些,這次淘汰的規則是什嗎?應該是軟體品質了。而提高軟體品質離不開開發過程、專案管理和品質保證。所以我覺得國內軟體業的“下一波”主題應該是開發過程、專案管理和品質保證。
軟體開發是個不太成熟的行當,每個公司都有一套自己的做法,沒有一個權威而標準的軟體開發過程可以適用所有公司。但是開發過程是規範生產過程、規範管理、改進產品品質的基本設施。簡單說就是“規矩”,沒有規矩不成方圓。沒有規矩就沒了方寸,操起項目胡做一通,那是做不好軟體地。目前的很多公司已經開始注重開發自己的開發過程,這真好!
目前比較經典流行的開發過程是RUP、XP等。個人感覺RUP比較原宗,要學的話也是從RUP開始。但是RUP也不是放之四海而皆準的。學以致用,學它的精神,能持續的將RUP的思想、方法運用到自己的項目中是最有效途徑。一下子全面照著RUP做未必有效,就像把“運用所有23個設計模式到項目中”作為項目目標一樣可笑。
專案管理就是應用知識、技術、技能和工具到項目活動中以實現項目目標。
在之前的軟體Team Dev中,“專案經理”幾乎等同於“技術最強資格最老的那個人”。這樣導致的結果是:Team Dev過分側重於技術而忽視了專案管理。對於項目成功來說,技術只是一個部分,甚至不是最重要的部分。專案管理者(專案經理)的最大功勞是擔當“整合者”(Integrator,PMI這麼說的),他努力協調使各種因素朝有利於項目成功的方向發展。專案經理是項目團隊獲得成功的關鍵人物,是管理層和Team Dev的介面層,它保障了Team Dev的管理,同時提高了管理層對開發管理的效率(沒有專案經理的時候基本是職能經理擔當專案經理的職責)。
專案管理者首先必須具備系統的專案管理知識,有一定的專業技術經驗更佳。同時,專案管理是個很講求實踐的東西,學了一堆但是沒有用過等於沒學。因此,專案計劃、項目控制的經驗業非常關鍵。
QA是督察部門,QA不是測試部門。這一點沒有人有疑問了吧?之前,很多公司可能都有測試部門或者測試組(如果連測試組都沒有還敢稱軟體公司就有點太說不過去了),但是很少有QA部門。有了過程和規範,有了執行這些過程規範的Team Dev,誰來保證他們真正的貫徹實施呢?就是QA。沒有QA,說不定那些過程規範形同虛設了。這想法很簡單:就是為了保證合適的人能通過標準的過程產出理想的產品來。如果有法不依、執法不嚴、違法不究,那麼過不了多久必定“法將不法”,我們的軟體開發又回到本世紀初……hoho……
對於習慣了認為“開發軟體就是找幾個人來編程”的領導們來說,這個想法有點不能接受。因為,提高品質是需要成本的,就是品質成本。當然,我們需要做個“投資/效益分析”看我麼這樣做是否划得來。呼呼……如果結果是不能投入一點點的品質成本,那麼就直接關門吧。
呼呼……好了,上面說的亂七八糟的諸位可以不要在意。我真正想說的是,是到了注重軟體品質的時候了。這一波,請不要看走眼!