2006年JOLT大獎(http://www.sdmagazine.com)的得獎名單:
企業項目管理:WelcomRisk 2.6(Welcom)
缺陷跟蹤、變更與配置管理:Perforce SCM 2005(Perforce)
設計與建模:Lattix LDM 2.0(Lattix)
項目質量管理:Rally 5.6(Rally Software Development)
測試工具: VMTN Subscription 2005(VMware)
參見《死亡中旅》2nd 第x章--最小工具集.
1.版本管理工具
??? 有沒有版本管理,可以作為項目到底有沒有推行軟件工程管理的一條華麗的分隔線。
? ?因為現在是2006年了,我們選的是Subversion。
? 客戶端工具:小海龜(http://tortoisesvn.tigris.org/)。這個CVS版的姊妹工具以前就號稱WinCVS殺手了,與Window Explorer右鍵的整合,摒棄了必須專門跑一個Client的傳統。
? 文本比較與合并工具:小海龜里集成的TortoiseMerge。除了Update和Commit外,查看歷史版本差異,合并版本沖突是大家最常做的事情了,所以工具也一定要用適合的。
? Web瀏覽代碼:Trac(http://www.edgewall.com/trac/),完全合乎讓人Pleasure標準的Web版代碼展示工具。能夠方便的查看,Search代碼,觀察倉庫的提交日志。
如果團隊里依然用CVS的話,相對應的推薦套件就是:
l???????? 客戶端:小海龜(www.tortoisecvs.org)
l???????? 差異比較工具:WinMerge
l???????? Web代碼瀏覽工具:Fisheye
l???????? 帳號管理工具:CVSTrac
2.項目計劃,任務分配,需求變更管理,Bug管理工具
??? 偶然的,我發現自己把這些都交給了JIRA完成。
????項目計劃,任務分配,進度跟蹤,需求變更管理,Bug管理幾乎就是PM的全部工作了。
??? 以前總有很多軟件分開來管理這些問題,同一問題經常要Copy Paste好幾個軟件。
????但如果你的團隊的項目計劃是XP plan風格 而不是MS Project。
????那恭喜了,一個JIRA就可以完成所有任務。?
????但MS Project實在深得各位老板厚愛,所以我們會做一個粒度很粗的Project來應付老板、開會和監理,讓他們大概了解項目的計劃和進度。而采用敏捷編程的計劃風格,靈活的向團員分配具體任務。
?
??? 看Jolt的獎項設置,也可以看到這種把N種項目管理工具組合歸并的趨勢,去年的“Change and Configuration Management Tools”和“Test-Defect Tracking Tool”,已經合并成“Defect Tracking, Change and Configuration Management”
3. 設計建模工具
?? 雖然程序員都不太喜歡代碼以外的任何東西,當然也包括UML圖。但實踐證明敏捷編程也不能完全拋棄設計,如果將UML圖用于純粹的交流工具而不是MDA一類宏偉愿望的話還是挺有用的,比如靜態Class圖和順序圖是我最經常畫的東西。
??? 有很多明星級的工具可以畫這些圖,但我某天發現,一個很小巧的工具Jude(http://jude.change-vision.com/jude-web/index.html)已經可以把這兩種圖畫得很好。大家都可以在使用內存怪獸般的設計建模工具時,尋找屬于自己的袖珍玲瓏版工具。
?? 另外,如果要畫流程圖。我喜歡SmartDraw多過Visio。因為SmartDraw有很多色彩鮮艷,配色好看的模板,現成又好看的東西才是第一選擇。
4.開發環境
曾幾何時,Visaul C++6.0是我認為最完美的開發環境,而隨著IDEA和Eclipse的不斷升級,我們的個人品味與懶惰程度也在共同提高。同時,Eclipse也依靠它無敵的Plugin編隊,將自己的風格逐一推向Java、C++、PHP、Python和Ruby等領域,有一統江湖的趨勢。
重構(二級)
即使團隊用得最多的只是Rename、Move、Extract Method等幾個基本動作,Java EE架構里牽一發動全身的事情也太多了,重構會幫你把所有事情做干凈,所以我現在已形成依賴,如果不用重構,隨便改一樣東西,肯定造成一堆東西編譯不過或者Web應用啟動失敗。IntelliJ IDEA作為第一個支持重構的工具,已經一路高歌把重構的概念深入到JSP、XML、JavaScript和CSS等,實在是相當聰明。
Flying Error提示和自動修正(二級)
Flying Error提示在Java IDE里已經逐漸成了標準配置,有錯了馬上提示就地更正,不需要積了一堆錯誤等到編譯時才慢慢查看Error Message排錯。又是IDEA,不但提示錯誤,還會提出幾種可選的修正方案,你點一下就會幫你自動修正。比如一個函數會拋出必須進行處理的checked異常,你如果調用了這個函數,IDEA就會提示你“是在調用的地方進行Try Catch呢,還是在外層函數聲明Throws這個Exception?”你選擇之后就會幫你自動完成,感覺非常貼心。
Smart Complete(二級)
比如現在要輸入myFirstBook.setPublishDate(publishDate)這句代碼,上一代的IDE在輸入myBook.后,會彈出下拉菜單顯示Book類的所有函數讓你選擇。
而新一代的IDE,AI都高得嚇人,總能通過變量類型與上下文的名字猜出你想輸入的內容,比如“my+熱鍵”就能生成myFirstBook,“(+熱鍵”就能生成publishDate。如此Smart的結果,就是我編碼的過程中熱鍵不斷,成了徹底的懶人。
Debug Java EE應用(二級)
Web開發者一般用System.out或者Log4j來顯示調試信息,但對于曾經桌面編程的程序員來說,直接進入調試模式,單步跟蹤程序執行路徑,想看哪個變量就看哪個變量,才是天經地義的事情。慢慢的,這一代的IDE也已經覺醒,通過與Application Server的集成,可以在JSP,甚至第三方類庫的源代碼如Spring Framework的HibernateDAOTemplate里設置斷點,然后單步執行,察看變量的變化。
如果左看右看,其他語言的IDE都很難符合上面的要求,不妨等待Eclipse的強大平臺,一個個插件的慢慢統一。
?5.團隊IM工具和共享文件夾
?? 關于交流工具,從前是言必稱Email的。而隨著社會的進步,現在更提倡交流的即時性,因此,“Face to Face”的交流被作為首選,早上15分鐘的短會, IM工具被作為與Email同等重要的手段。
?? 說起IM工具,很多公司都會選擇嚴肅的MSN而不喜歡QQ。但我還是喜歡QQ的群功能,而且雖然提倡交流的即時,但避免打擾對于開發者也很重要,QQ 新版的“來消息時只顯示消息條數”能起到同樣的免干擾作用。
?? 最后是知識庫,Wiki有一個曾經是優點的缺點——Wiki語法。它的簡單只是對于那種用寫字板寫網頁的高手來說的,大部分人寫文檔的時候還是喜歡所見即所得的編輯。而且,Wiki語法與html不兼容,造成了知識庫與互聯網世界的鴻溝。不過好在Cofluence 2.0終于有了所見所得的編輯器,也可以棄用Wiki語法而直接使用html編輯了。
其他項目工具包括紙,筆,足夠大的白板,隨時可用的會議室。還缺了什么? 代碼自動生成工具中也沒有最趁手的。
注:本文的全文已經發表在《程序員》雜志2006年第5期,更詳細的內容請購買雜志,哈哈--泰穩過午不食 說。
[引用提示]naive1010引用了該文章, 地址: http://blog.csdn.net/naive1010/archive/2005/11/22/534605.aspx
試一試Codesmith,可以根據模板生成任何語言的代碼,腳本與asp.net相似,還為.net 2.0做了優化。
弱弱的留名
EasyBUG
基于WEB的在線的,不用配置;界面很漂亮,操作容易上手,基本上只要是會上網的人一看就會用;區別
其它工具且最實用的一點是截圖功能強大,且是以圖片的形式直接存在,而不是以附件的形式存在;BUG
解決流程也有記錄在案;豐富的統計報表,一目了然;是國產的,有中英文版的而且免費的。
資源地址:http://www.EasyBug.net
試試看這個吧.
其它工具且最實用的一點是截圖功能強大,且是以圖片的形式直接存在,而不是以附件的形式存在http://www.jianianle.com/cate/lunyi.html
http://www.paint.net.cn/