Michael Doran 介紹圖書館自由軟體開發

Michael Doran 介紹圖書館自由軟體開發

Michael Doran 是位優秀的系統館員,在 University of Texas at Arlington 服務。他在網頁裏面秀了兩套自由軟體,一是 The New Books List另一套是 ShelfLister,有提供展示與試用,感覺起來還不錯,在 2005 年的時候些了一份簡報,說明整個開發的情形。

這份投影片主要在描述自由軟體的開發,讓我驚奇的是我所知到的館員大多忙得不可開交,圖書館業務之繁忙大概也只有同道中人才能略知一二,而這位 Doran 先生身為系統館員,應該也是有相當多的業務,因而十分好奇這份投影片的內容。

披頭就講到了整個典型的開發過程:

> - Your library had a need - You wrote some software - You think the software would be useful to other libraries, so you decide to make it available as free software - You slap on a GNU General Public License (or maybe no license at all) and put the source code up on the web

其中第三、四點就是自由軟體的特色,自由軟體允許使用者使用、修改、複製、散佈,這樣的好處應該是軟體的開發是集大眾之智慧而形成。好玩的是,我不需要一個人做到十全十美,我只要把我所作的貢獻出來,不論是否有缺陷,到最後它會成功的,Linux 與維基百科 就是證據。

接者又介紹了成功的要素

> * Fills a niche

  • Easy to use (the end user perspective)
  • Easy to install and modify (the sysadmin/programmer perspective)
  • Documentation
  • Marketing
  • Support
  • Enhancements/upgrades

作者說前3點大概是必備的要素,如做不到大概就不太容易成功;而後4點則是選擇性的要素。一般軟體大概是這樣沒錯,但個人以為自由軟體的 Documentation 則更為重要;自由軟體是可被大眾使用與修改的,容易使用與修改的最後防線就是文件。理想的狀態軟體好用就不太需要使用文件,軟體的開發設計的夠彈性也不太需要技術文件就可以上手;但是一般剛拿到自由軟體大概有8成會需要自己做客制化,除了單純使用之外還需要進一步修改成自己要的模式,故而文件就會非常重要!

接下來則是更仔細的介紹了如何實現這些成功的要素,其中介紹到了 "Modularize" 對 "Easy to install and modify" 的幫助,非常心有悽悽焉。以前自己寫程式都是一隻程式從頭寫到尾,一開始很熟悉所以容易管理,容易客制或是修正,沒想到時間一久自己寫的程式碼卻變得陌生,需要花好多時間看不相干的東西;之後幫忙開發一些程式,慢慢發現到將程式開發成 Library(元件) 或是 Modularize 的好處,最主要就是減少 "trace code" 的時間與精力,容易做修正而不影響到前後流程,這真的是非常重要且有幫助。另外如果將程式開發成 Library 會更有貢獻,當程式進化到了 library, module 等可以被大家重複使用的模式意味著當我需要使用某些功能,是我所知某些程式已經有的部份,而我只需要進行呼叫即可,不需要寫重複的程式碼,library 讓大家站在巨人的肩膀上繼續開發,這隻程式就成功了。

還有其中列舉了應該要寫的 "Documentation" 他列出的有:

> * Included with the software

  • installation instructions
  • “changes” file (versions)
  • README’s (if needed)
  • Web site
  • “about” the software
  • downloads
  • FAQ
  • demo (functional vs. static)
  • user list

看完真是令我感到羞愧,雖然我深知其重要性,但相較之下自己寫的文件還是太少了,應該要好好改進。 一般 software 我大概只寫了 Installation, REAMDE's, 還有 function 的作用或是一些呼叫的方式等,我很少寫changes。

網站程式更是讓我抬不起頭阿,通常只寫了 download, about,卻從沒寫FAQ, demo, user list等。

在 Marketing 部份,他列舉了:

> * Web site

  • Mailing lists (as appropriate)
  • oss4lib/perl4lib/code4lib/ILS list/etc.don’t get gabby, reference web site
  • PR – e.g. vendor “Success Story”
  • Conference presentations
  • Magazine/journal articles

看來不是一件容易的事情,前3點大概只要努力肯做就一定做的出來,但是最後兩點我覺得難度比較高。基本上軟體沒有一定的成熟度、貢獻、特色,沒有好的故事、應用的實例、真正滿足需求的事實,很難在好的 Conferencepresentation 或是發表在雜誌或是期刊。

Support部份:

> * Basic installation/configuration help

  • Temper expectations
  • Use support as a feedback mechanism to enhance documentation:
  • add to FAQ
  • modify installation instructions
  • etc. (e.g. dope.sh)

Support部份看來簡單,但是當user一多,問題跟著就多了,這時候光是回答、製作 FAQ 大概就心力交瘁摟。

最後是 Enhancements/upgrades :

> * Bug fixes

  • Compatibility upgrades
  • changes in ILS search syntax
  • MARC8 to Unicode conversion (in ILS)
  • New features
  • primary focus should be your library
  • Porting to other platforms
  • Internationalization
  • multilingual user interface

前3點這部份大概都容易做到,會寫程式的人總是會不斷修正自己的程式碼,開發更多好用的功能,不斷升級與維護,直到某種層次的穩定或是滿足。最後兩點真的是高難度,支援不同的作業系統有時候是卡在系統底層或是資源的限制,因此並不是這麼容易。多國語言的介面有許多工具可以利用且再技術上已經成熟,只是惟一缺乏的是翻譯人員。

看完以上這些東西,想想 Wordpress, VLC 成功不是沒道理!那我們開發的程式呢?其實 DRBL 算是成功的自由軟體,剛剛所描述到的項目幾乎都有了。

除了以下,我猜 DRBL 需要的東西大概會有:

  • 要更加 Easy to install and modify
  • 要更多 Documentation
  • demo (functional vs. static)
  • Porting to other platforms
  • multilingual user interface

即使 DRBL 已經很容易安裝,但是常受限於 bash 安裝介面無法更直覺與簡化。網站上已經有很多文件與資訊但是如何更容易讀、更多的圖片說明、更豐富的教學文件是有需要的,真的需要出書了。DRBL 很難 demo 出實際的效果,他擁有無限的可能。 跨平台的部份因為一開始就沒有,後續要接上也很難了,但 unix 系列還是有機會。目前已經有支援中英文但可能還需要更多,還需要人幫忙翻譯吧!

看完整篇投影片最重要的心得就是開發自由軟體不只是寫程式和文件,還有許多事情像是回答使用者問題、製作 FAQ (這是參考館員再做的吧!)、行銷、投稿等更多不是 Coding 的事情要處理,事情真的是多到做不完且超乎想像阿。Doran 真是不得了,能夠在圖書館業務者麼多的情況之下從 2002-2005 年之間持續不斷的開發軟體,Coding, Support, Marketing 都做到了。所以,請大家多多贊助與支持自由軟體的開發者吧

convert from Thomas blog post id 119 old convert log: ./225728/tag%3E2007%2006%20librarian)

@2007 @06 @librarian

Comments