BugFree

BugFree

BugFree是借鑑微軟的研發流程和Bug管理理念,使用PHP+MySQL獨立寫出的一個Bug管理 系統。簡單實用、免費並且開放原始碼(遵循GNU GPL)。 命名BugFree 有兩層意思:一是希望軟體中的缺陷越來越少直到沒有,Free嘛;二是表示它是免費且開放原始碼的,大家可以自由使用傳播。

來源

如何有效地管理軟體產品中的 Bug,是每一家軟體企業必須面臨的問題。遺憾的是很多軟體企業還是停留在作坊式的研發模式中,其研發流程、研發工具、人員管理不盡人意,無法有效的保證質量、控制進度,並使產品可持續發展。

針對這個問題,我們獨立做出了BugFree,並且半年多來每天都在使用。我們公司就是用它來管理Bug,不斷提高產品質量的。

1.3 為什麼開放BugFree的原始碼呢?

根據半年多的實踐,覺得BugFree非常有用,我們公司的日常工作已經離不開它 了。雖然沒有微軟的Bug管理系統(以前叫Raid, Product Studio)的功能強大, 但是處理方法和思想是完全一致的,起碼我自己用起來的感覺和在微軟時基本一樣,值得向大家推薦。

我們是用開放原始碼的 PHP+MySQL開發的,目的就是希望跟大家分享BugFree。而 且開放原始碼之後,期待高手不斷改進它,大家都能用到更加強大的功能。也算為中國的軟體業做點小小的貢獻。

BugFree代碼在我們的“數字神經系統”中非常獨立,很容易拿出來給大家共享。

1.4 BugFree僅僅是個工具

不過坦率的講,BugFree 僅僅是個工具而已,重要的是掌握其中蘊含的軟體研發的流程思想,才能用好這個工具。如果你以前沒有用過 Bug管理系統,那么一開始的時候也許你會覺得這個工具是在浪費時間,因為一個測試人員需要費神把發現 Bug的詳細步驟記錄下來, 有時還要貼一張示意圖,這一切都不如當面說來得直接。

但是使用一段時間,你會發現 BugFree很有用,它忠實的記錄著每個問題的處理過程, 不斷提醒你存在的問題,永遠不會丟失和忘記。如果你參與過較大軟體項目或產品的研發, 就會理解它對軟體可持續發展是至關重要的。而且研發的規模越大,BugFree 的作用就會越大。

如何安裝

BugFree的安裝和使用都非常簡單,就像PHP+MySQL一樣:

INSTALL.htm 介紹了BugFree的安裝

HOWTO.htm 介紹了如何使用BugFree

FILES.htm 介紹了BugFree的代碼檔案結構

希望你能喜歡BugFree,就像我一樣。

為何開發

一言以蔽之,「工欲善其事,必先利其器」。

1 我在方正的困惑

我曾在北京大學計算機研究所(方正技術研究院)學習、工作了七年,那裡有我很多師長和好友,我參與研發的方正RIP (PSPNT) 至今仍是方正的核心軟體產品。當自認為成了一名合格的 C++開發人員後,我發現面臨一個無法解決的難題:如何有效地控制軟體研發流程以保證產品質量和進度。我意識到做好一個軟體,只靠技術好是很不夠的,必須要有一套好的研發流程和配套的研發工具。恰好那時我在吳士宏的《逆風飛颺》中讀到了微軟的“數字神經系統”及相關敘述,很吃驚,想去那裡看看。

2.1 分工明確

主要的三個角色: PM (Program Manager)、 Dev (Developer)、 Tester三者分工明確、接口清晰,PM來定義需求、書寫出來每個功能特性 (Feature)的設計文檔(Spec),Dev寫代碼來實現這個Spec,Tester來測試 Dev做出來的東西是否符合 PM定義的 Spec,三個角色之間並無必然的上下級關係,只是分工合作完成某個功能(Feature)。我將之形容為“三權分立”,三者之間有效合作並制衡。國內企業好像還沒有PM這個角色,而測試人員又往往成為開發人員的附庸,一個 Bug是否要被解決全由開發人員說了算,這很糟糕,就像政治上一個權力沒有被有效的制衡一樣,一定會產生各種問題。

