close

聲明:這是一個程式設計的故事,不是在講蓋房子。
一天,老闆找了一群工人說要蓋房子,有人會砌磚(coding)、有人會拌水泥(protocol)、有人會綁鋼筋(framework)、有人會貼磁磚和刷油漆(UI),一群人就在老闆指定的一塊地上(project)開始蓋房子了。
蓋房子的過程因為架起施工圍籬(project room),老闆看不到裡面在幹嘛。就算偶爾走進圍籬裡探班,也看不懂工人們在做什麼,只看到每個人都很認真在工作,只覺得這群工人很努力,對團隊很滿意。團隊成員能各自發揮所長,把地板和牆面做得很平整,樑柱做得很方正,對自己的工作產出很滿意。更重要的是這群工人很便宜,看見房子漸漸成形,老闆對自己省錢的英明睿智更是覺得自滿。
房子蓋得差不多了,老闆漸漸看得懂工人們做出了什麼東西,但是越看越疑惑:「為什麼廚房沒有水龍頭?」工人回:「你為什麼不早說?」於是打牆拉明管(link out URL)。老闆問:「為什麼馬桶大便會溢出來?」工人回:「你為什麼不早說?」於是打穿地板拉排汙管(exception handling)。老闆問:「為什麼整個房間沒有一個插座?」工人回:「你為什麼不早說?」於是釘牆拉白扁線(hard code)。老闆問:「為什麼這扇窗外面就一堵牆根本打不開?」工人回:「你為什麼不早說?」於是做燈箱假景(靜態網頁)。老闆問:「這扇門外面跟地面有150公分的落差要怎麼進出?」工人回:「你為什麼不早說?」於是做個活動鋼梯(外掛程式)。
老闆問:「這些事情沒跟你們說你們就不會蓋房子了嗎?」工人回:「這些事情以前建築師都會畫圖講清楚,才不會像你一樣用手比什麼都講不清楚。」錯誤實在太多,不管怎麼改正都只會發現更多更難改的錯誤,只好把房子打掉重蓋。
浪費一大筆錢之後,老闆覺得自己學乖了,於是重組新團隊,這次甘心花比較多錢請比較貴的建築師(System Analyst)來畫建築藍圖(Functional Requirement Specification-FRS),用紙板做建築模型(prototype)。還聽從建築師的建議又額外花錢請了結構技師(Architecture 系統架構師)一起設計。但仍覺得不需要請工頭(Project Manager),自己來管理就可以了。
經過幾個月的設計期間,一塊磚都沒砌(coding) 、一包水泥都沒拌,在老闆眼中看起來蓋房子是完全沒進度,看錢一直在燒,老闆的焦慮越來越深。最後建築設計定案了,建築師拿著設計書(系統設計規格書,SA文件)要求老闆簽字,老闆說:「還沒看到房子我怎麼知道你設計的對不對,簽了就要我負責,死也不簽!反正以後設計有任何問題你們都要負責改到好,否則別想拿到下一期款。」建築師只好請工班先開工,以後設計變更被工班罵就自己吞下去,成本增加也是自己吞下去。
經過幾十次的小改版,幾次的大改版,花了比預算多兩倍的加班工時,幾個月後房子終於蓋好了。外觀華美,作工精細,實用性佳。老闆對於能夠威逼這群各有主見的牛鬼蛇神就範,在自己的強大意志力下完成這棟建築,十分志得意滿。確認所有該遮蓋的都遮了,該隱藏的都藏好後,老闆請第一批VIP進來參觀。VIP-1說:「這不是要蓋商場嗎?怎麼蓋成了個辦公大樓?」VIP-2說:「這裡跟隔壁競爭對手的那棟很像,有沒有智財權的問題?」VIP-3說:「你的目標客層不是銀髮族嗎?怎麼會沒有無障礙設施,還放了這麼多色彩鮮艷的卡通圖案?」一個個尖銳的問題問得老闆臉色青一陣白一陣。最後法律專家VIP-4打了致命的一槍:「這塊土地的使用分區是行政區,不能做商場也不能做商業辦公大樓,只能做公益用途。現在蓋成這樣是要怎樣拿到使用執照?」老闆被徹底擊垮,人被打死了但那張嘴還沒死:「我們可以賣給基金會呀~」
房子蓋好了,由於不符使用需求,只能淪為閒置的蚊子館(沒有流量的網站),老闆始終不明白自己哪裡做錯了。老闆失敗淪落到工地打工,看到正規建築團隊的運作後才知道,當初自己的團隊成員少了企劃人員(Business Analyst)。事先做好需求調查(Business Requirement),了解目標客層的行為與偏好,客戶所重視的價值所在。從財務面、法律面、技術面、市場面......等等各種面向進行調查,擬出專案的目標、前提與限制(Project Charter)。在對的地方蓋對的房子做對的事,一次就把事情做對才是最省錢的作法。

arrow
arrow
    全站熱搜

    Eddie Qiu 發表在 痞客邦 留言(0) 人氣()