LadyBugz

最近忙翻了,想要寫的東西積壓了好幾篇,不過首先來老王賣瓜一番-我們不久前,做了一套自產自銷而且自己也在天天服用的 Mac OS X 商業軟體,叫做 LadyBugz

LadyBugz

用最簡單的話來說,這是一套用來方便瀏覽、整理、回應 FogBugz 系統的桌面工具;FogBugz 是一個網頁服務,不過,就像雖然你也可以用瀏覽器連上 Web Mail 收發信件,你還是會想要裝一套 Outlook、ThunerBird 或是像 Mac OS X 內建的 Mail.app 收發信件,Twitter 是一套網頁服務,你還是會想要在 iPhone 上面裝一套 Tweetie(現在叫做 Twitter for iPhone 了)或是 Twitterrific,而 LadyBugz 呢,就是一套讓 FogBugz 更好用的工具。

那-FogBugz 是什麼?大概就來個,嗯,說故事行銷。

※ 問題追蹤系統

這年頭,在開發軟體的過程中,有很多好用的工具可以使用-與其說是好用,倒不如說是,如果你不用,你的專案就很容易遇到大麻煩。

其一,是版本管理(Version Control)系統。每對程式碼做了一定的修改,這套系統就將前後兩個版本的差異儲存起來,變成記錄,如此一來,一方面可以透過記錄了解開發進度,尤其是在同時分成好幾個支線開發時(像 1.0 還在做出貨前的 bug fix,但是另一方面已經在寫 2.0 的新功能),知道每個支線到了哪個進度;再者,如果你某段程式寫壞了,可以讓你輕鬆回復到之前正常的版本,也可以輕鬆處理有兩個人以上同時修改了某一段程式碼,應該以怎樣的程式為準的問題。

大概在五六年前開始流行Subversion (svn)這套系統,到了大概 2008 年前後,則許多專案都改用 Git 或是 Mercurial(hg)。以我們公司的狀況,在選擇版本管理系統的時候不用想太多,Git 絕對是首選;因為我們目前的工作是以 iPhone 與 Mac OS X 平台為主,雖然 Git 與 Mercurial 的觀念與操作指令差不多,但是 Mac 平台的開發者普遍使用 Git ,尤其是在 GitHub 網站上,有許多好用的公開 library-例如像 Three20 這套 Facebook 所提供的 iPhone 介面 library-加上 Git 的 submodule 指令,便可以靈活地加入其他 library。而且 Git 與 Mercurial 相較,在 Mac OS X 上,速度的確快上許多。

再來,就是所謂的問題追蹤(Issue Tracker 或 Bug Tracker)系統。寫程式的過程中,一定會遇到許多問題,像是一個按鈕按下去應該要有反應,卻什麼反應都沒有,甚至直接當機,這個時候,就得要找個地方,把這些問題記錄下來,然後逐一解決。而問題的回報與處理進度這些事情還頂複雜,不太可能拿一張活頁紙記下來就能搞定-在發現問題的過程中,可能是你自己就發現問題,或是測試人員回報有問題,或是出貨之後使用者寫信回報有問題;之後,你需要知道目前誰該負責處理這個問題,已經修好了與否,是在哪個版本裡頭修好的,修好之後還要有人負責確認,而如果是客戶寫信反應的問題,還要再寫信回應…。

如此一來,會需要一套系統。這樣的系統非常多,有免費的、有付費的,有自由軟體,也有商業軟體,而我們傷了好幾個月的腦筋,挑選合用的系統。陸陸續續嘗試了幾家不同的系統,有 python 寫的、有 php 寫的,用起來都十分痛苦,原本希望可以拿問題追蹤系統掌握進度增進工作效率,但最早嘗試的系統,往往用一用,卻發現反而更沒效率,甚至系統就荒廢在那邊好一陣子。問題出在第一關-怎樣把問題輸入到系統當中;表單輸入實在太花時間了。

幾乎在所有的系統中,要新增一筆問題回報,都是透過一個網頁表單輸入,表單內容也大致相同,都有標題、內文(詳細描述與重現步驟)、問題出現在哪個版本、哪個分類、解決問題的優先程度、預估完成時間等等。當你看到這麼一個表單,就不禁有種感覺-這樣的系統似乎是開發人員要求別人填寫,而不是方便自己記錄問題。

