n萬行的code - 離職

Kyle avatar
By Kyle
at 2016-07-17T16:58

Table of Contents

※ [本文轉錄自 Soft_Job 看板 #1NYmcWSk ]

作者: ggg12345 (ggg) 看板: Soft_Job
標題: Re: [討論] n萬行的code
時間: Sun Jul 17 12:29:18 2016

※ 引述《randomly (倫敦鐵橋垮下來)》之銘言:
: (幫以前同學代po)
: 背景:四大資工碩,役退。
: 同學最近才剛工作兩三個月
: 聽他說一進公司,主管直接丟了一份project的source code給他
: 原本負責這個project的前輩已經離職了,所以當時是由主管代職,
: 這份source code林林總總大概有6~7萬行
: 這麼龐大的code,當然也是埋一堆bug,通通直接workaround
: 來一個打一個,來十個打十個
: 主管表示:試用期過後,這份code之後就交給你maintain了
: 所以他從第一天進公司開始每天都在看code
: 三個月也一轉眼過去了,
: 剛剛吃飯聽他說,上禮拜開會主管突然問他
: 「某case發生時會有bug,請問是在哪個function什麼原因造成的?」
: 同學自己也不熟,只好回說待會回去看一下再跟主管回報
: 主管只丟了一句話就離開了:
: 「你前三個月試用期都在幹嘛?
: 才問一個case也答不出來,之後你是要怎麼開發,怎麼maintain?」
: 各位認為這件事是我同學能力不足? 還是主管太嚴苛?
================================================================
軟體業為何起不來?
=================

時代逐漸演變, 台灣也經歷好幾個變化. 但有件事卻很明顯地一直沒有大的
改變. 維護, 除錯改進, 從新開發, 這些軟體工作裡的一串生命週期演變,
我們的電腦業似乎總是不知如何處理.

維護, 除錯, 改進一直是台灣電子製造業最害怕的事. 台灣自從把微電腦的
PC外銷出去國外後, 最弱的事就是行銷與售後服務.

美國賣場裡的售後服務一直讓台灣的顧客很羨慕. 但製造產品的廠商就是很
害怕. 從美國總是傳回來這類的奧客事件, 一件成衣, 顧客在賣場付錢買了
回去, 顧客可能回去風光穿著去參加宴會, 隔兩天卻拿回賣場退貨. 賣場也
不疑有他, 照樣退了錢. 拆了包裝的成衣當然就被賣場退貨回製造商. 台灣
的製造商只能把退貨的產品拿到工場外的路邊再拍賣, 希望收回一些成本.

有加工出口區以來, 這類的事, 總是讓一般的平民百姓在路邊撿這些產品來
用. 而加工製造業的老闆總是對直接行銷國外(主要就是美國)避之唯恐不及.
這就是台灣"代工製造"留下來的形象.

成衣業為了對付這類的奧客, 在衣服包裝上加了一些一次性使用的標籤, 一
但拆了或剪開那就不能退貨了. 軟體業出名的套裝軟體就是用玻璃紙包裝,
一但拆了封就是同意付錢成交. 但訂製型的軟體就如同老式的西裝店, 西裝
師傅總是要找客戶試穿改型幾次, 雙方才會滿意. 西裝師傅總是把西裝設計
製作得能做後續的小改, 才能讓客戶試穿才能改型. 但是一旦把西裝布給裁
下去, 那是不能退貨的.

台灣的軟體業通常不做西裝師傅的事, 不做試樣, 也不給顧客定型. 顧客也
難以把需求講清楚, 也就是規格不會寫明白. 沒有明確的草圖規格, 做小部
件的學徒工當然就隨性的製作, 也就毫無章法.

最早見識到的 Dirty code.
========================

1966年的成功大學才剛從省立改制為國立一年, 在經費與員額皆欠缺下, 從
美國特地為美蘇太空衛星競爭而援助台灣成立的工程科學學系裡, 挪用其成
立經費在工程科學研究中心引進了一台 IBM1130 的米你型主機. 成大與清大
那時才剛開始在大學裡提供 FORTRAN 的電腦程式語言教學. 台灣對電腦的硬
體與軟體要如何製造發展是一片荒漠.

當完一年的預官役回到系裡當系主任的助教, 夏主任總不忘交代要到工程中
心常去看顧那台系裡財產購製的主機電腦. 有天, 電算中心的王主任就把機
房一角辦公桌的抽屜打開, 交代說韓助教過幾天要出國留學去了, 就來這裡
接替他的工作, 替電算中心維護與台南製鹽總廠合作的薪水電腦程式. 大抽
屜就是一疊電腦程式的大報表紙, 右下角的鐵櫃就放著幾盒的打孔卡片, 就
是原始程式所在. 韓助教從那時就沒有再出現, 過幾天就坐飛機出國去了.

快到月底, 製鹽總廠的會計人員陪著王主任出現了, 說新的年度要執行每個
月的食物代金津貼與每月預扣所得稅申報與扣繳. 會計主任說韓助教曾經答
應要事先完成這個程式. 王主任說只要照舊跑一次就可以了.

準備完製鹽總廠送來的資料卡片, 掛好製鹽總廠的硬碟卡夾, 剛開始要跑程
式, 就發現控制卡不齊全, 原始程式卡之後的執行卡需要有指明的檔案名稱
卡. 查遍了抽屜的程式 listing 都沒有列印出來. 再查卡片櫃, 有零落的
控制卡夾雜在不同的程式堆之間. 也不知道那一張才是. 最後是找到一張硬
碟夾列印的控制命令卡與報表清單. 就在那一堆的名稱裡, 靠著半猜半試才
讓機器跑起來. 總算看見有所得稅扣繳欄位. 手忙腳亂中把結果報表繳了出
去. 第二天卻傳來電話是計算錯了, 因為代金與扣繳公式改了. 會計主任很
好心的發動底下的會計人員用算盤把資料更正過來了. 總算勉強過了第一個
月的維護運作工作. 緊跟著用紅筆更正過的報表送了回來, 扣繳的錢記在電
腦裡, 隔年報稅前要累計發出扣繳憑單, 所以那筆計算錯誤的程式要改過來
, 記錄的資料也要改過來. 這就要去對那個程式做除錯的工作了.

抽屜裡的整疊報表程式, 每頁大約80橫行, 厚度大約有 4-5 英吋. 程式是
用 Commercial FORTRAN寫的, 數字的表示法與計算是配合商用的十進位.
那時候的成大電算中心的IBM 主機只有 16K word, 是勉強能跑 COBOL 程式
, 但處理效率不高. 整個機器能量不能跟今天的 Inetl X86 機器相比. 她
是個控制卡的 Batch system.

逐行的掃過大程式段落, 找到一頁有計算扣繳欄位的計算式. 辛苦的把那頁
程式給改過來了. 但重新編譯過再跑, 卻發現那個欄位的資料跟舊的一樣沒
變. 這下整個人被嚇壞了! 怎麼改了計算式也沒用?

最後用插樁列印法把那個欄位有關的修改式子將結果印出來再逐步追蹤. 欄
位的資料照修改的式子改了, 但最終的磁碟記錄欄位卻是原來錯誤的結果.

就再從那修改的公式逐行往下找, 又找到一段程式, 變數名稱改了, 不再是
原來的欄位名稱, 重新又看到一段程式重新又再再去找同樣的資料把新的計
算結果到磁碟檔覆蓋過去. 這段程式才是該要去修正的程式所在, 前面那段
算是矇蔽白算的.

很難追蹤除錯的 自我更新程式碼
=============================

這位韓助教是跟隨前任電算中心石主任而來的另一系(非電機)助教. 當時的
社會狀況正是引進加工出口區, 設立科學園區的時代, 大學找不到助教. 軍
隊的狀況正因蔣經國開始接掌國防部逐步想改善的情況. 當時去當海軍的預
官幾乎只能窩在港內. 台灣軍隊的武器已過時, 大陸的軍艦都裝了俄羅斯的
漠河反艦飛彈, 除了運輸艦都躲在港內. 因此, 畢業的同學有好幾位去中科
院.

當時, 相對於澎勃發展的加工出口區, 沒有人想當公務員, 教師. 國營企業
也因待遇太低沒人想去, 大部分的大學畢業生都出國去了. 當預官時, 月薪
800, 除了兼排長還兼了營通訊官, 再加兩份加給總共是月薪1600. 回去當
助教時, 就是月薪800. 每月在學校餐廳包飯就是300, 剩下的要應付衣住行
只能去搶學生宿舍住. 去電算中心工作時, 當年的機房操作員就談到中心對
外爭取合作的外快, 但從校長長官一路分下來, 經常黑函滿天飛, 不時受到
調查局來追查.

軟體有價, 從開始引進IBM的電腦到大學是大家早都知道的事. 但智財權保
護是在保護外國進來的軟硬體. 不同公司來源的配備(含軟體)是不能互通的
. 韓助教開發的發薪軟體當然沒有額外的報酬, 所以, 那個程式從來就不假
設會交給別人維護改進. 原來的程式功能不對, 不是註記說明替換掉, 而是
在別的模組段落另起一套, 甚至換掉結果的變數名稱. 在後果上就是很難被
分析追蹤, 程式變得很難看得懂, 也就不易更改維護.

只重科學計算模擬的電腦應用科技

像那個接受美援成立的工程科學系, 就是由美國參謀首長名分成立的傅爾布
萊特基金所支助的, 為了與蘇聯在太空爭霸, 由於蘇聯史波之尼克人造衛星
的搶先發射, 美國想到要到第三世界國家去搶一些優秀學生到美國替他們做
研發, 所以就資助成立了這個系. 因為外太空環境很難在地面實驗測試, 所
以很強調要用電腦估算模擬.

一個軟體系統, 從構想到規劃建立, 維護運作, 改進改版以至完成另一套新
的系統, 至少在學校的環境裡沒有被完整的執行過一次. 所以, 軟體發展的
費用及過程, 在台灣都是沒有可資借鏡的前例可行. 有的都是買進一套國外
的軟硬體系統, 作一些中文使用介面的改進, 前面努力的成果也無法累積到
後面使用.




--

All Comments

Caroline avatar
By Caroline
at 2016-07-21T20:11
end
Aaliyah avatar
By Aaliyah
at 2016-07-23T06:00
內容在寫啥鬼 從旁敘述的亂七八糟
Bennie avatar
By Bennie
at 2016-07-23T23:32
公三洨
Suhail Hany avatar
By Suhail Hany
at 2016-07-26T06:38
239P....竟然不是複製貼上文XD
Lucy avatar
By Lucy
at 2016-07-29T08:44
真相總是殘酷的~
Isla avatar
By Isla
at 2016-07-30T04:24
end+1....讀起來好痛苦
Eartha avatar
By Eartha
at 2016-08-02T19:29
很像上一篇講的學術xx化石,被照顧的很好的化石
Gary avatar
By Gary
at 2016-08-05T09:45
故事寫得有趣 有點歷史話家常的味道
Robert avatar
By Robert
at 2016-08-06T23:15
老實說滿好看的啊 有啥好噓?
Dora avatar
By Dora
at 2016-08-08T13:07
贅字好多......
Doris avatar
By Doris
at 2016-08-12T18:27
寫啥軌
Daniel avatar
By Daniel
at 2016-08-15T10:08
不知所云
Oliver avatar
By Oliver
at 2016-08-16T23:39
google翻譯?
Todd Johnson avatar
By Todd Johnson
at 2016-08-19T06:35
還我5分鐘生命
Kristin avatar
By Kristin
at 2016-08-22T05:36
Anonymous avatar
By Anonymous
at 2016-08-22T22:04
我認得你...的ID,從dos講起
Jacob avatar
By Jacob
at 2016-08-24T22:06
看這麼多紅有點感慨,不過曾教授您舉的例子也太古舊了吧
現代軟體開發不管是技術或是流程都已經不可同日而語
Victoria avatar
By Victoria
at 2016-08-28T01:08
只講設計師把程式寫得難以追蹤維護,那也是還太表面了
Puput avatar
By Puput
at 2016-08-30T13:24
真的因還牽涉到很多產品開發週期以及分工協作等影響
Linda avatar
By Linda
at 2016-09-02T09:41
當然甚至還沒提到設計師本身的素質與經驗等等個人因素
Connor avatar
By Connor
at 2016-09-05T05:30
覺得軟體業沒有真得起來獲大家認可,不全然只是技術問題;)
Annie avatar
By Annie
at 2016-09-06T05:56
還是推曾老師/曾教授的文一下...
Jake avatar
By Jake
at 2016-09-09T23:30
Oscar avatar
By Oscar
at 2016-09-10T10:11
貌似畫卡跑程式的年代
Cara avatar
By Cara
at 2016-09-12T11:27
問題很久以前就是,人的觀念到現在一樣落伍
我想這是作者想暗示的
Kama avatar
By Kama
at 2016-09-14T02:54
可惜現代年輕人的國文程度已看不了長文
Blanche avatar
By Blanche
at 2016-09-17T20:44
呵呵,中科院
Victoria avatar
By Victoria
at 2016-09-22T14:06
說個笑話:老屁股說現代人觀念落後
老爺爺從國共內戰開始講古 然後說年輕人沒耐心
Puput avatar
By Puput
at 2016-09-25T07:37
我很久之前就說過這裡邏輯差到可以廢版了
Regina avatar
By Regina
at 2016-09-29T23:15
拿modem撥接上BBS看這篇文, 會更有fu....
Elma avatar
By Elma
at 2016-10-04T18:29
這是要出書嗎?有重點嗎?XD