2.2 研發工具配套

PM將寫好的需求設計文檔(Spec)保存到 SharePoint【見附錄一】文檔庫中,所有相關的人都可以隨時查看;Dev用Source Depot (功能類似CVS的微軟內部原始碼管理工具)來保存源程式;Tester把發現的Bug記錄到Raid中以有效跟蹤這個問題的處理流程。

2.3 分階段研發

和任何軟體公司一樣,微軟的研發無非也分為規劃、開發、測試、 發布等幾個階段。但是微軟的研發流程不走形式,可以統一產品組所有員工的思想,並且能夠有效地控制住進度。做完一個版本後,還會讓所有員工匿名投票,找出這次研發過程中出現的各種問題以便在下個版本中解決 (此過程稱為 Postmortem,挺嚇人的一個詞)。

可以這么比喻,微軟這套研發模式是讓其中的每個人都成了一架高速運轉的機器上的各 種零件,少數零件壞了不要緊,可以隨時更換。當然微軟有許許多多技術高手,但我認為更 重要是其研發模式保證了軟體產品的高品質、可持續發展。

3 微軟的每一天

我在微軟經歷了三個產品的研發:Office XP、Project 2002、Office 2003。微軟所有產品的研發都遵循同樣的研發模式、使用同樣的研發工具來進行管理。在所有的工具中,我最佩服的就是Raid。可以說,遍布全球的微軟研發人員能夠保持統一的思維模式、做事及語言習慣,與整個研發流程的配套工具密不可分,其中最重要的就是通過Raid把整個產品的研發有機的聯繫起來。閱讀每個 Bug,你可以詳細的看到大家討論解決該問題的完整思路。

我曾讀過微軟Project 2002產品的Architect寫的一個備忘錄,其中提到 “Raid是微軟最偉大的產品,為Bill Gates節省了無數金錢”,當時我“心有戚戚焉”,立即給這哥兒們發Email表示贊同之意:-) 他回信說希望Project能夠做的像Raid一樣成功,但可惜他要離開微軟自己開公司了。

在微軟上班,我每天第一件事是打開 Outlook來處理有關自己的重要郵件,第二件事就是打開Raid來看看有關自己的Bug情況,趕快處理。我一直納悶,微軟為什麼不把這個Bug管理系統作為軟體來出售,那可是任何一家軟體企業都需要的啊!

4 西線的實踐

2004年4月我加盟朋友的公司(西線傳媒科技有限公司)做網站。我發覺自己已經習慣了微軟的研發模式,於是建議這幾個朋友先做一個 “數字神經系統” (BugFree 就是其中有關軟體研發的Bug管理部分) ,其目的是讓一切可以數位化、文檔化的信息被記錄下來,為公司的進一步發展和決策提供基礎信息支持。該系統可以用八個字來概括:數據、文檔、自助、自動。其表現形式就是一個包括六個子系統的企業內部網:

4.1 員工管理系統

每個員工都有唯一的UserID,驗證密碼後方可登錄數字神經系統,訪問公司內部信息,查看上下級關係、每個員工的個人公開信息等,此處學習 SharePoint、Outlook和Exchange中的員工管理和展示;

4.2 信息管理系統

內部的信息發布展示平台,有點象 BBS一樣,可發布公司正式通告、員工也可自由匿名發帖;

4.3 Email系統

Email的重要性對一個企業不言而喻,我們採用免費Qmail來搭建;

4.4 文檔管理系統

一個集中管理公司所有文檔(包括研發過程書寫的各種文檔)的地方,學習SharePoint中的文檔庫;

4.5 原始碼管理系統

集成優秀且免費的CVS;

4.6 BugFree

雖然網上有免費的Bug管理系統,但是我看後覺得都不好使,和我在微軟用 的差別太大,科泰世紀公司的 Bug管理系統【見附錄二】倒也很像微軟的,但是要花錢買。 於是決定用PHP+MySQL借鑑微軟的研發流程和Bug管理工具自己開發一個,以便對我們開發新 網站、聲訊軟體、客戶端軟體和公司事務管理中出現的問題進行有效的跟蹤處理。

