軟體團隊多大才需要ALM工具?
如果你問我這個問題,我會回答:「ALM工具不用錢的話,一個人的專案也要用!」所以我的這個回答把問題轉變成:「ALM工具會給軟體開發團隊帶來什麼價值?」在我切入這個主題之前讓我來說個故事…
程式產生器的故事
我在大學時代曾幫一位學長寫過一個程式產生器,這個程式我是在286上面寫的,專門給銀行後台輸入表單用,原理很簡單,就是學長的公司請了一些漂亮的工讀生姐姐(那時的印象),在PE2上編排表格,存檔後用我的產生器跑一下就自動生成可執行檔及資料庫檔,經過簡單的測試以後就可以搭配當時最高級一台10幾萬的Acer 386電腦出貨了,這樣的系統看表單的數量大約可以賣50~100萬不等。在當時能請不會寫程式的小姐來做程式這真是一項創舉,整個過程我花了將近三個月,跟學長來來回回的討論,調整與測試,最後把程式交給他們公司的程式設計師,所有的設計內容都在學長跟我的腦子裡,系統一出錯,只有我們兩個人可以很快的找到問題,對其他的人這像是魔術一樣。後來老闆不想出錢讓我做第二代的產生器,我拿了五千塊走人,過了一兩年以後聽說學長去唸了研究所也離開了,然後我就沒聽說那家公司的後續發展了,我想大家應該猜得出來。
小而美的核心團隊
時間回到現在,我運氣很好現在的團隊有5.5個Developer,有3.5個Tester,其中半個人是經理,開發經理跟測試經理都只能當半個人用,他們很多時間都在開會,這個九人的小組目前做的東西是第三版,我把去年十月出貨的核心部份原始程式碼用VS2010的Architecture Explorer產生一下類別關係圖長得像這樣:
這個部份是大約四個人寫一年,這個圖沒什麼特別的意義,我只是想來試一下可不可以把VS2010弄當機(結果沒有),還有讓同事們看一下我們真的很會寫程式(17369 nodes and 84958 links),終於我們可以看到程式長什麼樣子了!大家都很興奮。
目前我們這個小團隊用的是VSTS 2008,bug資料庫與報告系統是自己公司開發SQL Server based的小工具,原始碼控制不是用TFS,是用大家已經習慣的另一種,我不便在此透露。
高產能的團隊
我想這個高生產力的團隊的祕訣是:儘量讓大家做自己拿手的事!
我們一個星期開一次小組會議:一小時,我們會用小組會議的時間溝通設計上的問題,討論bug的進度,大家都很清楚彼此在做些什麼事,我們大家最拿手的事就是寫程式,所以經理要我們專心寫程式就好了,報告我們是用TFS連到自己的bug資料庫然後自動每星期送兩次像這樣簡單的圖表:
至於這樣做的理由根據測試經理說當初有想過要把bug資料庫轉到TFS去,可是有個新來的Developer為了好玩,花幾天寫了一程式把我們原來bug資料庫的東西轉成TFS工作事項,後來大家就繼續忙著寫程式,沒人管昇級到TFS的事了。
ALM工具的價值
看過這兩個例子,我們回到ALM工具價值的討論上,以前在沒有ALM工具的時代,溝通靠電話,對系統的知識則在人腦中及原始程式裡,常常因為人事的變動很容易造成專案無法維護或更新困難的情況;現在有了ALM工具,原始碼的變動歷史一清二楚,專案進度的報表可以自動產生,工作指浱在團隊裡是公開透明的,誰做了多少事很明確,最重要的是整個軟體開發過程所累積的知識都完整的保存了下來,新人一來上手就可以靠自己去系統裡看事情是怎麼回事,而不必去忍受高級工程師的不耐煩。
VS2010 現在我還在修煉當中,初步看起來系統整合度不錯,我們這個九人小團隊因為大家已經有使用ALM工具的觀念跟習慣,我想昇級上去應該沒什麼問題,如果你的團隊是只有3~5個人而且之前沒用過ALM工具的話,開始導入應該會有不錯的效果,如果你有興趣的話留個言,我下次再來分享一下小團隊導入ALM的方法。
再強調一下:儘量讓大家做自己拿手的事!
喜歡玩東西寫程式是我拿手的事,所以先做了再說,至於錢怎麼算?那是老闆拿手的,我只管把程式在時間內交出來,其他的不關我的事。
軟體團隊多大才需要ALM工具?你有答案了嗎?請注意我在這裡說的是一定要用ALM工具,我可沒說:一定要用VS2010!
Bda