2010年3月15日 星期一

為何採用開源碼軟體(Why Use OSS?)

最近又消失了好一陣子,不是已經倒站了,只是因為最近太多事情纏身走不開(這麼說以前可以寫的原因是?愈描愈黑...),好!言歸正傳,最近主要在忙的一件事,就是在試用開源碼軟體(Open Source Software:OSS),或許很多人都用過開源碼的軟體,例:OpenOffice.org、FileZilla或一堆Linux內可以看到、用到的軟體都是(有興趣的可以到SourceForge看看),但是,如果是要用在商業環境裡的大型軟體,那又是另一種層次的考驗。

為什麼這麼說呢?因為一般人都是用OSS來做為某些特定目的使用,幾乎都是單一功能,或是在一個流程中的一部分使用,如果整個流程都在OSS的環境中建構,那就不是你會不會使用的問題,就得面對更多的問題,例:能夠符合公司需求?是否便於客制化使用介面能否讓操作人員接受?...隨便列都可以列個十點、八點可能會面對的阻礙,那為什麼我們還要嘗試,採用OSS這種可能會拿石頭砸腳的大型軟體,在商業環境裡使用呢?

或許有人會想說,既然要付出這麼大的代價,為什麼不直接請廠商協助導入就好?為什麼要花費這麼大的心力自己搞,甚至還會賠上老闆對自己的信任(如果有這種東西的話?),說穿了!站在商業的考量來說,老闆一定會覺得「成本」高於其它因素,就算請廠商導入,除了「高額」的服務導入費之外,究竟要用多少時間、人力成本才可以跑完全程,就算再有經驗的人,也很難說得準!

因為這種案子,最大的阻力是「」,或者說除非你完全客制一套系統,按照舊有的流程來製作,不然光是老員工的反彈聲浪就夠你瞧的,除此之外,如果完全都按照舊的方式來進行,那還有導入新流程的必要嗎?值得花費這麼大的心力去增加自己在公司裡「黑」的程度嗎?不管怎麼看,好像都很不值得...

但是,如果老闆真的有心要在內部推動OSS的大型軟體,對於IT部門(人)來說,就是一項極大的挑戰,除了得先瞭解要採用的OSS具備那些特質,接著就是建構操作環境(很多OSS都有懶人包可以先安裝在Windows的架構中測試,若是值得深入研究,就可以把它搬到較穩定的平台上來進行),所以在初期,可能就得要花費大量的時間去尋找、建構、測試、再尋找、再建構...,直到找到一個值得深入探究的OSS之後,才能進行到下一個階段。

雖然可以用時間換取功能,以精力換取熟悉程度,但是在嘗試的過程中,還是有很多門檻不是想要跨就能夠跨的過去,我想這應該也是OSS為什麼無法快速且大量導入商業流程中的主因(當然還有管理者、使用者不想背黑鍋的特殊因素),甚至坊間也有些機構專門在做導入OSS的生意,代表它一定有其不可告人之處,至少在我所接觸到OSS中,這的確會成為我的阻礙之一,但是站在某個角度來說,這也怪不得它們,畢竟它們並沒有「義務」要達到什麼樣的程度。

一‧操作流程不夠人性:

有時OSS做的操作流程,很明顯就是「程式設計師」所為,所以有一些看似合理,實則難以理解的流程,或許是一般人的悟性不夠高,有時我在試用時,也得摸索好幾次才能瞭解大約七、八成的用法,更別提其它更為高深的使用方式,光是一般的流程,可能就得「瞎忙」個好一陣子。

二‧說明文件太過精簡:

這一點老實說不能夠怪OSS,畢竟它背後並沒有太大的「財力」支撐,甚至很多OSS的計畫,都還是各路高手集思廣益後的結晶,但是在文件撰寫上,很難達到完善的程度,有的雖然有導入WIKI的文件系統,但是很多文件還是屬於開發者層次看的東西,對於使用者來說,可能還不夠親民。

三‧內建功能不夠靈活:

在這種大型的開源碼軟體裡,包含著許多的功能選單,從最基本的設定、一般的應用、參數的調整,甚至是自己行加上程式來補強...等,或許這些有機會取代商業套裝軟體的OSS,最大的致命傷就在這,因為經常會遇到某些功能似乎只做一半(或是使用者跟不上開發者的思維),不然就是需要透過自行添加程式的方式來改良。

或許,這也是商用軟體為何能夠讓人信服的主因,畢竟他們有義務(收費)且聽見更多使用者的心(譙)聲後,當然會有更貼近使用者的功能。

雖然上述三點看來都像是開源碼軟體的缺點,但是商用套裝軟體就沒有這些問題嗎?其實也不盡然,不然就是某些軟體要付出的價格、代價,會讓公司怯步(或是經過考量後而無法認同),這時候身為公司的IT人員,似乎也只能把這些困難,視為自己的課題來嘗試突破,不過在嘗試這種軟體之前,最好內部能有熟悉這套OSS開發程式的人,如此一來應該能夠事半功倍,至少有了他們的協助,也比較能夠貼近開發者的邏輯,畢竟每個人總是會有自己所專精的領域。

其實,以台灣這個中、小企業居多,但是經銷、代理又如此充斥的軟體環境中,也許開源碼軟體能夠為企業主開出一條不一樣的路,但是這也不是沒有副作用(受少數人左右、安全性的考量、與其他系統的整合性不高...等),不然也不會有點財力的公司,寧可自行開發也不願假手他人,或是寧願每年花大筆的鈔票,請人導入、維護極具盛名的商業套裝軟體。

所以IT人在為公司盡份心力之前,最好也能夠先弄清楚公司的需求,以及主事者的心態,以免惹得一身腥,或者是自行測試到具備一定的成熟度之後,再付諸實現,至少受到跟「人」有關的阻礙也會少一點,這也是我們這種身份的人得要背負的宿命之一,不是嗎?一起加油吧!!