當然這個小小的“數字神經系統”還不全面,而且當時設計的時候更多的是站在為方便研發人員的日常工作而考慮的,以後還需要掛靠更多的公司業務相關模組。即使這樣,它已經發揮了很大威力,公司每個員工都養成這樣的工作習慣並樂在其中:每天使用郵件,到文檔庫中查找文檔,發現問題上Bug等等。

4.5 BugFree代碼的完成

“數字神經系統”中的BugFree是用開放原始碼的PHP+MySQL寫成、基於瀏覽器方式運行的。我以前沒有任何Linux+Apache+MySQL+PHP的開發經驗,但我很幸運的招聘到兩名優秀的 Web程式設計師,可以在短短的兩個月時間內搭建起這樣的系統。其中BugFree是由我的同事王春生開發的,他用了不到一個月的時間就把代碼寫完,讓我很是驚訝,從而認識到基於Linux的Web開發魅力。

之後我們測試一個多月,就可以在實際工作中使用。現在BugFree已經成了我們日常工作最重要的工具,每個員工也都習慣用Bug來記錄跟蹤事情,不僅僅是代碼中的缺陷可以上Bug,新的需求、設計變化等都可以用這個Bug管理系統有效的管理起來。其實Bug 不僅僅可以用來記錄軟體中的缺陷,也可以用來跟蹤公司的日常事務。比如在公司的網上報銷系統還沒有建立之前,我們就用 BugFree來處理報銷的事情。甚至,一個同事給我上了這樣的Bug:你的桌面太亂了,請整理一下:-)

4.6 BugFree的特點:

Raid是Windows客戶端軟體,BugFree是基於瀏覽器的。基於此,Raid 有很強大的編輯展示功能,而BugFree簡單、方便、易用;

Raid可以進行極其複雜的組合查詢,BugFree的查詢功能相對弱一些,但我覺得已經夠用了;

一個Bug從創建到關閉這個“生命周期”的處理過程,BugFree 全面借鑑Raid的處理流程,處理方法甚至辭彙都和Raid一樣 (所以我用BugFree處理Bug的感覺和在微軟時候基本一樣);

BugFree 還有一個獨創的功能:當一個Bug被指派給你的時候,系統會自動給你發一封郵件,告訴你有個Bug需要你處理,這樣結合 Email,BugFree被完美使用起來,成為我們網站開發、運行、維護必備的工具。我們還增加了兩個Bug統計功能:一是每天早上8點鐘每個同事都會收到一封Email,告訴他/她頭上還有多少 Bug等待處理;二是每周一中午給所有人發一封郵件,告知上周Bug的處理情況和到目前為止所有Bug的統計數據;

BugFree程式規模很小,一個中等水平的PHP程式設計師就可以在1~2周內看懂所有的代碼,然後就可以根據自己的需要做相應的定製了;

最最重要是,BugFree 是免費並且開發原始碼的。你可以體驗到微軟的Bug管理精髓,按自己需要自由地增加功能、修改代碼而不用擔心著作權問題。

二次開發

和任何軟體系統一樣,BugFree中還存在著一些Bug、還有很多地方可以改進、還可以增加很多新的功能。但是基於人力和時間的關係,沒有太多精力去進一步完善它。開放原始碼之後,希望有熱心人不斷完善 BugFree。以下是我想到的可以改進的地方:

1 宣傳推廣BugFree的使用。

一般中小企業沒有很好的Bug管理系統,剛好可用BugFree來填補這個空白。其實 BugFree是一個非常簡單的工具,可以讓非技術人員快速上手使用。開源的目的是讓它被廣泛使用,只有被大家天天用,我們才能找到下一步不斷改進這個軟體的真正需求。有人天天用是軟體生命力的保證。

2 和原始碼管理系統CVS有效的統一起來。

