Next Previous Contents

3. 擁有使用者的重要 (The Importance of Having Users)

我繼承了 popclient, 更重要的是我也繼承了它的使用者. 擁有使用者是很棒 的一件事, 並不是因為這展現出你在解決他們的問題, 或是你在做好事. 而是 好好地培養使用者, 他們可以變成協同發展者.

UNIX 的傳統中有一種力量, 那就是許多使用者同時也是程式高手, Linux 促使這 變成一件非常愉快的事. 這是因為原始碼是公開的, 所以使用者可以變成有影響力 的高手, 這對縮短除錯的時間實在太有助益了. 只要你給一點掌聲, 使用者們會 幫你診斷問題, 建議需修正的地方, 以及改進程式碼, 這比你自己一個人包下 全部的事要快得許多.

[格言 6] 把你的使用者視為協同發展人, 可以讓你傷最少的腦筋, 但做到原始碼的快速改善, 程式的除錯有績效.

6. Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.

這種效應所造成的影響力很容易就被低估, 事實上, 開放性原始碼世界的 所有人, 幾乎都嚴重低估了因使用者增多而產生用以對抗系統複雜度的力量, 直到 Linus Torvalds 明白地揭露了這一點.

其實我認為 Linus 在技術上最聰明和最重大的貢獻並不在於寫出 Linux 的核 心程式, 而在於發明 Linux 的發展模式. 在一次和他的會面中, 我提出了這點 見解, 他微笑著, 並重複他常說的一句話: ``基本上我是一個非常懶的人, 因其 他人在 Linux 上真正的努力, 而感到與有榮焉.'' 懶惰就像狐狸一樣地精明, 或者就如同 Rober Heinlein 曾說: ``因為太懶所以成功了.''

回顧過去的例子, 在 GNU Emacs 的 Lisp 程式庫及其 Lisp 程式碼的資源庫中 , 我們可以看到 Linux 模式所用的方法和所得的成功. 相對於 Emacs 中用 C 語言寫的核心部分及自由軟體基金會其他的工具 (這都是以建造教堂的模式發 展), Emacs Lisp 程式碼的資源庫非常地使用者導向並且更新很快, 好的點子 和原型在最後成熟穩定前常常都已重寫過三或四次, 藉由網際網路而來的非緊 密合作進行得很頻繁, 就像 Linux 一樣.

我在還沒寫作 fetchmail 前, 最成功的傑作大概要算是 Emacs 的 VC 功能了, 這項專案進行時, 我用像 Linux 一樣的合作模式, 用 email 和其他三位作者 互相聯繫, 到今天為止, 我只見過其中一位 (他就是 Richard Stallman, Emacs 的作者以及自由軟體基金會 http://www.fsf.org 的創辦人). Emacs 的 VC 功能是作為 SCCS, RCS 及後來的 CVS 的前端處理, 提供版本控制功能 ``按一下'' 的操作法, 這是由某位仁兄撰寫的小而有力的 sccs.el 功能 改良而來, VC 功能的發展相當成功, 這是因為 Emacs 用的 Lisp 程式可以 快速地經歷 ``發表 -- 測試 -- 改良'', 而不像 Emacs 本身核心的發展 那樣緩慢.


Next Previous Contents