看板 Soft_Job 關於我們 聯絡資訊
台灣軟體工作者面對ECFA的帶來的新挑戰 一、從軟體架構(framework)談起 剛開始寫軟體的時候,會有一段時間是在跟程式語法與程式庫用法奮鬥之間渡過,逐漸地熟 悉之後,慢慢發現不同的軟體在某些地方是很像的,例如,有連網的程式,就會有網路斷線 的例外處理,在那些程序中固定就是寫紀錄、警告使用者等工作,就像我們會把重複呼叫的 程式碼,寫成單獨呼叫函式(function)那般,這「一大塊固定的程序」可以構成單獨的模組 ,只要稍加變化就可以重複使用,於是我們逐漸瞭解了在特定用途的應用系統上,模組與架 構(framework)存在的基礎與意義。 譬如建立Web-based的應用程式,可以引用RoR, Django等架構,那些架構都有套版系統,能 夠產生風格一致又具有變化彈性的網頁。光是開發Web-based的應用程式,可能有超過一千 種,著重點不同或者適用於某一特定的用途的架構。有的強調與資料庫整合,有的強調後台 程式語言與前台的整合,像是台灣公司獲得美國數千萬美金創投投資的ZK,特色是直接用 Java開發Ajax程式,工程師不必管Javascript在每個作業系統、瀏覽器與版本上的差異,因 為那些繁瑣的問題,ZK會處理,而且會因應環境的變化而更新版本。其他像是用於開發遊戲 的架構,數量也非常龐大。 二、「對的架構帶你上天堂,不對的架構帶你住套房」 想入軟體工程師這一行的人,常常問「到底該學哪一種語言比較好」,這問題應該倒過來回 答,要看你想要開發那一類應用系統,在那個領域有什麼架構可套用,那個架構用什麼程式 語言,你就得學那種程式語言。反倒是「要用哪一個架構」這個問題比較難回答。套用架構 會讓專案進行突飛猛進,譬如有的架構說它10行程式就可以產生一個web-based應用程式, 但架構是否合適,需要時間來證明,對的架構越用越順手,不對的架構會越來越感覺到綁手 綁腳。你在自家大樓頂發現10公尺之外隔壁棟屋頂有一千塊美金鈔票一張,但你就是檢不到 ,因為中間隔著20層樓深的壕溝,除非你下到一樓重新爬上隔壁棟的屋頂。正妹的玉手就在 20公分之外,但你就是碰不到,因為中間隔著一到OA隔板,而且她是老闆的獨生女。所以, 這世界上的東西,就算是物理上彷彿垂手可得,也不能認為看得到的就能得到。有些公司的 總經理常常不明白「為什麼明明很簡單的功能,RD就是辦不到」,覺得自己被工程師刁難, 其實背後的原因很可能就是因為當初求快選用的架構不適合後來需要的緣故。如果要換架構 幾乎就是全部重來過,這跟殺自己的兒子一樣痛苦,雖然我們領了薪水,但那些程式碼畢竟 也都是自己的心血與青春換來的。況且老闆不見得會支持這種重新來過的提議,他甚至可能 比較傾向「換個人重新來過」這種選擇,他會質疑地說「之前不是說要預留OOXX的彈性嗎」 ,於是軟體工程師只好見招拆招,挖東牆補西牆,就像人家說的:新三年舊三年縫縫補補又 三年,反正補不下去了的時候走人就是了,結不了的案,尾款不收就是了。換到一個新公司 ,如果是接手前人的架構,你敢換嗎,你能換嗎?於是又開始了新的補破網工程。「對的架 構帶你上天堂,不對的架構帶你住套房」這句話一點也不為過。 三、架構的特性是專門性與流通性 雖然架構千百種,有些特性是相同的。第一就是「專門性」,也就是架構是由數個特定功能 角色的模組或次架構構成的,套用架構的過程,就是拆解與重組的過程,那些重複的、常出 錯的、難維護的、昂貴的功能,會被歸類為冗餘的功能,取而代之的是精簡的、穩定的、便 宜的、容易使用的功能。簡單的講,就是分工架構的重組,與重新界定模組的角色與責任。 第二就是「流通性」,也就是模組之間透過制定標準與介面達到資料互通的目的。資料在應 用系統裡就跟水在容器裡面一樣,如果用管子把兩個容器接起來,這兩個容器裡面的水位就 會一樣高,這叫做「連通管原理」,是我們國中都學過的。介面、標準或者叫做API是軟體 架構裡面非常重要的成份,組成架構的每一個模組透過介面之後就能彼此互通。專門性與流 通性是架構必然擁有的特性。 四、經濟架構也有專門性與流通性 不知道各位有沒有想過一個問題,大學畢業剛入行的工程師,在台灣一個月22K(15年前是 28K),在中國8K,在美國卻能有100K(以上都是大約數)。顯然不是因為美國人比台灣人 聰明,而台灣人又比中國人聰明的緣故。其實那是因為美國、中國、台灣是不同經濟體的緣 故。經濟體好比一個應用系統,這個應用系統(system)必也是根據架構(framework)在運作 著,如果把整個地球看成一個更大的系統,國家之間的海關好比是介面一樣,負責每個經濟 體之間的交流。海關從事的關稅、檢疫等工作,跟API限制參數數量與型態的功能非常類似 。用不同的尺度來看一個系統,我們就會看到不同尺度運作著的架構。從地球的生態系,到 電腦主機板上的南北橋與CPU,雖然著眼的尺度不同都遵守架構運作著,軟體系統如此,經 濟體系也是一樣。在同一個經濟架構內,也存在著功能分工與流通性,例如,嘉南平原的稻 米、高山的水果、彰化社頭的織襪,新竹的科學園區,我種稻子給你吃,你織襪子給我穿, 這就是經濟體系的專業分工。古人說「一日之所需,百工斯為備」,科技發展到今天,一日 之所需,可能是百萬人斯為備。菜市場的水果攤,如果今天屏東的西瓜沒貨,也有花蓮的西 瓜可以賣。公司裡面的同事有恆春來的,有馬祖來的,也有台北長大的,這就是同一個經濟 架構內生產要素的流通性。 五、ECFA是新的經濟架構 ECFA,當中的F,就是Framework,也就是架構。雖然我們無從得知裡面的內容,但望文生義 就可以判斷,當兩個架構連結起來,構成一個新的架構時,必然是一個劇烈的變動,跟我們 軟體上改換架構所會發生的狀況是一樣的。因為架構的專門性,分工會重組,角色輕重會有 所調整。我們套用新軟體架構時,新模組會帶來新的效應,但必然也有些模組會被捨棄而失 去角色。因為損益是相對的,有失有得是必然的,如果有早收清單,必定也有早損清單,其 實是損是益早就決定了,只是時間問題。而換新的架構的動機必定是因為新架構更具備經濟 效益才對,否則何必用新的架構。所以套用新架構時,冗餘的部份會被割捨拋棄,這是一定 會發生的。架構的通透性,造成的效應就是均化,這是明顯的連通管原理,只要是同一架構 必然擁有的特性。經濟體就是供給與需求之間的關係所構成,供給多了,價格自然下跌,至 少不會再上漲。 我們在資訊界人人都能朗朗上口的就是”Cost-Down”,你家業務創造更多業績的方式是建 議老闆替RD加薪鼓勵他們開發更棒的功能,還是直接把價格砍得跟別人一樣低?兩者都有吧 。提昇競爭力的方法有降低價格與提高功能兩種,所以要比便宜更便宜,比大碗更大碗。在 商品與服務市場上,貴寶號是賣方,在人力市場上呢,賣方就是你,貴寶號是買方。零件與 人資都是生產成本,用錢採購的生產要素(資源)。在同一個經濟經濟架構裡面商品必然是 流通而趨近於一致均勻化的,如果你跟渾身香氣噴人的正妹同在一個電梯內的時候放屁,電 梯內每一個角落不會只有香氣而沒有屁味,這就是均化效應。在同一個架構之內,當ECFA這 條水管接通,浪潮席捲而來時,水會往低處流,(中國)人會往(薪資)高處爬,這是避免 不了的趨勢。你要保有自己在人力市場上的競爭力,要讓自己更大碗,也要更便宜。 十幾年來網路的成長已經讓這種流通性大增,早就已經有不計其數的台灣軟體在中國開發, 更何況雲端服務時代來臨後,「服務」是人資成本越低越能佔優勢的無形商品。你有沒有想 過,雖然有網路,你的業主跟老闆為什麼仍然願意購買你的軟體勞動力呢?那是因為你在台 灣容易找得到人溝通,用密集溝通的方式,幫助雇主釐清他自己還沒搞清楚的需求。如果這 種情勢改變,比人家貴又不見得比人家好到哪裡去的台灣軟體工程師,請問誰會理你?資訊 業的進步很快,累積好幾年的功力過一兩年就落伍,必須不斷學習。不論這在世界的哪個角 落,所有軟體工程師都在相同的起跑點上。如果研發的薪水相差3倍,在功力相差不多的情 況下,找1個貴但不一定成功的團隊,不如找3個便宜的團隊,用一樣的成本,成功機率提昇 3倍,如果老闆不會打這種算盤,這種老闆大概也撐不了多久。然而,如果你的薪資比別人 貴3倍,請問你1天能夠有72小時嗎? 六、ECFA一定會來 不論你贊成還是反對,ECFA是必然會來的,台灣現狀在短期內就會改變。這個趨勢在台灣人 民選出馬英九的那一天晚上就已經決定,就算公投成案,投出反對的結果也改變不了這個事 實。政府執政當局只要換個名稱就避開公投的結果了,反正ECFA也不是它本來的名字。我們 在「蘇花高」變「蘇花替」、跟「淡水河沿河快速道路」變成「『北側沿河平面道路』的『 永久性臨時替代道路』」上都看到相同的手法。政府人員作這種文字遊戲的時候還有薪水可 以領,百姓搞反對要向公司請事假扣薪,誰能撐的比較久,誰能堅持到最後,答案很明顯。 有人說要號招人民上街頭。實況是,顏色正確的社會名人一個就夠力,然而顏色不對就算是 百萬人上街頭也沒用,國民黨只要把你打成民進黨的同路人,說有民進黨在背後操弄,那些 反對的聲音就從人間蒸發了。國民黨是用贊成或是反對ECFA而來判斷你的顏色,在死刑與環 保議題上或許會有些異議空間,然而在ECFA上這種跟中國相關的議題上,只要稍有異議,國 民黨就把視你如寇讎。別奢望白冰冰會質疑ECFA,張曉風更不會為ECFA的問題下跪,對於人 民的疑問,國民黨的回應是發明新的口號,以及作更多的政治表演。從不開放中國學生,不 承認中國學歷,不能考證照,到既開放也承認,甚至還能就任公職,不過短短幾個月。把中 國醫院納入健保體系看來也是遲早的事。中國勞工來台有各種方式,或者讀書後繼續留在這 裡,或者透過結婚、依親、訪問學者、博士後研究等等各種人道因素。所以你在台北的辦公 室有來自高雄的同事跟也來自中國的同事,這種場景只是時間問題,而那個同事可能只是負 責跟設立在中國的研發單位的窗口。政府單位表面上這樣說,實質上那樣作的情況已經不是 新聞。先用各種名義與各種方式悄悄進行著,等到木已成舟再就地合法,也是他們常用的方 式。 軍事上,從1949以來蔣氏父子跟美國建立的同盟聯防關係已經開始被「Never說」切斷。司 法上,雖然檢察官用龜速辦理一般人民的案件逼得台灣母親走上絕路。中國人屢屢來台犯案 ,檢察官卻不敢起訴,反而是中國人跌倒時展現驚人的辦案效率。警察機關的狀況也不皇多 讓,當台灣人被詐騙的案件層出不窮尚未根絕的時候,說出以「中華人民共和國為上級機關 」的波麗士大人卻努力查緝以中國人為對象的詐騙集團,接連破了好幾個案子。從各種跡象 來看,2010年的台灣就像1997前夕的香港一樣,只是沒說破而已。也許有人說,再2年後如 果換人當總統就ok了。這種想法是不切實際的,就像軟體架構一樣,一旦架構確定之後,後 續的路就決定了,不會因為換工程師或換主管而改變,誰來當主管都一樣,除非重新來過。 而經濟架構除非是革命或因戰爭被徹底殲滅,否則是不可能重來的。當一切操之在別人的時 候,就算2012年換了總統又能怎樣,天下大勢底定,別人只要再稍微操作一番,2016就又翻 盤了。如果經濟不能自主,主權喪失指日可待,而主權就跟皇后的貞操一樣,一旦失去就不 會再回來。如果你認為政治可以歸政治,經濟可以歸經濟,那就上當了。因為「共產」是經 濟制度,而「共產主義」卻是一種政治思想,可見政治跟經濟是一體兩面。至少當你跟共產 黨打交道的時候,人家是那麼在想的。 七、面對新的挑戰 既然事情一定會發生,只好面對它。就像是如果一個人的阿爸決定變賣家產簽賭六合彩的話 ,如果他無能阻止他阿爸,必須務實地為自己尋找出路。第一要調整自我的心態,接受薪水 或報酬必須向下調整的事實,這樣會讓自己心裡舒坦些,不至於整天心煩意悶。第二,不要 親易創業。如果你認為廉價勞工的時代最合適當老闆,那是一個誤解。讓我們用國小程度的 數學算一下:假設你有100塊,大老闆有1000塊,在人力成本10塊時,你能僱用10人,大老 闆能僱用100人,此時人力差距是90人。如果人力成本下降到1塊,你能僱用100人,大老闆 能僱用1000人,此時差距是900人。所以人力越便宜,對大老闆越有利。成本越低的情況下 ,資本越集中越有利。第三,要讓自己的第二外國語文能力更好。用點邏輯能力自己推敲一 下,如果一個軍隊連自己的首都都淪陷,怎麼可能佔領敵營的陣地,同樣的,如果連自己家 市場都失守,怎麼可能去吃得到中國這個市場?如果中國市場那麼好,中國的軟體工程師又 怎麼會趕著湧進台灣來?加強你的外語能力,尤其是英文能力,其次就看你自己的興趣。英 文不僅要能達到聽、說、讀,甚至還要到寫的程度。如果你認為全世界都在學中文,以後中 文會取代英文,那我只能說我真是被你打敗,不過你能讀到這裡,大概就不會是會相信那種 鬼話的人。台灣軟體工程師未來的市場一定不在中國而在全世界,尤其是網路這個新世界。 第四,要關心比較全球性的問題。我刻意不用「國際性」這個詞彙,因為這個詞彙過於歧義 。我的意思是指像是”Java與Ajax”這種大家都會遇到的普遍性問題,因為這類型的問題有 更廣泛的市場。我要推崇的典範其實就是ZK的道路,他們英文好又能即時掌握到對的問題, 所以能把自己的產品推向全球,成為台灣之光。第五,要樂於分享與合作。台灣社會裡面除 了廟會之外,集體合作的機會不多,而升學競爭的成長環境更養成我們獨善其身的傾向,我 們喜歡成群結黨搞小圈圈,卻不善於群策群力,這是我們要努力去克服的缺點。說到這我又 想起一個值得推崇與鼓勵的範例,活躍於flash板的cjcat2266,他做了不少具有普遍性的 library,有很棒的英文網頁,而且樂於與網友分享,很值得我們學習。 這篇發文很長,我對pcman介面操作還不太順手,希望layout正常。謝謝你讀到最後。 我的見解與對策不必然適合你,也不強求你贊同,但如果能帶給你啟發, 就算是你罵我跟民進黨一樣在「恐嚇你」我也無所謂。 因為軟體工程師如果再宅下去,恐怕連宅沒有了。 祝福你,大家加油! 我是一個會在PTT出沒的軟體長工,一個年屆中年的市井小民。如果你是那種在海邊看到海 嘯來了會呼叫示警的人,歡迎你轉達給在台灣從事軟體工作的親友。在保留原文的前題下 不必考慮版權問題。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.80.10
rofellosx:我怎麼看不出來內容跟ECFA有啥關係? 05/16 23:25
bobhsiao:中間還有提到政治~有趣 05/16 23:29
hik0301:沒有2真痛苦 05/17 00:29
nowar100:我沒被啟發到,只感覺到怎麼好像話中有話... 05/17 01:46
Balduran:看謀啦 05/18 01:10
rofellosx:簡單說就是洗腦文 內容大意就是支持ECFA就對了.. 05/18 08:25
staycation:推cjcat2266...前途無量的高材生!! 05/19 12:46
leicheong:7.2不同意. 100人寫的軟體是會比10個人寫的強, 但1000人 05/20 13:47
leicheong:寫的軟體真的比100人寫的會差很多嗎? 在large scale dev 05/20 13:49
leicheong:的情況下, 比的是領軍的人的規劃能力吧... 05/20 13:49
greencha:不如先擔心 IFRS 05/23 21:41