整個表單設計得密密麻麻鉅細靡遺,像是希望測試人員或使用者遇到問題時,花個大概半小時到一小時寫一篇完整的作文,告訴你問題在哪裡,而不要只是寫個兩三句沒頭沒腦的話,就希望你解決,讓你還要在收到問題之後,再回信花唇舌功夫,了解問題到底出在哪裡。如果是在大型團隊中,擁有專職的測試人員,寫詳細的報告就是測試人員的工作,這樣的系統行得通;或,在自由軟體專案中,使用者希望無償的開發者服務,也應該付出一定的心力回報問題,也行得通。

但我們卻是另一種狀況。

※ 我們怎麼選擇問題追蹤系統

我們公司成員只有兩個人,有一些簡單的產品,像是在 AppStore 上面銷售一套記帳軟體 TapExpenese,也為其他公司負責軟體開發。

在密集開發的時候,當你一邊寫程式,一邊要記錄自己發現的問題與代辦事項時,你希望的是只花幾秒鐘就能記下一筆問題,可是系統給你的卻是密密麻麻的表單。

而在開發客戶專案的時候,你一邊將問題記錄到自己的系統中,而客戶的測試人員,則是將問題記錄在客戶公司的問題追蹤系統裡,於是,你需要不斷比對兩邊系統中的記錄,而客戶不只一家時,更會在好幾個系統間不斷切換。有些客戶允許你進入內部的系統,而有些客戶,則是因為安全性等理由,是客戶的專案經理把內部系統中的問題,再整理成一封封的電子郵件寄給你,如果想將資料統整到自己的問題追蹤系統,就得要一邊密集寫程式,一邊定時花時間做點剪貼功夫,把一封密密麻麻的電子郵件,一行一行剪貼到網頁表單的欄位裡頭。同時,我們產品的使用者,也大多透過電子郵件反應問題。

於是,我們需要的不是在填寫的時候交代所有細節,而是可以快速紀錄問題。又陸陸續續嘗試好幾套系統,最後,我們決定使用 FogBugz。

FogBugz 是 Fog Creek 的服務,就是「約耳談軟體」的 Joel Spolsky 的那家公司。話說四月時台灣有出版社發行了《約耳趣談軟體》的中文譯本,書中也經常提到 FogBugz。FogBugz 解決了前述的問題:

首先是輸入介面的改善,在 FogBugz 的首頁中,當你要新增一筆問題記錄,你可以選擇完整的表單,也可以選擇另一種快速輸入介面-只出現標題的欄位,輸入內容,按下 Enter,就新增完成,而網頁繼續停留在同一個畫面,你馬上可以輸入下一個問題。網頁介面可提供批次修改,於是你可以一次選好很多個項目,一次把工作指定成某個分類,或是分派給誰。

另外一個主要的特色是,FogBugz 整合了電子郵件信箱,當客戶寫了一封信,寄到了某個特定的信箱後,可以自動匯入 FogBugz 系統中,無論是自己輸入的問題、客戶的來信,在系統中都當做是一筆個案(case);同時回覆給客戶一個網址,客戶連到這個網址後,就可以看到回報的內容目前進度如何;當你完成這個個案後,也便可以快速回覆客戶。於是,你也就省去了將來信手動輸入到問題追蹤系統的工夫。

FogBugz 另一個好處是,在一個個案下,還可以繼續添加子個案(subcase),所以,許多之間具有相關性或相依性的個案,便可以從個別、零碎的片段,整理成一個清楚地整體。

FogBugz 是一套商業服務,可以選擇自行架設,或是直接使用 FogBugz 網站上的服務,如果是學生或兩人以下創業團隊,則不收取任何費用,這樣的收費、不用自己管理 server ,又能節省時間,對於我們這種只有兩個人的公司,頗具吸引。FogBugz 現在又添加一項叫做 kiln 的新服務,簡單來說,就是一套整合了 code review 的 Mercurial 版本管理系統服務,Fog Creek 提供了一整套軟體公司所需要的套裝工具。

不過,還是有個問題。- Web 介面總是有些地方不好用。

※ 還是不夠好用,所以應該可以更好用

以我自己的使用習慣來說,我會用 Web Mail 查看信件,但是如果是寫信或回覆信件,就得要開啟桌面軟體;使用習慣往往是沒有什麼道理的,當你習慣了文書處理軟體或是桌面郵件軟體中,可以再同一個視窗中,用較大的畫面寫作,你就沒有辦法習慣在網頁中寫作,或是在情緒上,你沒有辦法認為在瀏覽器當中開個網頁,算是一個寫作的環境,讓你進入寫作的心理狀態。當你已經習慣了桌面軟體的介面-尤其是 Mac 的介面-就不太能習慣其他的介面。