南亞電/艾克爾 offer 請益

Daniel avatar
By Daniel
at 2016-07-17T15:39
跟朋友借帳號PO 第一次發文請見諒 小弟135工工碩畢業 六月底面試 有幸收到兩間公司offer 公司 南亞電路 艾克爾國際 職稱 工管人員 �� ...

35歲左右的人大部分都管理職還是工程師?

William avatar
By William
at 2016-07-17T14:50
為什麼一定要升管理職??? 我們公司多的是四、五十歲的工程師 他們的薪水跟位階都比帶他們的還要高~~ 上頭的人也不敢隨便動他們 這種到某個歲數就 ...

35歲左右的人大部分都管理職還是工程師?

Noah avatar
By Noah
at 2016-07-17T14:44
主管缺有限,很多公司都嘛是掛副理或課長, 實際在做資深工程師的事,頂多負責帶新進人員, 並沒有實際負擔管理工作, 且主管還要負責某些溝通� ...

公司各種半強迫罰錢或抽錢的方法

Charlie avatar
By Charlie
at 2016-07-17T11:29
我只能說 有點浪費你待在你說的那個院 我待在那個院八年 這種事在我的主管中 絕對不可能發生 因為他們知道如果一發生 他們應該不是只有調為非� ...

公司各種半強迫罰錢的方法

Emma avatar
By Emma
at 2016-07-17T00:56
剛才在隔壁版看到,上班遲到要罰錢。勾起我的記憶。 我差點忘了,之前我還在財團法人時 也有強制各種抽錢的行為。 至於哪家財團法人,常看我�� ...