October 24, 2005

何時該釋出版本

之前的 blog [鼯鼠與軟體專案開發] 帶著戲謔的口吻以闡述軟體專案開發所面臨的問題以及必要的技術素養。前幾天收到 [Purple] 的來信,提到她在公司中忙著趕專案進度,看描述的情況,讓我想起 [趨勢科技] 科技長 - 陳怡樺 (Eva Chen) 所撰寫的文章 [產品什麼時候要出貨 - 掙扎在 No problem 和 Impossible 之間的藝術] (作者名稱似乎筆誤?),我開始想像,個子嬌小的 [Purple] 該不會如文章裡面提到的 Mandy 一般「壓力大又不服輸,常躲到廁所去掉眼淚,哭完了再出來繼續奮鬥」呢?或許還不至於落淚,但是趕出貨的壓力,的確是考驗工程師能力的基本試驗,誠如文章所提及:


    軟體工程師們都說:「沒有經歷過出貨壓力,不算真工程師。」

回到正題,陳怡樺帶領傑出的 PC-cillin 團隊締造出許多亮麗的成績,而團隊中各個崗位該如何扮演適當的角色呢?文章提到:

    產品經理將這些功能需求依重要性排定後,開發經理再依每樣功能將程式切割成合理的模組,分派各有專長的工程師負責各模組,各個模組要分得不大不小,互相聯繫組合又可獨立開發,而且最重要的模組要先完成,訂定每個開發過程中的重要檢驗點(checkpoint),以便追蹤進度,及早發現可能導致延後的問題,這些就是開發經理的功力所在了。

    對我而言,當個軟體公司的研發主管,軟體產品的出貨日期訂定一直都是個大課題,雖然有各種較科學化的方法來幫助決定,但是,某個程度上,這件事又是藝術而不是科學,有點像股票市場的預測,有很多系統化的方法可用,可又沒有哪個是一定對的,因為,歸根結底,人是最重要的因素,功能書切中點,選對工程師,再加上足夠的管理加鼓勵,有時的確能把 "Impossible" 變成 "no problem" 呢!


另外,由 [趨勢科技] 出版的《e趨勢季刊》,也有一篇值得參考的文章 [談成功的產品規劃]。這篇文章提到 Geoffrey A. Moore 所撰寫的《Cross the Chasm》一書已成為高科技公司必讀的開發聖經,陳怡樺亦大力推薦有志從事高科技產業的人閱讀這本書,她笑著說:

    「我們都笑稱這個外型很像烏龜的技術採用生命週期圖為『烏龜聖經圖』:

    不過,玩笑話歸玩笑話,這個圖看起來雖然簡單,但真的很受用。我常告訴我們的產品經理,開發產品時絕對不能忘記『烏龜聖經圖』,隨時要好好地想一遍。」

我們可以很清楚看到產品生命周期的各級使用者的分佈:有遠見的使用者 (visionary user) 率先採用,而後扮演意見領袖的影響力使用者 (power user) 採用,逐漸影響務實的消費大眾 (practical user),最後,產品進入成熟期,連不懂科技的保守使用者 (conservative user) 都能使用。

回到 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
迴響
發表迴響









記住我的資訊?