Vision(愿景):
一個軟件如果沒有明確的Vision,就如同在旅途中失去了方向。而且此Vision要能被團隊所有人接受,并能激發大家的工作激情。所以在軟件開發的開始階段,確定Vision是件極其重要的事情。好的Vision會讓團隊所有人充滿激情,并能夠很容易地被外界認可。
Scenario(想定)and Persona(角色):
在軟件開發之前,需要弄清楚這個軟件的用戶是誰,他們的需求是什么。找幾個典型的Persona來體驗幾個典型的Scenario是非常重要的。這會讓開發人員明白他們要做什么,軟件究竟需要提供什么功能。
Feature List (特征清單)and Spec(說明書):
編程人員一般不原意寫這兩個東西,總是Feature跟著程序變,Spec很多時候也只是為了完成任務。一個成功的軟件在開始coding之前,需要有詳細的Feature List和Spec,特別在一個團隊中,而且它們需要在團隊中一起討論得到,每個人都應該清楚。如果沒有這些文檔,軟件開發就會變得混亂。
Design(設計)and Review(回顧):
軟件設計得好壞直接關系到軟件的質量,代碼的質量也是跟軟件質量息息相關。如何做一個好的設計和編寫高質量的代碼?讓團隊一起來Review你的設計和代碼,讓別人盡可能多的Chanllenge你。團隊每一人的設計都需要讓其他人知道,讓問題盡可能在開發的早期暴露出來。Review也是學習的過程,年輕不怕犯錯誤。Review也會真正的讓寫程序變成一種態度。
Test(測試):
Test不同于Debug。Test分為很多種,是軟件質量的一個很重要的保證。Usability Test,即用戶體驗,也很重要。
Communication(交流):
團隊需要交流,不然就僅僅是幾個人湊在一起而已。項目中大多數問題的解決都歸功于交流。
Triage:
這個很有趣,一般是在很棘手的問題或者項目后期對一些Bug或者還沒實現的Feature的討論。就是團隊的人坐在一起討論這些Bug是不是要Fix,哪些Feature一定還需要實現,哪些需要Cut掉。需要最后給出決定。
Post Mortem:
一般是在項目快結束的時候,團隊所有人坐在一起討論哪些地點做得好,哪些地方做得不好,為什么會這樣。這個很重要也是很必要的,因為人生就需要經常總結和反思。
Leader:
Leader需要把握項目的整體,驅動團隊向前,把整個團隊牢牢地團結在一起,而且很多時候要快速地對情況做出反應,快速地做出適當的決定。