1.版本管理工具和文本比較/合并工具
用的是CVS: 綠毛小海龜加 WinMerge.
這年頭,還有誰敢不用版本管理工具就跟人合作開發嗎? 有的。
一個好的Programmer,除了要有好的udpate/commit習慣外,會不會善用文本差異比較/合并工具是另一層次的觀察標準。
另外,因為重構時有用,版本管理工具要能和IDE結合。
2.專案計劃,任務分配,需求變更管理,Bug管理工具
偶然的,我發現自己把這些都交給了JIRA完成。
專案計劃,任務分配,進度跟蹤,需求變更管理,Bug管理幾乎就是PM的全部工作了。
以前總有很多軟體分開來管理這些問題,同一問題經常要Copy Paste好幾個軟體。
但如果你的團隊的專案計劃是XP plan風格 而不是MS Project
那恭喜了,一個JIRA就可以完成所有任務。
3.支援重構,Flying Error提示,TDD和Debug 的IDE
Java: IDEA 5.0能滿足下面的全部要求。
C++: VC7.1+VA,就差好多了。
Ruby: Eclipse的RDT外掛程式,就弱得一塌糊塗。
Groovy:IDEA的外掛程式Groovyj
Php: Zend Stuido
有時候,我也會用Eclipse+商業的,免費的外掛程式代替分別開啟上面這麼多IDE。
a.重構:即使團隊用的最多的只是Rename,Move,Extract Method等有限幾個最基本的功能,但J2EE結構裡牽一髮動全身的事情太多了,重構會幫你把事情擦乾淨,現在已形成依賴。
b.Flying Error提示:
Java IDE的標準配置了,有錯馬上提示,不要等編譯時間。可惜其他語言的IDE裡這還不是標配。
c.Debug J2EE應用:
Web開發人員一般用System.out或者log4j來顯示調試資訊,但對於曾經案頭編程的程式員來說,直接進入偵錯模式,單步跟蹤程式執行路徑,想看哪個變數就看哪個變數,才是天經地義的事情,只是之前的IDE不能支援而已。
d.TDD:TDD不等於Unit Test。TDD是讓你不用依賴表現層,不用手工輸入資料,清除資料,不用重起Tomcat的開發。
我們團隊暫時還追求不起測試覆蓋率,So,UntTest只是一種開發的手段,而不是測試的手段。
4.團隊IM工具和共用資料夾
前代是言必稱Email的,現在配合Google Group也很好用,但我們更喜歡QQ 群的即時性。
同時QQ 2005版的"來訊息時只顯示訊息條數"的免打擾功能很重要。
對於坐在一起的團隊,在檔案伺服器上建個共用資料夾就夠了。
5.知識庫Wiki
Java裡JspWiki是最簡單易裝的入門級wiki,Cofluence 2.0終於有了所見所得的編輯器的編輯器。
php世界有其他的選擇如Dokuwiki 和wikipedia。
其他工具包括紙,筆,足夠大的白板,隨時可用的會議室。
還缺了什嗎?
一、代碼自動產生工具中也沒有最趁手的。
二、因為沒有足夠的UnitTest用例,配好的持續整合工具沒有實際運作。