之前的 blog [鼯鼠與軟體專案開發] 帶著戲謔的口吻以闡述軟體專案開發所面臨的問題以及必要的技術素養。前幾天收到 [Purple] 的來信,提到她在公司中忙著趕專案進度,看描述的情況,讓我想起 [趨勢科技] 科技長 - 陳怡樺 (Eva Chen) 所撰寫的文章 [產品什麼時候要出貨 - 掙扎在 No problem 和 Impossible 之間的藝術] (作者名稱似乎筆誤?),我開始想像,個子嬌小的 [Purple] 該不會如文章裡面提到的 Mandy 一般「壓力大又不服輸,常躲到廁所去掉眼淚,哭完了再出來繼續奮鬥」呢?或許還不至於落淚,但是趕出貨的壓力,的確是考驗工程師能力的基本試驗,誠如文章所提及:
對我而言,當個軟體公司的研發主管,軟體產品的出貨日期訂定一直都是個大課題,雖然有各種較科學化的方法來幫助決定,但是,某個程度上,這件事又是藝術而不是科學,有點像股票市場的預測,有很多系統化的方法可用,可又沒有哪個是一定對的,因為,歸根結底,人是最重要的因素,功能書切中點,選對工程師,再加上足夠的管理加鼓勵,有時的確能把 "Impossible" 變成 "no problem" 呢!

回到 Free / Open Source Software (F/OSS) 發展,最近在閱讀 O'Reilly 的新書《Producing Open Source Software》,作者 Karl Fogel 有相當雄厚的版本控制系統的基礎,也貢獻 CVS、Subversion,以及 GNU Emacs 等主要 F/OSS 專案的發展,可自由下載的 [Chapter 4 : Social and Political Infrastructure] 從 "Forkability" 切入,這是 F/OSS 相當特別的發展模式,雖然開發不見得完全透明,但是在不違背原有授權方式的前提,建立 fork 是可能的且是正面的,作者提出的 "Benevolent Dictators"(BD) 與 "Consensus-Based Democracy" 兩個觀點可作為廣泛性 F/OSS 專案開發時程的描述,於是乎,我開始思考是否用「烏龜聖經圖」來描述其中的相似處呢?
一個極端的例子是 [WINE] 計畫,在訪談文章 [Wine will go beta next week] 提到終於要釋出 Beta 版本的 Wine,距離 Alpha 版本已經是 11 年的發展,這在軟體發展相當特別的,正如文中提及的「這項工作確實很困難,因為我們是在重複一個擁有數十億資產公司所做的工作;我們說Wine處於alpha是因為覺的仍有工作應該做,還可以讓它更好一些,但11年確實是長了些;我們即將發布0.9這並不是說Wine已經完美了,只是覺的它或許可以給用戶更好的體驗...」(翻譯來自 [軟件: 11年的alpha後,Wine 終於迎來了beta] 新聞),跟其他 F/OSS 一樣,[WINE] 計畫面臨的問題不只是技術挑戰,更有授權與潛在的衝擊。是此,儘管我們可以由 [WINE] 計畫的發展看到「烏龜聖經圖」的影響,今日,我們可以在配備有 nVIDIA 顯示卡的 Pentium-4 電腦中,安裝 nVIDIA 最佳化的驅動程式到 GNU/Linux 環境中,並透過 [WINE] 順暢執行若干款原本只能在 MS-Windows 作業系統才能運作的電動遊戲,這一切當然是 visionary user 率先推動,參考諸多 power user 的意見,逐漸穩定且達到預期的水準後,推廣至 practical user,甚至撼動那些 conservative user 的看法,但是這一切卻是如此的漫長...
[jserv's homepage] 羅列一部分我所參與的 F/OSS 計畫 (TODO: 該更新內文了),恰好我在這些計畫扮演著不同的角色,有時是 Project Manager、有時是 Developer、有時候是 QA Manager,而有時只是個 Contributor,這些過程對我的影響頗大,「何時該釋出版本」一直是有其他開發者或使用者會來信問及的議題,但過去我並未仔細思索,閱讀 [趨勢科技] 兩篇文章後,給我頗多啟發,或許可試圖建立一系列的系統性分析與參考。
由 jserv 發表於 October 24, 2005 09:25 PM