當代碼的改動是因為解決一個Bug引起的時候,系統可以自動把代碼的Check-in結合起來,微軟的原始碼管理Source Depot好像早就有了此能力。可以考慮通過Eclipse把CVS和BugFree連通起來。

3 搭建研發工具套件。

更進一步,把BugFree和需求設計文檔、開發文檔、測試文檔、測試用例等聯繫起來,做成一個軟體研發工具套件,即可通過一個 Bug方便找到對應的文檔、代碼、測試用例等等,那將是一個比較完美的境界。微軟的 Product Studio 向這個方面努力。不過,達到這一步,必須先做一個好的文檔管理工具,就像微軟的SharePoint 中的文檔庫一樣,不僅僅存放文檔,還要方便檢索 (比如 Word文檔內容)等,那可不是一件容易的工作。我的想法是,先借鑑“基於Java 的全文索引引擎 Lucene”去做一個易理解、易擴展的基於C++的全文索引引擎,我在微軟做過SPS的PM,對搜尋引擎這一塊還是比較熟悉、可以做出來的。有了這樣的引擎為基礎後,再借鑑SharePoint做出文檔庫及門戶功能。

附錄

1 微軟的SharePoint

微軟的Windows、Office 廣為人知,但是Office家族中的一個企業級產品SharePoint大家可能還不很熟悉,它分為兩個版本SharePoint Team Service(現改為Windows SharePoint Service,簡稱 WSS),是為一個小組建立網站所用;另一個叫 SharePoint Portal Server (簡稱 SPS),是為了建立企業門戶所用,SPS基於WSS,增加了強大的門戶管理功能、文檔搜尋功能。可以這么說,網際網路上的Web頁搜尋你有很多選擇,如Google、Yahoo、百度等等;企業內部網上你好像只有選擇SPS,儘管這個軟體不便宜。

其實判斷微軟產品的優劣,只要看看微軟自己在內部使用哪些產品好了。從 Office XP 發布以來,SharePoint已經廣泛地在微軟內部部署使用起來,各個部門、小組的網站幾乎都建立在SharePiont上了。微軟也在不斷投入力量加強這個產品的研發,考慮到Office家族的客戶端產品(如Word、Excel、InfoPath等)可以無縫連線到 SharePoint上,非常完美的集成在一起,不誇張的說,SharePoint又將是微軟一棵金燦燦的搖錢樹了。Office家族的產品都在向 SharePoint 掛靠,這樣每個獨立的看似沒有發展空間的客戶端產品如Word、 Excel 等,一下子都有新的發展餘地,開始邁向真正的企業級套用解決方案。

2 科泰世紀公司的Bug管理系統

據我所知,還有一家公司也在學習微軟的研發模式:科泰世紀,他們的軟體工程管理工具像我們一樣在借鑑微軟的經驗。科泰的首席科學家陳榕在美國微軟工作多年,回來做作業系統,動手之前先把研發工具和研發模式學習微軟的樣子搭建起來。我想凡是在微軟做過研發、理解了這套研發模式的開發人員,如果離開微軟繼續做開發的話,一定會做一個類似的 Bug管理工具,有意思的是,我們和科泰世紀都用 PHP+MySQL來開發Bug管理系統、用CVS來管理原始碼,但不同的是他們把 Bug管理工具當作軟體來賣,我們免費並開放原始碼了。

在2002年10月底C++泰斗Bjarne Stroustrup 來北京訪問的那兩天,我跑到清華和北大聆聽大師的三次講座。北大的那一場就是陳榕做的翻譯,我當時還跟陳榕聊了一會,後來又通過幾封Email,逐步了解了他們公司,也閱讀了陳榕的ezCOM資料,很佩服他的技術思路,更佩服他做作業系統的勇氣,前兩天看報導說上海市政府給科泰2500萬元投資,而且他們的系統開始在國產3G系統試用,很看好科泰的前途,儘管產業化過程會充滿艱難。但一旦成功,將有巨大的社會意義和經濟收益。

BugFree最新版已到3.0.4,於2013/1/31日發布,有任何問題,請到官網或新浪微群反饋

相關詞條

相關搜尋

熱門詞條

聯絡我們