其次,就是在手上案子一多的時候,經常就會想要以不同的方式排序、整理問題,比方說,你會需要以問題的開始時間排序,知道有哪些新進的案子,或是用完成時間,找出最近完成了哪些工作,或是用優先權排序,確認手上的事情完成後,接下來應該再做哪一件工作。雖然你也可以在網頁上面,用不同的條件排序,但是每更改一次設定,瀏覽器就要花上一定的時間,重新載入網頁-應該要更有效率一些。

同時,在網頁中,一次只會顯示某個個案的內容,但有時候會想要同時看兩個個案,雖然也可以在瀏覽器當中開多個視窗或分頁,但總是有些麻煩。

在瀏覽案子之外,在編輯、處理案子時,似乎也可以更有效率一些。在網頁介面上,要分派、結案、回信,都是在統一的表單介面中處理,用一用就會希望可以透過 Drag and Drop 操作-當收到一封信之後,第一步是將這封信件變成的個案,分配到所屬的專案中,或,如果一個版本推出,還有許多規劃中的新功能,打算移到下一個版本做,這時候如果可以像是在桌面郵件軟體那樣,在不同的收件夾當中搬移信件,不就好用許多嗎?如果在分派專案的時候,可以把某個案子的圖示,拖到另外一個人的頭像上就可以完成,也不是好用許多嗎?

雖然 FogBugz 解決了一定的問題,但是在輸入、瀏覽、編輯上,如果可以用桌面軟體操作,都應該可以更好用-實際上,如果現在我不打開 LadyBugz,我幾乎完全無法處理公司裡頭的這些事務。既然做桌面軟體可以讓服務變得更好用,而我們的工作就是做桌面軟體,是自己需要而且想要的軟體,那就-開幹。

過程中,幾乎把之前所有對於 Cocoa 的知識全都用上了,有空的話,把裡頭一些有趣的細節寫寫也不錯。最後做出來的東西,就是 LadyBugz。

※ LadyBugz

LadyBugz 的介面基本上像是 Mac OS X 當中的郵件軟體 Mail.app,以及 Xcode 的合體。在畫面的左方,是各種搜尋條件的列表,可以讓你選擇,是要看某個人所負責的個案列表、某個計畫中某個時程中的個案等,點下去之後,右方便以像是郵件軟體的方式展開,單點某個個案,也可以用個別的視窗,顯示個案內容。在撰寫郵件的時候,也可以像郵件軟體一樣,使用系統提供的通訊錄資料。

在畫面左上方的按鈕,則類似 Xcode 的介面-Xcode 用來快速切換 SDK,在 LadyBugz 中,則是另一種快速切換過濾條件的方式-可以只顯示還沒有完成的個案,或是顯示全部個案…等。

LadyBugz

我自己最喜歡的功能是,LadyBugz 可以提示你,有哪些個案在更新之後,你還沒有去讀這些更新資料,以及未讀個案的總數提示。如此一來,就可以很清楚知道有哪些新工作進來,以及有哪些你以為已經完成的工作,其實還有疏漏、需要繼續進行的地方。此外還做了許多自已想要的方便功能,例如,在網頁上面雖然可以直接瀏覽個案的圖片附件,但是許多文書檔案,特別是 Microsoft Office 文件,還是要下載打開,我們則透過 Mac OS X 內建的 QuickLook,可以直接在 LadyBugz 中,瀏覽這些附件。

LadyBugz 的系統需求為 Mac OS X 10.6 以上版本,售價美金 55 元,在網頁上提供的軟體下載,提供一個月的免費試用。您或許覺得不是很便宜的軟體,不過,以我們公司自產自銷自己吃的經驗,我們透過 LadyBugz,的確省下了不少人力,尤其是工作文件、流程確認、信件往來這方面的秘書工作。

我們現在甚至開會的時候,都不是打開文書或是其他的記事軟體,而是打開 LadyBugz,在會議中決定要做哪個功能、某個地方要做怎樣的修改,與其先用其他的記事工具,再送入問題追蹤系統,不如直接輸入進去。而除了軟體開發工作之外,許多公司運作時需要記下來的工作,也都透過 LadyBugz 進行、完成。

平常打開電腦之後,我們就會常常開著許多程式不關-你會開著 iChat 或 Adium 登入即時通訊系統,開著 Tweetie 看 Twitter 更新,開著 Mail 收信,開著 DropBox 同步與分享檔案,有時候也會開一個終端機擺著。而我現在呢,還會一直開著 LadyBugz。

2 thoughts on “LadyBugz

    • Hmm,以我們現在在 Mac OS X 用到的東西,如果想要在 Windows 上面出現,大概只能夠全部重寫。所以想要推出 Windows 版本,會有相當的困難。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.