2010/01/26

十年磨一劍~採用開放原始碼解決方案

這是一個比較「硬」的主題,在說明專案之前,先來點觀念。

以上連結做了不錯的闡釋,程式碼開放並讓一般大眾可以自由使用的軟體,一般被稱之為開放原始碼軟體自由軟體
我理解自由軟體基金會 FSF (Free Software Foundation)那群人背後的夢想,只是 Richard Stallman 等人就是不懂這其實會扼殺創作。
(如、自由軟體之父:軟體專利有害無益)

有關專利智慧財產權(說穿了就是產權制度)最大的誤解,就是認為會妨害進步!其實不然。
在一個不懂得尊重產權制度的社會裡,創作不會獲得保障,於是創作者的動機會下降(或從事對其更有利的行為),對大眾的整體利益反而是傷害。


以軟體而言,你也許會說:不正有一群自由軟體鬥士提供大家一堆自由軟體嗎?
任何事都有成本的,你可以觀察:OpenOffice.org 是Sun在背後支持的、Apache也有個基金會......
當一個大型開放原始碼專案背後沒有強而有力的組織(Sun、IBM...)在背後運作,它可能說中斷就中斷
(剩下很多beta版,反正大爺又沒拿你的$!老子不玩了!)
如果它是一個程式元件,那表示功能僅只於此;如果它是一個軟體,那表示沒有新功能 or 後續 bug free版本的出現
套裝軟體公司的產品比較可能提供免費更新等後續服務(如、Windows Update)、在推出新版本以後向下相容以確保客戶過去的工作成果
使用哪種方式來解決手邊的問題視使用者的選擇,在不同的事情上有不同的考量。

再舉個例子,當以上的命題套用在藥廠對於研發新藥計畫的投資案時,我們可以更明顯地看出來
一項新藥從研發、人體測試到正式上市需要耗費多少時間和金錢;對任何藥廠而言與其說是投資,不如說是賭注
當好不容易成功了,但配方卻必須公諸於世...研發新藥無利可圖,還有人要投資嗎?(這藥廠自己不研發,它的對手也不研發)。

儘管我也提供免費軟體供網友使用,不過我以務實的角度看待開放原始碼。(軟件放送---TWD67/97坐標轉換器(含台電坐標))


就我從學生時期接觸開放原始碼到現在所知,使用開放原始碼最優秀的單位就是學校(尤其是 國中、小)
因為經費有限,(被迫幹)資訊組的老師只好自己架起 Linux 來作 Web、Mail伺服器、班級網頁、小朋友資訊課的作品...
甚至自行程式設計出校務行政所需要的模組~這不是在開玩笑!非資訊科班出身的老師們擁有非凡的工作成果
以下可以清楚看見建置(再建置)於開放原始碼上的成功案例:

SFS3學務系統:使用PHP語言開發的早期學務系統,目前很多學校都升級使用「X學務系統」了

X學務系統:使用PHP語言開發,並遵循 XOOPS (1種內容管理系統)的模組規格設計各個校務行政模組
X 學務系統 是一個 XOOPS2 的模組,利用它您可以在XOOPS2上建構一個完整的學務管理系統。 XOOPS2 是一套好用穩定的架站系統,許多學校會以 XOOPS2 來架設學校網站,而此模組將可與學校網站做緊密的結合。 X 學務系統的最終目的就是要讓國中小學可以產生符合教育部標準的學生資料交換檔,以便和其他的學務系統進行交換。因此,它只有一個基本的核心模組,若您需要 其它的功能,例如:編班功能、行事曆、公告欄、家庭聯絡簿、電子相簿...等,您除了可以直接安裝 XOOPS2 眾多的模組外,也可以安裝專為X學務系統量身訂做的擴充模組來強化各種功能!

XOOPS正體中文延伸計畫:台灣XOOPS主站,目前主要由台南縣教網中心Tad老師主持

