構建高效軟件開發流程和團隊
構建高效軟件開發流程和團隊
?
?
1.?? 前言
本人曾就職于多家公司,但留給我印象最深刻、開發管理最規范的公司
?
2.?? 項目計劃
在一個產品發布并使用之后,其中肯定有許多地方不如意和值得改進的
每個人把同自己相關的功能模塊收集起來,同時預估時間
雖然這個開發進度時間是一個大概的估計時間,但我們要盡力按照這個
3.?? 開發文檔
在項目進度安排中我們已經把寫文檔的時間也規劃進去了
Function Spec
中需要寫明的是本模塊完成的任務,解決什么問題,有什么作用
Design Document
中主要描述實現此模塊所涉及到的主要算法、數據結構
4.?? 編寫代碼
由于我們用
JAVA
語言進行開發,因此我們借助了
Jbuilder IDE
工具。關于代碼風格,我們基本上套用
Jbuilder
中自動的代碼格式編排,但其中需要改變的是縮進是
4
個字符,類與類之間間隔
2
行,方法與方法之間間隔
2
行,
import
類時用完整的類名。寫代碼時要對類及函數提供詳細的注釋及說明
?
5.?? 代碼管理
我們采用
VSS+SourceOffsite
進行版本控制,其中存放了此產品的所有源代碼、庫文件、文檔及
release
時的安裝程序,各個部分存放在不同的目錄中。每天早上要求開發人員
每天我們都會做
daily build
,一般是在凌晨
4
點進行,那時有個程序會自動從
VSS
中拉下最新的代碼并進行編譯。因為我們同美國進行同步開發
6.?? 測試
在開發人員完成了
Function Spec
后,測試部門開始了測試規劃,確定需要測試哪些方面
7.?? BUG 管理
由于我們每天進行著測試,因此經常有
BUG
被測試部門發現,一旦發現了新的
BUG
,就會被添加進
BUG Tracking System
中。目前較流行的
BUG Tracking System
有
TestTrack
、
ClearQuest
、
Bugzilla
等。
BUG tracking system
是開發人員和
QA
之間的紐帶,開發人員和
QA
通過
BUG tracking system
聯系著。每個
BUG
有其類型和級別,預定的類型有
Crash-Data Loss, Crash-No Data Loss, Incorrect Functionality, Cosmetic, Feature request
等
,
級別有
P1
、
P2
一直到
P6
,它們分別代表了重要性及緊急程度,
P1
的
BUG
需要很快
fix
,
P5
之前的
BUG
在本版本
release
之前必須
fix
掉,若真的不能或不重要則由
QA
確定并降低優先級進入到下一個版本中去
fix
。
QA
發現一個
BUG
后在
BUG Track
中增加一個
BUG
,同時填入相關信息并
assign
給相應的開發人員,開發人員收到
BUG
分析并
fix
后
assign
給
QA
去
verify
,其中要填上分析的結果以及如何解決的詳細說明。若
QA
對此
BUG verify
通過則
close BUG
,否則
verify failed
并重新
assign
給開發人員并等待其
fix
。每星期在
Status Meeting
上會進行
BUG
狀況報告,主要由
QA
組長報告
BUG
的狀況,主要是新增
BUG
數,
fix
掉多少,還有多少處于
open
狀態,有多少處于等待
verify
的狀態,據此可以了解開發及測試情況。有時在
Status Meeting
上我們也會進行
BUG Review
,
BUG Review
有時是單獨一個小組內進行,其主要作用是重新明確每個人頭上的
BUG
以及了解每個
BUG
的狀況,如開發人員對此
BUG
將作何處理等,以此來了解開發中是否有碰到比較棘手的問題
需要指出的是我們對
BUG
的定義比較廣泛,一些新功能也可以作為
BUG
被提出,只不過這些
BUG
級別比較低,讓它們進入到下一個版本中去實現。因此
BUG
的創建者也可以是技術支持人員、市場人員甚至開發人員本身
8.?? Code Freeze
當
P5
之前的
BUG
都被修復了,這時離產品發布日期也就不遠了,一般是
2
個星期后就能
release
產品,這時要對
VSS
中的代碼進行
freeze
,以保證代碼庫的穩定性。
Code freeze
階段一般會把各開發人員的
check in
和
check out
的權限關閉,若在這時仍有
BUG
報告上來并經討論確定是重大的且必須在本版本中
fix
的,則需要經管理層同意并特殊地授予權限,在修改完成后修改者要把
?
9.?? Tech Talk
計算機知識更新速度非常快,經常有一些新的術語、新的名詞
?
10.????????? Code Review
當進行工作移交時我們會進行
Code Review
,在碰到棘手的
BUG
時也會進行
Code Review
,
Code Review
是大家了解其詳細實現的一個好機會。在
Code Review
之后會對此代碼產生親切感而不是陌生懼怕感,相信很多人在讀他人代
11.????????? 溝通與交流
大部分員工的大部分時間是在公司里度過的,因此公司的生活成了大家
12.????????? 后記
不同公司有不同的做法,我只是把我認為比較好的流程與管理方式呈現