在公司做了三次相關敏捷的主題:現有項目的敏捷之路,SCRUM,敏捷軟件測試。
但是,有朋友說這幾次都是站在管理的角度,程序員自己如何才能做做到敏捷呢?回來想想再結合之前看過的書總結出了如下18條,于是就起名“降龍十八掌”吧。到底哪一條對哪一掌,大家就自己對吧。
1. 態度積極。做事時專注,有問題積極找人幫忙同時也樂于幫助別人,勇于承認錯誤,如果你從沒犯過錯誤,說明你可能沒努力去工作。
2. 深入理解需求。對一個需求要盡可能多的理解,不要急于著手編碼。
3. 不做世外高人。不要一個人默默無聞的編碼,多閱讀同事的代碼,也請同事閱讀自己的代碼,保證代碼易讀,易理解。
4. 敢于發表意見。發現問題時,敢于提出來,不能任何事情都是全票通過,這樣會扼殺創新,容納自己并不接受的想法,貢獻自己的好想法。
5. 持續學習,樂于分享。如果你很長時間不學習,發現很多東西很陌生,但如果你天天學習,每天學的東西很少,不要見到新技術出現“少小離家老大回”的現象。分享自己的知識,提高自己的團隊,同時提高自己。
6. 保持合適的節奏。不要閑一天,忙一天,互上互下,冰火兩重天。
7. 積極與客戶溝通。對需求不確定的任何地方一定要問客戶,給出建議同時讓客戶做決定。但不要問很多沒有價值且耗費客戶很多時間的問題。
8. 重視設計,每一個系統,每一個功能都需要設計,敏捷不是沒有設計。但是設計不要太細,包含系統的結構或類的職責,形式可以多樣,白板,草圖,貼張紙就可以,最終還是通過代碼來體現。
9. 盡早集成,頻繁提交。注意提交不要破壞代碼庫。提交前在本地運行測試,獲得最新代碼,再運行本地測試,通過后提交代碼。原子提交,一旦功能不能使用,可以立即快速回滾, 這樣可以盡早暴露集成的問題,使修復bug的成本大大減小。
10. 用單元測試守護代碼。自動化用戶驗收測試。這樣可以快速回歸。
11. 自動化部署。盡早實現一鍵部署,節省時間且可以盡早知道系統需要的軟硬件環境。
12. 盡早提交,盡早得到客戶的反饋。
13. 一定要個人計劃,而且每天度量自己的進度,SCRUM里可以通過站立會議。要有自己的Backlog
14. 虛心接受用戶的抱怨,認真對待抱怨,找出客戶抱怨的原因
15. 代碼集體所有,任何人都可以改自己的代碼,自己也可以改任何人的代碼。
16. 代碼會說話,利用你的代碼和同事溝通,代碼要清晰表達自己要干什么。保持代碼簡潔易于理解,至少公用方法簡潔易于理解。減少代碼注釋,用有意義的類名,方法名,參數名自己來解釋。
17. 分離解決問題,修復Bug時把其它的地方隔離起來,就像修復電器一樣,會把線路板拆下來修。比如使用Mock等方法。
18. 給客戶顯示可以查詢錯誤的信息。比如可以在錯誤信息前加一錯誤號,這樣可以方便開發人員在錯誤日志里定位。
原文轉自:http://www.anti-gravitydesign.com