XOOPS Official Site:XOOPS官方網站
XOOPS is a web application platform written in PHP for the MySQL database. Its object orientation makes it an ideal tool for developing small or large community websites, intra company and corporate portals, weblogs and much more.

以下為XOOPS官方網站出現關於台灣的新聞
(台灣之光ㄟ~就說我生平最尊敬的就是老師了 XD)

1、Tad本身撰寫不少好用的XOOPS模組及X學務系統,因而獲得XOOPS Innovation Award

2、CK2 - XOOPS Club in Taiwan:介紹Tad和志同道合的朋友(老師佔大宗)組成的「點2下資訊社」

3、點2下資訊社獲得「XOOPSers of the Month」

人偶爾會滿腔熱心,會覺得:乾脆找間學校幹事,基層學校也許是公家機關裡面最不官僚的。


資訊人大多注重技術,較少著墨於策略性思考(or 經濟分析)
說實的,我對公家機關一味的辦理資訊軟體外包有點感冒
尤其是當委外廠商使用了第三方套裝軟體來加工做客製化的時候
這通常表示該廠商沒有掌握完全的技術,最保守的估計是「只有完成本案的能力」...在後續功能擴充上有力有未逮的可能
為了避免先期投資付諸流水,使用的第三方套裝軟體最好要有一定的市占率,以確保市場上具有夠多的廠商可以承接
不過還要考慮另一個因素:該商用套裝軟體是否使用Client數計價?
如果是個先期計畫,只要考慮到將來大規模展辦或全國性推廣所需的龐大經費,幾乎就可以確定此路不通
茍如此,該年度的預算執行怎麼辦勒?無解,可見這也是空話一場。

這次我想趁機扭轉:資訊單位只會燒錢 or 辦採購就可以 的觀念
不過說穿了,花1、2百萬能解決的事情在公家機關(尤其是中央單位)來講只是小事
所以採用開發源始碼解決方案決不只是為了省錢,重點是提供一個實際決策的過程
不放棄選擇的權利,這不是零和的選擇~騎牆派可以才左右逢源。


使用開放原始碼比較便宜,但成本絕對不會是 0
從金額來看也許是,因為所支的薪水是固定的(公家機關對公務員有吃到飽的定型化契約),最多添點加班費
不過這有個前提:事情永遠得靠人的2隻手才能完成,差別在於花的力氣是自己的還是別人的?當你需要廠商幫你導入系統的時候就會有花費
(不然人家吃什麼?元寶蠟燭嗎? 「服務」是Richard Stallman等人所堅守的獲利方式之一)
所以堪稱是21世紀最貴的東西;
成本--知識養成時間 在自己身上,反正也已習慣 找問題-->翻書、查資料-->實做 的套路,應該能壓低成本~

當初指導教授總愛說:「研究生總是在做完研究以後才知道怎麼作研究
套用在本案一語成讖啊!


說這麼多,也許你還是不清楚這篇在做什麼?其實就是把預計向廠商採購的套裝軟體,改為自行整合幾個開放原始碼解決方案。這段過程中我以承辦人員角度陳述專案發生背景和客觀因素;在發現問題之後,分析問題並決定採取何種解決方案來完成提案。最後再以專題研究較為寬廣的角度,不限於單位出發,思考資訊人如何解決資訊需求,在這個專案上採用開放原始碼解決方案(說不定他案會是自行開發),學生時代玩的東西,結果真的派上用場了。



ps2.參考文件
1、選擇~在OS、Software、IDE之間:這篇文章可能是我個人在「開放原始碼」議題上著力最深之作;不過時間點移至今日,裡頭的論述有一點需要修正(我不是神算)

1、新版Windows API出現,但舊版的只有少部份被停用,大部分還是有支援
2、當時.NET的版本是1.0,架構並不完整,所以小弟做出那玩意兒長不大的判斷
但是在 2.0以後突發猛進,今天在程式開發領域已經囊獲夠多的開發人員站穩腳步了(包括我自己)


2、Linux與我到今天:這篇是我接觸 Linux 的開端、遊戲過程和感想