摘要:《軟體工程與 VSTS》心得:公開透明的專案開發狀態
上次簡單介紹了《軟體工程與 VSTS》的中心思想,這回我想和大家分享另一個貫穿本書的要旨--公開透明的專案開發狀態。
當 我在閱讀或翻譯這本書時,作者在書中舉的一些例子或實務建議經常讓我聯想到過去的專案開發經驗,「公開透明的專案開發狀態」就是其中一個。這聽起來似乎不 是什麼了不得的新概念,可是就像作者在書中引述佛洛伊德的話:「天經地義的事情反而沒人會把它說清楚、講明白。」這看似再明白不過的道理,不知有多少人認 真思考過並付諸實行?
如果你是一名程式設計師,在開發專案時,是否曾有一種見樹不見林的感覺?這種感覺就好像走在森林裡,你知道自己正往哪 個方向走(或者其實是別人告訴你該往哪裡走),可是卻不知道路還有多遠、最終目的長什麼樣子。如果是這樣,你還會積極前進嗎?如果你是 CIO、PM、或 Team leader,你希望只有自己能掌握專案的完整資訊嗎?你的管理風格是傾向讓小組成員聽命行事,還是讓他們隨時了解專案的狀態、主動積極解決專案的問題?
考 慮另一種情況,當你把客戶反應的問題逐一測試並確認之後,交給程式開發人員處理,你是否希望能隨時知道那些問題的處理進度(以免客戶問你時支支吾吾無言以 對),但是又不想一直去叨擾開發人員(「已經再處理了啦,三不五時就跑來問...>_<|||」)?如果你是 PM,你是否希望知道目前的專案開發進度?在哪個環節出現瓶頸而拖慢開發速度?誰的工作負擔比較輕可以來支援這個某項任務?......
以上問題的答案,就是公開透明的專案開發狀態。
讓 所有成員都能看到專案的所有開發狀態,不僅能夠促進專案成員主動積極的工作態度,同時也能提高團隊合作的效率。如此,團隊的運作將不再是檯面下的動作(這 裡並不全然指"小動作"),而是完全的開誠佈公,從而建立一個向心力強、彼此互信的團隊。確實,互相信賴真的是維繫團隊成員的關鍵。試想,少了信賴基礎, 團隊成員彼此相互猜忌,工作效率怎麼會好?(為什麼我的工作比較多?為什麼反映給他的 bug 都遲遲未解?到底專案進度落後多少?待會兒的檢討會議要怎樣避免被他人攻擊....)
了解公開透明的重要性之後,接下來的問題便是:How?我們要如何實現這個目標?
本書既名為《軟體工程與 VSTS》,那麼自然是要用 Visual Studio Team System 來解決這個問題囉!
VSTS 把專案所有的工作項目都儲存在一個共用的產品工作清單(product backlog)裡面,所有的專案成員都能透過 VSTS 用戶端工具(包括 Team Explorer、Excel、Project...)存取這份工作清單的內容和狀態。註:所謂的工作項目(work items),包括 bug、風險、要完成的軟體功能、以及其他開發相關的工作。
不僅如此,VSTS 能夠維護開發流程中的各個工作項目之間的關連性,同時會把工作項目的狀態與歷史紀錄保存在度量資訊倉儲裡面,以產生各種專案開發狀態的統計圖表。這樣一 來,所有團隊成員都能隨時檢視、發現問題、並主動解決問題--換句話說,把軟體開發的整個過程都透明化了!
附帶一提,SCRUM 軟體開發流程是單一 product backlog 概念的先驅,如果您對它有興趣,可以到這個網站逛逛:
http://www.mountaingoatsoftware.com/scrum/