我們的系統從2003年就開始投入研發,雖然每年同一時間的開發、測試人員并不多,但也過了6年多了,做了一些小項目,所以已經是好幾個功能版本了。我這里說的不是SVN上的版本,而是功能上的,比如標準版、公安版、稅務版、煙草版、酒店版、電信版等,web界面各個版本有一些差別,c++開發的后臺也有一定的差別。
我來之前,是習慣不怎么寫文檔的,5年間留下的文檔十分有限,而且及其簡單。很多功能保留在老開發人員和測試人員的大腦里,好在還有那么一兩個沒有走。
要整合所有的版本,以減少開發量和維護量,JAVA和c++系統都要這樣,不然這點人手馬上就手忙腳亂。
要適當文檔化,"源代碼就是設計"體現在業務流程細節上,大方面業務流程、特殊算法、產品功能規劃、系統設計、開發計劃與優先級等,一定要文檔化;老是把這些東西保存在開發人員和測試人員的大腦里,是一個管理混亂的表現,隨著人員流動,新人需要從代碼和測試慢慢明白系統的各種業務流程,是極大的浪費資源。
要更加強調軟件測試,特別是開發人員的單元測試。
很多時候,開發人員特別是JAVA開發人員,喜歡做出漂亮的WEB界面,然后告訴你完成了,當你細細一點按鈕來測試功能,卻發現這也不行,那也不行----典型的好看不好用。
靠測試人員來保證軟件質量是正確的,所謂QA,但是中國軟件公司不注重測試是一個難以改變的現實,小公司就更嚴重了,全職的測試人員比例太小了,所以想依靠測試組來保證系統質量在小公司是不怎么現實的。
所以我一直強調開發人員一定要做好單元測試,我所指的單元測試不是JAVA組的JUNIT、或c++組的CppUnit,我并不要求細到這個程度,常常只要做好模塊功能測試,測試詳細一些,盡量不要把一些錯誤留給測試人員,盡量自己發現大部分BUG,自己解決掉。事實上這個要求是比較高的,常常令人失望。
很多做了四、五年以上開發的人,在實現一個功能甚至一個子系統時,是游刃有余的。而在開發計劃制定上卻不怎樣,常常比較抵觸去做,認為不重要,沒有技術實現重要,這個想法是錯誤的。
怎樣有條不紊地組織有限的人力,在規定的時間里完成開發任務,并且測試好軟件系統,保證一定的軟件質量,并不比技術實現輕松,F實中常常是人手有限、時間緊迫,作為一個協調人,怎么制定優先級,怎么把各個開發組、測試組、技術支持組串聯起來,怎么說服市場人員和老板取消掉一些不實現的功能點,是需要鍛煉的。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/