最近,到處都能看到,聽到大家痛罵高鐵的爛訂票系統。
「一位雙訂票!?」「超賣!?」

TMD 這是什麼爛系統,是都完全沒有測試過嗎!?花了那麼多錢,做這樣的東西,能看嗎!?而且[一位雙訂票]這種防範措施,阿西摩還記得當初在大學的時候,第一學期的 Java Project 就是要用 Multi-Thread hadnling 來寫一個訂票系統了。這可是大一的學期末程度啊!
或許,在開始謾罵之前,應該先了解一下台灣資訊業界的困境吧。。。

  • 在台灣的資訊業界,常常會有這種鳥狀況,那就是業務為了搶案子,對著客戶開了一堆「拔辣票」。
  • 什麼叫做「拔辣票」?那就是明明公司的工程師在時程內無法完成的工作,業務照樣說可以達成。再加上,業務通常沒有 coding 的經驗,更不可能是專業科班出生,哪懂什麼叫做程式設計,軟體工程。別傻了,業務只要會用 PowerPoint 做出一堆漂亮的簡報圖,然後可以掰出一卡車的漂亮數據,然後說服花錢的大爺們只要花了這錢,可以賺到更多的錢,那就夠了。會不會,懂不懂什麼叫做軟體設計,軟體程式開發,那些都不重要的。反正,案子先搶到,剩下的能不能完成,或者是結案,那些是執行專案的專案經理的問題,還有開發工程師的問題,業務就好像找食物的工蟻一樣,他只負責找到案子,搶到案子,其他的不是業務的責任!如果出事情,上面要開罵的話,業務可以很輕鬆的說,是專案經理專案控管不好,開發工程師能力不足。業務只負責把案子找回來而已。

  • 資訊公司內素質的參差不齊
  • 小的資訊公司,為了省成本,通常只會有幾個真正資深有經驗的工程師,然後比資深工程師多一倍菜鳥工程師。
    大的資訊公司,雖然有一狗票的「證照」工程師,跟一卡車的菜鳥工程師。只是,這些「證照」工程師,有沒有實戰經驗,那就不重要了。

    小公司去接案子,常常會因為資深工程師必須同時兼顧專案的開發,還要教菜鳥工程師,然後還要做一堆雜工,分身乏術的情況下,造成整體的開發品質低落,然後呢,菜鳥工程師也很有可能做出一些令人不敢領教的東西,然後惡性循環,造成整個案子出包。

    大公司呢,那就更可怕了,「證照」工程師,到底有沒有實戰經驗!?呵呵,會考試不見得會寫程式!
    而這種怪異的組合下,能力強的跟能力差的混在一起做事情,出來的東西,能有多一致!?想也知道。

    所以你說,大公司跟小公司真的有差多少嗎!?除了一個名氣大,金主多以外,其他的,說穿了,大同小異。更何況,很多人去到大公司都是抱持的「過水」好讓履歷表好看的心態。然後大公司給的待遇也不怎樣,甚至有到壓榨的地步,你以為資訊工程師在這麼惡劣的情況下還會 100% 盡心盡力嗎!?除非他是剛入社會,抱持著滿腔熱血的菜鳥,否則,那股熱情早就被這惡劣的環境給磨光了。

    更何況,在台灣,公司對待資歷深的工程師待遇並不怎樣,你以為能多少? 在大公司裡面,能夠月入五六萬算很不錯了。強一點,讓你拿到月入十萬為上限。只是,這個價碼背後有著加班加到爆肝,賣命賣到死掉的隱藏開銷。
    這怎麼培育出像國外那種「大師級」的軟體工程師呢?

  • 時程的不合理
  • 在台灣,常常會有時程掌握上的問題。
    比方說,原本預計一年的案子,通常會因為總總原因,拖了兩個月才找到有人要來接這個案子。這時候剩下 10 個月。
    然後,當初跟承包商說有一年的時間,事實上,現在只剩下 10個月。
    接著,承包商還得花點時間了解需求,調度人員,然後,真正能夠上手,已經又過兩個月了。時間剩下 8 個月!
    開發過程當中,工程師又發現了很多當初規劃跟設計上的問題,時間應該要延長兩個月。不過,進行到這裡,剩下 4 個月。
    突然,長官為了自己的面子,部門為了要功勞,好吧,提前完工,所以時間,下個月結案!
    這時候,死得最慘的就是工程師。之前已經不知道加班加成怎樣了,原本只是每天加班到晚上九點,現在變成要加班到半夜,然後週末統統取消,繼續加班!在這種情況下工作,工程師正常的專注力早就沒有了,加班,只是會讓情況更加惡化,寫出來的程式更多的問題。

    原本就是需要 12個月開發時間的系統,在這種拖拉跟提前的壓榨下,真正可用的時間大概不到一半。

    只是,這些理由,不是長官想要聽到的!反正,就是要趕出來!越早上線,越早開始賺錢!
    只是,這些人,通常都沒有想那麼多。。。。

    一個真正好的時程規劃當中,是必須要包含合理的規劃,系統分析,系統架構,系統開發,然後還要有一大半的時間來做「抓蟲」跟微調。可是,阿西摩在台灣做專案做了四五年,還沒碰過有合理規劃的專案。更悲情的是,越大的案子越趕!

    你說,這樣的東西不會有問題嗎?

  • Domain Know How 的缺乏與專業規劃的能力
  • 擁有 Domain Know How 的人在專案當中是非常重要的。可是,在資訊業界的領域當中,Domain Know How 的專業度的要求就更嚴苛了。

    舉例來說,今天公司找了一個曾經做過訂票系統的人來參與專案。這當然很好,可是,問題是這個人之前做過的是用 Dalphi 做的 Client-Server 架構的訂票系統,跟我們今天這個專案要做的 Web Application 訂票系統不一樣。對於專業的軟體工作者來說,這樣的 Domain Kown How 並不完全合用,甚至說難聽一點,根本不能用!

    只是,在這個「官大知識大」的環境當中,主管說了算,再加上根本沒有時間讓你去想這些有的沒有的。反正,有個掛有「Domain Know How」的人在裡面,能夠符合最低合約標準就好了,誰也管不了那麼多。

    說了這麼多,還只能說是前半部而已,資訊產業的背後,有著太多令人感覺到害怕的黑暗面了。 並不是阿西摩想要唱衰台灣的資訊產業,只是,再台灣工作了四五年,我所看到的,所感覺到的,所經歷的,大概就是這麼一回事。小從幾百萬的專案,大到上億的專案都做過了,國內的大公司,小公司,外商公司也通通都有接觸過。只是,問題還是同樣的再發生,而面臨的問題也都大同小異。說真的,這個業界待久了,還真是令人挺灰心的,難怪,有每次工程師苦中作樂的時候,都會說[我想要辭職來去賣雞排了~]。因為,同樣是在用生命換金錢,賣雞排的獲利還比較高呢!