My stories 我的故事 Góa ê kò͘-sū - 麥道之旅 - 01 誠實

2019-3-29 23:31 縮簡、聚焦於「誠實」 2,076 字 (23:10 2019/7/15 修訂)

進入麥道服務的確是一件跌破多人眼鏡的事情。許多人問我說,社會學跟社會工作背景怎麼會跟製造飛機發生關係,我自己在踏上那條路之前從沒有想像過怎麼可能。

曾經有一次,我必須選取五年內的F15飛機維修記錄,製成一個資料集讓客戶去研究。標準作業是由我列出需求讓程式員寫程式去選取資料。

我把成果交出去之後,才異想天開地用 SAS(一種在大學研究所裡使用過,最高竿的統計軟體,但是在那些商務部門裡卻沒聽說有人在用)去分析成果。我發現竟然少了兩款飛機記錄。趕快向上司認錯,說出我怎麼發現的,必須重新製作。他嚇了一跳立刻衝過去跟客戶講。客戶說,資料已經研讀完畢,預算的工時用完了。可是,上司仍然讓我重作。

我請寫程式的人檢驗程式。幾天後他說看不出錯在哪裡。然後把程式列印出來叫我檢驗看看。我仔細地閱讀那程式碼後終於找到一個擺錯地方的句點。他也認同我的看法,修改後重新製作資料集交給客戶。皆大歡喜。

事後回顧,還發現另一個不可思議的現象。像我那樣完成任務後才發現錯誤,其實在有些公司可能是不可原諒的。而我完全沒有聽到責備的聲音。

我一直在思考是什麼因素使我不惜成本地立即認錯,設法補救,後來我回台灣服務時體會到有不少人全力掩飾錯誤。到底是什麼因素、什麼基礎造成那大的差異。我唯一想到的是航太工業的本質就是真實,因為任何不實的資訊就是潛在的墜機風險,不誠實的代價太高了。也因此,我一直相信以所謂中華文化掛帥的「環境跟人員」不可能發展出成功的航太事業,因為缺乏「誠實」的文化基礎。他們看重太多的其他「比誠實更重要」的事情。

嚴格講那時我雖然已經工作數年了,還是菜鳥,不夠老練,沒有及時檢驗成果。那個時代,不但基層人員沒有檢驗的知識與技能,我的主管也沒有想到該先檢驗成果。基本上是只知道要撰寫特殊程式,而不知道有工具可以檢驗。我雖然知道有工具可用,卻沒有想到要及時檢驗。其實,那種任務,由我直接運用統計學軟體就一氣呵成而且有證據可證明成果正確。
談到誠實,另一段故事浮現出來了。

有一次,我歸屬的那一股接受了一項特殊任務,要支援另一家民營公司為海軍設計「新工作站」的專案。這是我那部門首次對外營業,直接跟其他公司簽約為他們處理他們設計過程中所產生的資訊。我那個部門很年輕,是公司針對「使用電腦之後才產生的需求」而設立的部門。整個部門一向只作公司內部的支援,我們不必去找客戶、不必招攬生意,沒有簽約的經驗,更不必去討好客戶,因為客戶完全沒有選擇地必須使用我們的服務。那個對外服務的罕見方案。在經歷過三位前輩的參與之後,球跑到我的手上了。起初那兩位接手一陣子以後要求換任務,第三位接手後請長期病假。只剩下我一個人可以承接了。

當客戶提出需要加速作業讓他們每天都看得到新資料時,可以說是整個團隊束手無策。因為大家已經習以為常,認為那個工作串是該系統的本質之一,雖然裡面有第一代參與開發的人員。

可能是因為我湊巧負責那一段關鍵性的「完工」作業,我立刻想到其實就是因為我的成品坐在那邊等隔天再跑一次。我提出製造第三段工作串,把我每天製造出來的資料吸進去處理一次就行了。我講給我的老闆聽,(他就是那位最初設計者)他好高興,就講給程式部門的主管聽。那位主管也聽懂,就指派一位程式撰寫員去執行。可是那位中年轉行的程式撰寫員女士想不通要怎麼執行,結果就由那位程式團隊的主管一字一字地寫給她看。

那一部份其實我也寫得出來,因為我自己在測試的時候經常自己寫工作串來使用,比別人搭順風車進行測試的慣例效率較高。這是另一個尊重工作權的實例。有時為了別人的工作權及表現機會,高手必須節制,讓別人有機會表現。這也是我後來談「高手症候群」論述的內容之一,把會作的事情分給「也會作」的人去建功。

那一段對外服務的經歷還有個重大的插曲。有一天,客戶成群結隊從芝加哥來「新路易」找我們開會興師問罪,說我們的作業有瑕疵,處理出來的資訊不對。說來說去就是我負責的那一段數學運算出問題。我自己站出來講,說我看了需求文獻後,寫出我的解讀,要求開會討論。可是對方寫出需求文獻的人居然說一切都寫得清清楚楚,不必再開會說明了。我只好依照我的解讀去執行了。

我把我的解讀文字交給對方去看。他們要求休會一陣子,退場到另一個會議室去開會討論。不久,他們回到會議室,宣告說我的解讀雖然跟實際的需求不同,可是按照文字並沒有錯,所以不怪我,只要求改正,重來。大家歇了一口氣。

我很敬佩對方的客觀,求真,寧可「不愛國」。其實即使那是我在步兵訓練時就經歷過的事情,但是我在初進入資料處理跟資訊系統的領域時也同樣忽略了。我第一次撰寫程式需求時,分配來為我寫程式的人要求開會瞭解需求。我也是在心裡嘀咕說,已經寫得清清楚楚了,難道看不懂英文。雖然心裡不舒服,還是跟他開會了。

一談開了,才知道,原來就是我們步兵在接受任務時的「複誦」而已。有了複誦才能夠撞見誤會,及時修正。


有多少人記得服役時學到的的內容?這些回憶在準備前往義大利米蘭旅遊之前開始,旅遊期間有幾天閉門不外出而有機會獨處,繼續寫、修訂。越想越有趣。發現麥道航太公司跟「麥航空 McAir」給我的最寶貴傳承竟然是「誠實」。這個話題會繼續在「有關科學」的回憶中再出現。

-----
2019-3-29 19:52 修訂

進入麥道服務的確是一件跌破多人眼鏡的事情。許多人問我說,社會學跟社會工作背景怎麼會跟製造飛機發生關係,我自己在踏上那條路之前從沒有想像過怎麼可能。

我一生從沒有想像過要在商場打滾。沒有想過要在工業界吃飯。更沒有想像過要從事營利工作。從進入小學第一天開始,我就是想像著以後如何當老師。開始時像的是在小學教書。進入中學後想像在中學教書。進入大學後想像當教授,甚至當校長時該如何。真正在大學擔任講師三個學期後,卻不想在學校裡教書了。現在只想用另類的方法教書(嚴格講不喜歡教「書」,只因為不喜歡打分數跟排名次。而只喜歡助人往前走)。

大學畢業後一頭栽進非營利事業擔任社工員三年,也算不亦樂乎。到了美國先從社會學開始進修,然後放棄「專注於社會學」,轉入社工學院,從學習實務開始,後來轉入研究,從沒有想過要專注一種工作,一種專長﹑一種行、一種業、或一個事業,甚至不想專注於一種事業。等到修完四年的博士班課程,進入第五年準備參加資格考時,牽手說已經厭倦學生生活,只想要過正常人的生活,那時我才驚醒,發現青春已經溜走了。

正好,牽手聽說可以經由同事協助把我的履歷表在公司裡傳遞。意思是說「不知道有什麼職缺,只是去探看看會不會引發什麼興趣」。這跟我印象中的美國工商界「不講關係、不講情面」文化很不同。我就匆忙趕出一篇履歷表讓她去玩看看。進去好幾年後才知道麥道的文化很獨特。我不知道附近的國際大公司「夢三多Monsanto」是哪三項多,但是聽說絕對不准家人在同一公司裡面領薪水。
麥道剛好相反,不僅鼓勵員工「牽親引戚 khan-chhin-ín-chhek」,甚至容許夫妻在同一部門工作。經由公司重組以及改換任務之後,我變成跟我牽手在同一位股長手下服務,座位只隔一條走道。直到我離職回台灣服務。另有一對夫婦在我的客戶部門裡工作比鄰而坐,同事竟然都不知道他們是夫妻。

我牽手先在華盛頓大學的東亞圖書館以學生配偶身份打工,專門「插卡」,就是把描述書本的新卡片按照國際通用的書目排序法插入既有的卡片盒子裡,順便校正既有卡片的位置。那些卡片有的是從國家圖書館訂購的,有的則是自己編目製造出來的。那時東亞圖書館的主任是台灣來的蔡汝展先生。後來她變成正式員工,學到圖書編目的技術。然後又不知怎麼搞地轉入歐林圖書總館工作。然後就是以正式員工的身份修讀新開始的「資料處理」,在職學士班學程,由學校付學費。那是個必須已經有個學士學位的人才可參加的學程。那是當地企業界投資栽培突然冒出來,而市面上供不應求的新技能。修習兩年相關專業課程後取得第二個學士學位。她用公費修完一年後,竟然被麥道公司聘走,加入「麥自動 McAuto」專門處理飛機公司的售後服務資訊自動化事務,說穿了就是撰寫商用電腦程式。她的第二個學士學位就這樣繼續由公司付費完成。

她開始正式工作不久我們就設法買一個縣區小社區裡的三房小房子,脫離學校社區過著「夏天割草,冬天掃雪」不像研究生的生活了。不久我們確認不可能生育,不必在孩子身上投資後,一旦她進入飛機公司,我們就遷移到另一個社區換個接近兩倍價錢的房子。想不到那第一個房子竟然以50%的增值一天內就賣出去了。當初原來屋主一直賣不出去,需要負擔兩個房貸,才降價拜託「唯一表示有興趣卻沒有錢的我們」去買的。

這些都是回憶中的題外話。

既然答應提出履歷表了,就要試著把履歷表寫出來了。可是,有什麼履歷好寫的呢?既然不是針對聘方求才的廣告,甚至不知道找什麼職務或職位,履歷表該怎麼寫呢?唯一知道的是牽手的同事們可以幫我在他們的客戶部門裡傳遞我的履歷表。他們是撰寫電腦程式的部門。他們的直接客戶就是售後服務的系統設計部門。系統設計部門的客戶就是多種售後服務的部門,包括零件供應,出版技術手冊、提供教育訓練、安排特殊維護,等等。所以知道假想的聘方是高科技公司裡面處理售後服務的一些「商務」部門。

我在台灣只有擔任過社工員,而且是單打的個案工作員,而不是帶有商務味道的社區工作員。在美國,紐約市曼哈坦,我曾經扮演一家「特殊洗衣服務」的助手,幫助雇主看住在街道邊非法停車下貨的箱型車,必要時開動車子避開交通警察,繞一圈回到原地等候雇主回到車上;替人洗過窗子一次就打消己開業洗窗子的念頭。敢去洗窗子是因為在高雄住日式房子好幾年摸出一個卸、裝橫拉門窗的訣竅;擔任中式餐館的洗碗工一個暑假,擔任中式餐館專任跑堂大約一年半,唸研究所時擔任副業跑堂約六年多。就這些薄弱的經歷,我能怎麼證明我有從事商務服務的基礎與能力呢?

我想出的方法大概可以算是延伸「一魚三吃」的概念吧?在履歷表裡面,我沒有條列經歷職位,而列出數種商務經驗:介紹產品、接單、送貨、開單/收費、進出/使用倉庫、排解顧客糾紛。每一項經驗都來自同一個職務,叫做餐館跑堂,沒有列出換了幾個雇主。另外加上說我的各種背景都跟該飛機公司的系統分析師的工作有共同屬性。(其實還有一項「定貨/排程」好像沒有列進去。就跑堂而言,訂貨與排程,而且是隨時要改變出貨順序與行程,可說是整個作業的焦點,搞不清楚就會弄得皆大不歡,賺不到小費。)

想不到,真的被邀請去面試。而且面試時真的就我所提出的商務履歷聊起來。還問我怎麼說我的社工員跟跑堂經歷跟系統分析類似。我說,社工員在受助者跟社會資源之間傳話、翻譯。跑堂在食客跟儲房之間傳話、翻譯。系統分析是在系統使用者跟程式撰寫員之間傳話、翻譯。(工作數年後才頓悟到「資訊學是行為科學」的道理。「資訊學」是我在教書的三個學期後自行舉辦一場離別演講裡掰出來新學問。這個學問在探討「電腦所處理的「稱為資訊」的人間現象」。這個現象跟人類的歷史一樣長久,卻沒有人去研究、論述。當時,電腦不過是有五十年歷史的新玩具。到現在,「資訊學」仍未誕生,市面上只有「資訊科技」 informatics。現在 22:44 2019/7/15 看到「資訊學」的網頁,指的卻是  informatics。從字面上看,比較向是在談 資訊技術,好比「算術」之不同與「數學」 )

意外地被聘用,就去上班了。工作地點離家很近。走路也可以,只是需要跨過一條限制進入的快速道路,很危險。試過幾次後覺得不值得冒險。

那時公司的售後服務領域裡面使用兩種大電腦:IBM 360/370大電腦,跟 Cyber 公司的 S2K, System 2000, 大電腦。跟航空工程領域使用的電腦不同。(當時,「售後服務」領域在「麥航空 McAir」裡面是一個 division。與設計、裝配、材料等領域並駕齊驅。我忘了「模擬飛行」、「試飛」、「改裝」是屬於那些領域。麥自動 McAuto 則是集團裡跟「麥航空」並駕齊驅的一家獨立公司。「搬運」跟「旅行」好像也各是獨立公司,後來曾經在公司財務危機時輕易地把麥自動切割賣出去給 IBM,立即解除財務危機。裡面的組織、業務、跟員工都沒有改變。)

我在東海大學念社會學的時候全班由教授帶隊去人口中心參觀過一次電腦。說穿了只是參觀電腦室而已。大家脫掉鞋子進入電腦室聽簡報。所謂電腦就是幾個金屬箱子、鍵盤、印表機、跟一些電線,連螢幕都還沒誕生。一點感覺都沒有。我在東海大學樂團擔任樂譜管理員,使用鄭德安教授留美兩年後帶回去的 IBM card 的背面當作書卡,記載樂譜目錄。在新路意華盛頓大學研究所學的是 IBM大電腦,一個人用盡社會工作學院全部的電腦時數配額。副院長曾經問我為什麼都是我一個人用掉那些配額。我說,只是盡量學習而已,不知道為什麼別人不用,也不知道有預算的限制。(由他的質疑可見當時副院長對於電腦資源的運用與管理也不大認識)其他同學大多避電腦而遠之。

我曾經問過同學為什麼不使用電腦,他們回答說到時候用電腦處理研究資料的部分只要花錢請人作就好了。我卻認為若是自己的基礎不夠,不僅是無法辨識別人作出來的過程跟成果是否正確,甚至連希望別人怎麼作都講不清楚。

這種事情後來在一門高級統計學的課程裡以及回台灣服務時就真的體驗了。

在統計學的班上,同學們分工,把一份資料輸入卡片。我輸入完之後,運用一套基本的工具程式,把已經輸入的資料全部列印出來看看。我發現資料在每一個人的80字母的卡片裡的位置不一致。懷疑是有人輸入錯誤。我把那「印件(或「印示品」 printout)拿給教授看,提出我的疑點。一個星期後,他要求一些人重新打卡輸入。

在台灣有許多人,尤其是政府官員真的講不出他們的需求,分辨不出別人提出的工作計畫,甚至連驗收都不會。我曾經遇到政府小官員拒絕我的同事所提出的結案請款,說是有一個款項沒有使用,還有一項請款單據的理由不在計畫範圍。雙方僵持不下,找我設法結案。
我只好用副執行長名義發出一封信給那個政府單位,以行家身份說那個名目不對的單據指的就是那個沒有看到請款單的項目。結案請款的單據裡面的「網頁製作費」,就是核准過的企劃書裡面所列的「電腦編譯費」。當初該單位核准了這一項使用外行話的計畫,而實際上沒有人在編譯電腦,只有人在撰寫「電腦能處理的程式」。製作網頁可以說是撰寫電腦程式讓電腦以特定的格式展示某些特定的內容。有了這封信可存檔為證,對方才同意讓我們結案並撥款。

記得進入麥道不久,有一次,一位資深同事在研判剛剛出現在市面上的第一代個人電腦哪些適合公司採購來使用。他從廠商拿到許多個人電腦樣品來測試,用手寫下相關的數字成為一套矩陣。公司必須認真研判,因為一旦採購,全公司統一處理的採購數量非常驚人,一旦買錯,損失也驚人。他必須親手使用那些電腦,記下一些關鍵數字。我沒有問他是收集什麼數字,要證明什麼。他自己先用計算機計算,不久他就拿那份手寫的數字叫我替他算。我忘了有沒有叫我算什麼。我接下任務,馬上把那些數字輸入 S2K 的統計工具系統裡,儲存起來。那台電腦的輸入是透過終端機的鍵盤,像打字機一般地立即靜靜地顯示在捲動的感光紙上面。我可以一邊打字一邊立即逐一校對更正。確定無誤之後才儲存、跑統計學應用程式計算出一些基本的數字,讓他檢驗分析過的數據。他大概沒有想到我可以使用那台他已經用過一陣子的電腦來代替手工計算。因為我看到他用手操作桌上用的基本計算機計算,也沒有交代我用電腦處理。那些統計功能是我自己在摸索時撞見的,部門裡面只用那電腦做為打卡機的替代品,沒有人教教我怎麼使用、應用。

我在大學修統計學時是用算盤計算的。在考場我是唯一用算盤計算的人,也是唯一帶算盤上大學的人。那是我二年級時, 1965-66年代,計算機還沒有普及。系辦公室裡有一台手搖(不用電力)計算機,是教學時用來示範的。手動計算的負擔在於算過之後沒有把握是不是每一個數字都正確。每次重新演算都可能在不同的地方出錯。所以至少要算三次。取兩次相同的結果。若是三次的結果都不同,就要算第四次,直到有兩次相同。因此,我用算盤計算的確比別人快很多,也使得統計分析有趣得多。想不到我這個討厭算術的人竟然在大學裡多數人討厭統計學的學系裡安度統計學的障礙。

我那個革命性的手法的確幫了不少忙,讓那位把工作交給我的前輩對於分析所得具有信心,因為他可以先檢驗我輸入的那一大堆數字。不過,我踢到鐵板了。從那次起他不但不找我作事情,連講話都減少了。那件事情間接促成我在大學教書時講出來的「高手症候群」理論。意思是說,在職場裡高手很可能營造出許多敵人,除非高手的表現同時也呈現別人的貢獻,讓同事樂得看到高手出招,使他們獲得益處。換句話說,在一群普通工人之中,突出的高手是不受歡迎的,因為會把別人比下去,也會使鑑定「工作表現」的標準提高,增加同事的負擔。(其實,這在我們大一的社會學概論裡就講過。只是當時讀後、聽後都沒有什麼感覺。)

另一個有關使用電腦的經驗也很又趣。那個年代,我們使用 IBM 大電腦處力資料庫。寫好擷取資料排版的指令後要打入卡片,送去讀卡機解讀,擺入既有的電腦排程去排隊,等那些大家公用的程式指令啟動把每個人在等待的指令集吸進去處理。彈性有限,必須配合集體跑程式的排程。湊巧我選過「作業系統」和「電腦工作系列管理語言 Job Control Language」這兩門許多人敬而遠之的課,大約了解如何操縱電腦資源及排程。因此,我可以自己撰寫所需的工作系列,自己決定什麼時候送入電腦排隊。我需要進行的測試就比別人快,又有彈性,隨時可以啟動。使得我的效率比同儕們高。我又經常轉身跟我的股長討論我如何進行測試,如何處理特殊的需求而不受限於別人設置好的固定排程。那時我也開始把每天的任務跟計畫列成清單,逐一實施,記錄進度,隨時更新工作計畫。這些計畫跟上司股長分享後,更會取得他的信任。據我所知,同事們沒有人那樣作。

還有另一樁特殊的手法,就是根據「程式設計文獻」,列出測試的項目。為每一項測試設計測試資料,把測試的期待結果寫在測試資料裡面。這樣不但容易讀出測試結果,也可輕易記錄測試進度,確定測試的完滿程度。避免遺漏。而且有證據說我測試過了。我幾乎成為一位測試專了。

後來,曾經有一次,我必須選取五年內的F15飛機維修記錄,製成一個資料集讓客戶去研究。標準作業是由我列出需求讓程式員寫程式去選取資料。

我把成果交出去之後,才異想天開地用 SAS(一種在大學裡用過,最高竿的統計軟體,在那些商務部門沒有聽說過有人在用)去分析成果。我發現竟然少了兩款飛機記錄。趕快向上司認錯,說出我怎麼發現的,必須重新製作。他嚇了一跳立刻衝過去跟客戶講。客戶說,資料已經研讀完畢,預算的工時用完了。可是,上司仍然讓我重作。

我請寫程式的人檢驗程式。幾天後他說看不出錯在哪裡。然後把程式列印出來叫我檢驗看看。這是很稀罕的事情。那個年代講究工作權,任何人不可以侵犯別人的工作權。辦公室的清潔必須由清潔工動手,我們使用者不准撿起地上的髒物,影響他們的工作。也不可搬動桌椅,因為那是搬運工的工作權。因此,雖然我看得懂程式,也不可以撈過界去讀或寫程式
曾經有一次,臨時接受一個任務,要幫客戶一位大學剛畢業的工程師修理他寫的個人電腦程式。這位大學剛畢業的年輕人積極主動地用下班時間把一套在我們在大電腦上使用、維護的
庫存管理系統改寫成為 IBM個人電腦上的系統以便在航空母艦上使用。

那個年代,個人電腦剛剛上市不久,什麼應用程式都沒有。他是用第一代作業系統 DOS 1.0 內建的 BASIC 程式語言寫的。他自己發明一套儲存的方法,可以快速輸入儲存在容易搜尋、拿出來檢驗、修改的地方。三個月內就完成,可用。不過,美中不足的是無法製造報表。每次下指令製造報表就沒完沒了地等待。從來沒有出現報表過。

我的任務就是要設法讓那個程式能夠製造報表。我需要先自學那套程式語言、找出問題所在、提出解決方法、修改程式讓他變成有用、可用的,還要趕在那航空母艦秘密出航之前交卷,而且不准有錯,因為航空母艦一旦出航,就不可以跟那船艦之外,無論是海上或是陸地的任何單位聯繫。若程式出問題,船上的人要自行處理。相信製造那問題的人也要負相當的責任。這真是天大的小「戰鬥」任務。

我的部門跟協力的程式部門沒有「熟悉個人電腦的人」可派,沒有人願意接單。只有我這一位唯一認真學習個人電腦的傻瓜二話不說就接了。這裡要講的不是我如何解套,而是我如何在不可侵犯程式撰寫員工作權的前提下跟程式撰寫員合作。

有一位程式撰寫員受派跟我合作,但是他宣告對於個人電腦他一竅不通,那時個人電腦不是他們部門的任務範圍內的技術。沒有人可以用上班時間內的工時去學習。我可以怎樣讓他寫程式呢?我的作法是自己寫程式,測試成功之後把原始碼列印出來給他抄。結果是我一個字母一個字母念給他輸入電腦來完成分工合作的任務。這當然是題外話。

回來說那個錯誤的資料集。幸虧我曾經讀過我牽手選修「商用程式語言 COBOL」的教科書後跳過入門班,跟著她一起選修 COBOL 中階班一個學期,不但看得懂,還能夠撰寫、偵錯。其間還有一個有趣的插曲:有一位大學時主修數學的朋友也從初級班開始選那門,跟我在同一個班選修那中階課。有一天他跟我說完全聽不懂所謂 table 是在講什麼。我只回他一個字,matrix (就是高三「大代數」所談的「矩陣」。他一下子就恍然大悟,說懂了。這或許跟我那時已經修過 FORTRAN語言有關吧?) 我仔細地閱讀那程式碼後終於找到一個擺錯地方的句點。他也認同我的看法,修改後重新製作資料集交給客戶。皆大歡喜。

事後回顧,還發現另一個不可思議的現象。像我那樣完成任務後才發現錯誤,其實在有些公司可能是不可原諒的。而我完全沒有聽到責備的聲音。我一直在思考是什麼因素使我不惜成本地立即認錯,設法補救,後來我回台灣服務時體會到有不少人全力掩飾錯誤。到底是什麼因素、什麼基礎造成那大的差異。我唯一想到的是航太工業的本質就是真實,因為任何不實的資訊就是潛在的墜機風險,不誠實的代價太高了。也因此,我一直相信以所謂中華文化掛帥的「環境跟人員」不可能發展出成功的航太事業,因為缺乏「誠實」的文化基礎。他們看太多的其他「比誠實更重要」的事情。

嚴格講那時我雖然已經工作數年了,還是菜鳥,不夠老練,沒有及時檢驗成果。那個時代,不但基層人員沒有檢驗的知識與技能,我的主管也沒有想到該先檢驗成果。基本上是只知道要撰寫特殊程式,而不知道有工具可以檢驗。我雖然知道有工具可用,卻沒有想到要及時檢驗。其實,那種任務,由我直接運用統計學軟體就一氣呵成而且有證據可證明成果正確。
後來,我在另一個任務裡要把舊電腦裡的資料移到新型的資料庫裡面,發現新資料庫管理軟體提供的工具太幼稚,很難完成任務。我也是改用統計學軟體去完成的。這竟然是提供新型資料庫軟體的 IBM不知道的事情。這是我把博士班訓練學到的技能與工具用在商務上的例子。說實在的,那些統計學軟體是過份被我們那些商用部門忽視了。
談到誠實,另一段故事又浮現來了。

有一次,我歸屬的那一個股接受了一項特殊任務,要支援另一家民營公司為海軍設計「新工作站」的專案。這是我那部門首次對外營業,直接跟其他公司簽約為他們處理他們設計過程中所產生的資訊。我那個部門很年輕,是公司針對使用電腦之後才誕生的需求而設立的部門。整個部門一向只作公司內部的支援,我們不必去找客戶、不必招攬生意,沒有簽約的經驗,更不必去討好客戶,因為客戶完全沒有選擇地必須使用我們的服務。漸漸地出現了客戶對我們不滿的現象,也聽到客戶在要求自行向外找支援的聲音。印象中直到我十年後被裁員、資遣,整個部門裡沒有人比我年資淺,也沒有人曾經有過營利事業的經驗。那個對外服務的罕見方案。在經歷過三位前輩的參與之後,球跑到我的手上了。起初兩位接手一陣子以後要求換任務,第三位接手後請長期病假。只剩下我一個人承接了。

我們能接那筆生意是因為我的股長是我們那一套絕無僅有的DBMS(資料庫管理系統)的發想及設計者。那時,到處都有資料櫃、資料夾、跟裡面的手寫或打字的資料表。大部分的人腦子裡沒有「資料庫」這個概念。大學根本沒有開資料庫的課程,當然不用說「資料庫管理」的課程了。當然市面上看不到「資料庫管理系統」這種工具。我來用幾句話簡單說明那是多厲害有有用的工具看看。

IBM電腦把80個字母當作一筆資料來處理。也就是說每一筆資料必須在80個字母的範圍內完成記錄。一旦有超過80姑字母的資訊需要記載,就要使用多個卡片成為一集,好增加容量。我們那資料庫管理系統保留33個字母做為每一筆資料的位址,另家三個字母做為序號。這個序號採用39進位的數列,因此,可以容納很大種類與數目的紀錄。

(十進位的意思是用一個字母的空間裡可以表達從09的十個數字。用兩個字母的空間可以表達10x10也就是從099100個數字。39進位的話,用一個字母的空間可以表達39個數字。兩個字母可以表達39x39,十進位1521個數字。用三個字母的空間就可以表達十進位59,319個數字。若是在一條街名上用十進位個位數登記門牌號碼,就只能登記10個獨特的門牌號碼。但是用39進位的個位數卻可以登記39個門牌號碼。那時我們的39進位是用26個英文字母、阿拉伯數字09,加上一些特殊符號成39個數值。只有我們知道怎麼運算。)

航太企業所牽涉到的紀錄經常是天文數字,不是一般人的十進位算術能夠處理的。因此,我們的售後服務得天獨厚地擁有國防工業裡難搞的資訊生意。記得海軍跟空軍的飛機維修記錄都由我們設計的資料庫保管。這樣我們的工程師也就自然有大數據可以檢討設計與零件的品質與維修手法。

但是我猜想其他公司的產品由各製造公司保管、研讀,因為我從沒有聽說公司持有其他公司產品的維修紀錄。外國公司的飛機,應該是拿不到跟維修有關的售後服務生意,因為跟國防能力及實際狀況息息相關,屬於敏感軍事機密。也因為這樣,麥道航空在開發F-18之後就專注於拿其他公司及外國公司設計的飛機依照國防部的要求修改設計套上獨家特有的售後服務技術,賣給美國國防部,省下自己研發新飛機的成本。我被裁員的時候就是在設計全新的技術手冊撰寫法給「由另一家公司設計,由麥道爭取到訂單及售後服務」的攻擊機。

我的任務是根據客戶書寫的需求撰寫我們的特種程式,擷取每天輸入的資料來加工。
但是因為受到當時「批次作業 batch processing」的限制,每天的加工必須要等到隔天進行另一批次的處理才能完工。也就是新資料進場後要等兩天才看得到那些新資料的結果與影響。這對於設計工作而言是很痛苦的等待。
當年沒有電腦是像今天的電腦一般逐字及時作業的。看資料也不可能逐字叫出來看,而是要整批整批印出來看才有意思,因為每一筆資料只有80個字母,大多不足夠單獨儲存什麼意義。使用電腦時不只要寫出程式,還要寫出「程式工作串 job stream」來配合。
程式由程式撰寫員依照系統設計師的指示來設計。系統設計師還要設計程式工作串來處理生產資訊報表的作業與時程。我們那一套偉大的資料庫管理系統早就由一套「程式工作串」當家,每個人都使用那一套工作串在進行測試與「實產 production」。

實產的工作串實際上是一串程式連跑兩次,像是一班列車每天在固定的時間啟動,一套程式每天跑兩次,每次都要跑半天。大家把各自所需的應用程式送入電腦,指定要搭哪一車。時間一到,列車就把等待中的應用程式拉上車去處理已經取出的共用資料。那時,沒有任何資料是隨時連線online的,取出那些離線資料是一大麻煩事,當電腦獲知有人需要資料時,就通知操作員去把牽涉到的資料磁盤或磁碟找出來,裝讀資料的機器

雖然我在服務那段時間已經演化到由機器代替人工在資料倉庫裡像機器人一般爬上爬下地拿出、放回指定的資料磁帶盤或資料硬碟盒,「存取」仍是大費周章的費時忘寢作業。因此,要儘量節省取放資料硬體的作業。何況存入跟取出資料(叫做I/O)是最消耗電腦時間的作業。

當客戶提出需要加速作業讓他們每天都看得到新資料時,可以說是整個團隊束手無策。因為大家已經習以為常,認為那個工作串是該系統的本質之一,雖然裡面有第一代參與開發的人員。

可能是因為我湊巧負責那一段關鍵性的「完工」作業,我立刻想到其實就是因為我的成品坐在那邊等隔天再跑一次。我提出製造第三段工作串,把我每天製造出來的資料吸進去處理一次就行了。我講給我的老闆,就是那位最初設計者,他好高興,就講給程式部門的主管聽。那位主管也聽懂,就指派一位程式撰寫員去執行。可是那位中年轉行的程式撰寫員女士想不通要怎麼執行,結果就由那位程式團隊的主管一字一字地寫給她看。

那一部份其實我也寫得出來,因為我自己在測試的時候經常自己寫工作串來使用,比別人搭順風車進行測試的慣例效率較高。這是另一個尊重工作權的實例。有時為了別人的工作權及表現機會,高手必須節制,讓別人有機會表現。這也是我後來談「高手症候群」論述的內容之一,把會作的事情分給「也會作」的人去建功。

那一段對外服務的經歷還有個小插曲。有一天,客戶成群結隊從芝加哥來「新路易」找我們開會興師問罪,說我們的作業有瑕疵,處理出來的資不對。說來說去就是我負責的那一段數學運算出問題。我自己站出來講,說我看了需求文獻後,寫出我的解讀,要求開會討論。可是對方寫出需求文獻的人居然說一切都寫得清清楚,不必再開會說明了。我只好依照我的解讀去執行了。
我把我的解讀文字交給對方去看。他們要求休會一陣子,退場到另一個會議室去開會討論。不久,他們回到會議室,宣告說我的解讀雖然跟實際的需求不同,可是按照文字並沒有錯,所以不怪我,只要求改正,重來。大家歇了一口氣。

我很敬佩對方的客觀,求真,寧可「不愛國」。其實即使那是我在步兵訓練時就經歷過的事情,但是我在初進入資料處理跟資訊系統的領域時也同樣忽略了。我第一次撰寫程式需求時,分配來為我寫程式的人要求開會瞭解需求。我也是在心裡嘀咕說,已經寫得清清楚楚了,難道看不懂英文。雖然心裡不舒服,還是跟他開會了。

一談開了,才知道,原來就是我們步兵在接受任務時的「複誦」而已。有了複誦才能夠撞見誤會,及時修正。步兵的複誦之後還有一個動作,叫做對錶。既然約定再見面的時間,當然要對錶,因為大家的錶所顯示的時間都不樣。


有多少人記得服役時學到的的內容?這回憶在準備前往義大利米蘭旅遊之前開始,旅遊期間有幾天閉門不外出而有機會獨處,繼續寫、修訂。越想越有趣。發現麥道航太公司跟「麥航空McAir」給我的最寶貴傳承竟然是「誠實」。這個話題會繼續在「有關科學」的回憶中再出現。

https://www.ted.com/talks/phil_plait_the_secret_to_scientific_discoveries_making_mistakes
-----
進入麥道服務的確是一件跌破多人眼鏡的事情。許多人問我的社會學跟社會工作背景怎麼會跟製造飛機發生關係,我自己都無法想像怎麼可能。

我一生從沒有想像過要在商場打滾。更沒有想像過要從事營利工作。從進入小學第一天開始,我就是想像著以後如何當老師。開始時事想像在小學教書。進入中學後想像在中學教書。進入大學後想像當教授,甚至當校長時該如何。

大學畢業後一頭栽進非營利事業擔任社工員,也算作得不亦樂乎。到了美國先從社會學開始進修,然後轉入社工學院,從實務轉入研究,從沒有想過要專注一種工作,一種專長或一種事業。等到修完四年的博士班課程,進入第五年準備參加資格考時,牽手說已經厭倦學生生活,想要過正常人的生活時才驚醒發現青春已經溜走了。正好,牽手聽說可以經由同事協助把我的履歷表在公司裡傳遞。我就匆忙趕出一篇履歷表讓她去玩看看。

我牽手先在華盛頓大學的東亞圖書館以學生配偶身份打工,專門「插卡」,就是把描述書本的新卡片插入既有的卡片盒子裡,順便校正既有卡片的位置。那些卡片有的是從國家圖書館訂購的,有的則是自己編目製造出來的。那時東亞圖書館的主任是台灣來的蔡汝展先生。後來她變成正式員工,學到圖書編目的技術。然後又不知怎麼搞地轉入歐林圖書總館工作。然後就是以正式員工的身份由學校出錢修讀新開始的「資料處理」學程,限於第二學位的在職學士班。那是當地企業界投資栽培突然冒出來的新技能,而市面上供不應求人力需求。必須是已經有學士學位的人才可參加,修習兩年相關專業課程後取得第二個學士學位。她用公費修完一年後,竟然被麥道公司聘走,加入「麥自動 McAuto」專門處理飛機公司的資訊自動化事務,說穿了就是撰寫商用電腦程式。繼續由公司付費完成學位。

她開始正式工作不久我們就設法買一個縣區小社區裡的三房小房子,脫離學校社區過著「夏天割草,冬天掃雪」不像研究生的生活了。不久我們確認不可能生育在孩子身上投資後,一旦她進入飛機公司,我們就遷移到另一個社區換個接近兩倍價錢的房子。想不到那「原來屋主一直賣不出去才降價拜託唯一表示有興趣卻沒有錢的」我們買的第一個房子竟然以50%的增值一天內就賣出去了。這些都是回憶中的題外話。

既然答應提出履歷表了,就要試著把履歷表寫出來了。可是,有什麼履歷好寫的呢?既然不是針對聘方求才的廣告,甚至不知道再找什麼職務或職位,履歷表該怎麼寫呢?唯一知道的是牽手的同事們可以幫我在他們的客戶部門裡傳遞我的履歷表。他們是撰寫電腦程式的部門。他們的直接客戶就是售後服務的系統設計部門。系統設計部門的客戶就是多種售後服務的部門,包括零件供應,出版技術手冊、提供教育訓練、安排特殊維護,等等。所以知道假想的聘方是高科技公司裡面處理售後服務的一些「商務」部門。

我在台灣只有擔任過社工員,而且是單打的個案工作員,而不是帶有商務味道的社區工作員。在美國,紐約市曼哈坦,我曾經扮演一家「特殊洗衣服務」的助手,幫助雇主看住在接邊非法停車下貨的箱型車,必要時開動車子避開交通警察,繞一圈回到原地等候雇主回到車上;替人洗過窗子一次就打消異己開業洗窗子的念頭。敢去洗窗子是因為在高雄住日式房子時好幾年找到一個卸、裝橫拉門窗的訣竅;擔任中餐館的洗碗工一個暑假,擔任專任跑堂大約一年半,唸研究所時擔任副業跑堂約六年多。就這些薄弱的經歷,我能怎麼證明我有從事商務服務的基礎與能力呢?

我想出的方法大概可以算是延伸「一魚三吃」的概念吧?在履歷表裡面,我不條列經歷職位,而列出五種商務經驗:介紹產品、送貨、開單/收費、進出/使用倉庫、排解顧客糾紛。每一項經驗都來自同一個職務,叫做餐館跑堂。另外加上說我的各種背景都跟該飛機公司的系統分析師的工作有共同屬性。

想不到,真的被邀請去面試。而且面試時真的就我所提出的商務履歷聊起來。還問我怎麼說我的社工員跟跑堂經歷跟系統分析類似。我說,社工員在受助者跟社會資源之間傳話、翻譯。跑堂在食客跟儲房之間傳話、翻譯。系統分析是在系統使用者跟程式撰寫員之間傳話、翻譯。(工作數年後才頓悟到「資訊學是行為科學」的道理)

意外地被聘用,就去上班了。工作地點離家很近。走路也可以,只是需要跨過一條限制進入的快速道路,很危險。試過幾次後覺得不值得冒險。

那時公司的售後服務領域裡面使用兩種大電腦:IBM 360/370大電腦,跟 Cyber System 2000大電腦。(售後服務是一個 division。與設計、製造、材料等領域並駕齊驅。我忘了「模擬飛行」、「試飛」、「改裝」是屬於那些領域。)

我在東海大學念社會學的時候全班由教授帶隊去人口中心參觀過一次電腦。說穿了只是參觀電腦室而已。大家脫掉鞋子進入電腦室聽簡報。所謂電腦就是幾個金屬箱子跟一些電線。一點感覺都沒有。我在東海大學生樂團擔任樂譜管理員,使用鄭德安教授留美兩年後帶回去的IBM card 當作書卡,記載樂譜目錄。大學研究所學的是 IBM大電腦,一個人用盡社工作學院全部的電腦時數配額。副院長曾經問我為什麼都是我一個人用掉那些配額。我說,只是盡量學習而已,不知道為什麼別人不用,也不知道有預算的限制。其他同學大多避電腦而遠之。
我曾經問過同學為什麼不使用電腦,他們回答說到時候用電腦處理研究資料的部分請人作就好了。我卻認為若是自己的基礎不夠,不僅是無法辨識別人作出來的成果跟過程是否正確,甚至連希望別人怎麼作都講不清楚。

這種事情後來在一門高級統計學的課程裡以及回台灣服務時就真的體驗了。在統計學的班上,同學們分工,把一份資料輸入卡片。我輸入完之後,跑一趟工具程式,把已經輸入的資料全部列印出來看看。我發現資料在每一個人的80字母的卡片裡的位置不一致。懷疑是有人輸入錯誤。我把那「印件(或「印示品」 printout」拿給教授看,提出我的疑點。一個星期後,他要求一些人重新輸入。

在台灣有許多人,尤其是政府官員真的講不出他們的需求,分辨不出別人提出的工作計畫,甚至連驗收都不會。我曾經遇到政府小官員拒絕我的同事所提出的結案請款,說是有一個款項沒有使用,還有一項請款單據所陳不在計畫範圍。雙方僵持不下,找我設法結案。

我只好用副執行長名義發出一封信給那個政府單位,,以行家身份說那個名目不對的單據指的就是那個沒有看到請款單的項目。結案請款的單據裡面的「網頁製作費」,就是核准過的企劃書裡面所列的「電腦編譯費」。當初該單位核准了這一項使用外行話的計畫,而實際上沒有人在編譯電腦,只有人在撰寫「電腦能處理的程式」。製作網頁可以說是撰寫電腦程式讓電腦以特定的格式展示某些特定的內容。有了這封信可存檔為證,對方才同意讓我們結案並撥款。

記得進入麥道不久,有一次,一位資深同事在研判剛剛出現在市面上的第一代個人電腦哪些適合公司採購來使用。他從廠商拿到許多樣品電腦來測試,用手寫下相關的數字成為一套矩陣。公司必須認真研判,因為一旦採購,數量驚人,一旦買錯,損失也驚人。他必須親手使用那些電腦,記下數字。我沒有問他是收集什麼數字,要證明什麼。他自己先用計算機計算,不久他就拿那份手寫的數字叫我替他算。我忘了有沒有叫我算什麼。我接下任務,馬上把那些數字輸入 S2K的統計工具系統裡,儲存起來。那台電腦的輸入是透過終端機的鍵盤,像打字機一般地立即靜靜地顯示在捲動的感光紙上面。我可以一邊打字一邊立即逐一校對更正。確定無誤之後才儲存、跑統計學應用程式計算出一些基本的數字,讓他檢驗分析過的數據。他大概沒有想到我可以使用那台他已經用過一陣子的電腦來代替手工計算。因為我看到他用手操作桌上用的基本計算機計算,也沒有交代我用電腦處理。

我在大學修統計學時是用算盤計算的。在考場我是唯一用算盤計算的人,也是唯一帶算盤上大學的人。那是我二年級時, 1965-66年代,計算機還沒有普及。系辦公室裡有一台手搖計算機,是教學時用來示範的。手動計算的負擔在於算過之後沒有把握是不是每一個數字都正確。每次重新演算都可能在不同的地方出錯。所以至少要算三次。取兩次相同的結果。若是三次的結果都不同,就要算第四次,直到有兩次相同。因此,我用算盤計算的確比別人快很多,也使得統計分析有趣得多。

我那個革命性的手法的確幫了不少忙,讓他對於分析所得有信心,因為他可以先檢驗我輸入的那一大堆數字。不過,我踢到鐵板了。從那次起他不但不找我作事情,連講話都減少了。那件事情間接促成我在大學教書時講出來的「高手症候群」理論。意思是說,在職場裡高手很可能建立許多敵人,除非高手的表現同時也呈現別人的貢獻,讓同事樂得看到高手出招,使他們獲得益處。換句話說,在一群普通工人之中,突出的高手是不受歡迎的,因為會把別人比下去,也會使鑑定工作表現的標準提高,增加同事的負擔。(其實,這在我們的社會學概論裡就講過。只是當時讀後、聽後都沒有什麼感覺。)

另一個有關使用電腦的經驗也很又趣。那個年代,我們使用 IBM 大電腦處力資料庫。寫好擷取資料乾排版的指令後要打入卡片,送去讀卡機解讀,擺入既有的電腦排程去排隊,等那些大家公用的程式指令啟動把每個人在等待的指令集吸進去處理。彈性有限,必須配合集體跑程式的排程。湊巧我選過「作業系統」和「電腦工作系列管理語言 Job Control Language」這兩門許多人敬而遠之的課,大約了解如何操縱電腦資源及排程。因此,我可以自己撰寫所需的工作系列,自己決定什麼時候送入電腦排隊。我需要進行的測試就比別人快,又有彈性,隨時可以啟動。使得我的效率比同儕們高。我又經常轉身跟我的股長討論我如何進行測試,如何處理特殊的需求而不受限於別人設置好的固定排程。那時我也開始把每天的任務跟計畫列成清單,逐一實施,記錄進度,隨時更新工作計畫。這些計畫跟上司股長分享後,更會取得他的信任。據我所知,同事們沒有人那樣作。

還有另一樁特殊的手法,就是根據程式設計文獻,列出測試的項目。為每一項測試設計測試資料,把測試的期待結果寫在測試資料裡面。這樣不但容易讀出測試結果,也可輕易記錄測試進度,確定測試的完滿程度。避免遺漏。而且有證據說我測試過了。我幾乎成為一位測試專了。

後來,曾經有一次,我必須選取五年內的F15飛機維修記錄,製成一個資料集讓客戶去研究。標準作業是由我列出需求讓程式員寫程式去選取資料。我把成果交出去之後,才異想天開地用 SAS(一種在大學裡用過,最高級的統計軟體,在那些商務部門幾乎沒有人在用)去分析成果。我發現竟然少了兩款飛機記錄。趕快向上司認錯,說出我怎麼發現的,必須重新製作。他嚇了一跳趕快去跟客戶講。客戶說,資料已經研讀完畢,預算的工時用完了。可是,上司仍然讓我重作。我請寫程式的人檢驗程式。幾天後他說看不出錯在哪裡。然後把程式列印出來叫我檢驗看看。這是很稀罕的事情。那個年代講究工作權,任何人不可以侵犯別人的工作權。辦公室的清潔必須由清潔工動手,我們使用者不准撿起地上的髒物,影響他們的工作。也不可搬動桌椅,因為那是搬運工的工作權。因此,雖然我看得懂程式,也不可以撈過界。

曾經有一次,臨時接受一個任務,要幫客戶一位大學剛畢業的工程師修理他寫的個人電腦程式。這位年輕人積極主動地用下班時間把一套在我們在大電腦上使用、維護的庫存管理系統改寫成為IBM個人電腦上的系統以便在航空母艦上使用。那個年代,個人電腦剛剛上市不久,什麼應用程式都沒有。他是用第一代作業系統 DOS 1.0 內建的 BASIC 程式語言寫的。他自己發明一套儲存的方法,可以快速輸入儲存在容易搜尋、拿出來檢驗、修改的地方。三個月內就完成,可用。不過,美中不足的是無法製造報表。每次下指令製造報表就沒完沒了地等待。從來沒有出現報表過。

我的任務就是要設法讓那個程式能夠製造報表。我需要先自學那套程式語言、找出問題所在、提出解決方法、修改程式讓他變成有用、可用的,還要趕在那航空母艦離按出航之前交卷,而且不准有錯,因為航空母艦一旦出航,就不可以跟那船艦之外,無論是海上或是陸地的任何單位聯繫。若程式出問題,船上的人要自行處理。相信製造那問題的人也要負相當的責任。。這真是天大的小任務。我的部門跟協力的程式部門沒有人可派,沒有人願意接單。只有我這一位唯一認真學習個人電腦的傻瓜二話不說就接了。

這裡要講的不是我如何解套,而是我如何在不可侵犯程式撰寫員工作權的前提下跟程式撰寫員合作。有一位程式撰寫員受派跟我合作,但是他宣告對於個人電腦他一竅不通,那時個人電腦不是他們部門的任務範圍內的技術。沒有人可以用上班時間內的工時去學習。我可以怎樣讓他寫程式呢?我的作法是自己寫程式,測試成功之後把原始碼列印出來給他抄。結果是我一個字母一個字母念給他抄來完成分工合作的任務。這是題外話。

回來說那個錯誤的資料集。幸虧我曾經讀過我牽手選修「商用程式語言 COBOL」的教科書後跳過入門班,跟著她一起選修 COBOL 中階班一個學期,不但看得懂,還能夠撰寫、偵錯。我仔細地閱讀那程式碼後終於找到一個擺錯地方的句點。他也認同我的看法,修改後重新製作資料集交給客戶。皆大歡喜。

事後回顧,還發現另一個不可思議的現象。像我那樣完成任務後才發現錯誤,其實在有些公司可能是不可原諒的。而我完全沒有聽到責備的聲音。我一直在思考是什麼因素使我不惜成本地立即認錯,設法補救,後來我回台灣服務時體會到有不少人全力掩飾錯誤。到底是什麼因素、什麼基礎造成那大的差異。我唯一想到的是航太工業的本質就是真實,因為任何不實的資訊就是潛在的墜機風險,不誠實的代價太高了。也因此,我一直相信以所謂中華文化掛帥的「環境跟人員」不可能發展出成功的航太事業,因為缺乏「誠實」的文化基礎。他們看中太多的其他「比誠實更重要」的事情。

嚴格講那時我雖然已經工作數年了,還是菜鳥,不夠老練,沒有及時檢驗成果。那個時代,不但基層人員沒有檢驗的知識與技能,我的主管也沒有想到該先檢驗成果。基本上是只知道要撰寫特殊程式,而不知道不知道有工具可以檢驗。我雖然知道有工具可用,卻沒有想到要及時檢驗。其實,那種任務,由我直接運用統計學軟體就一氣呵成而且有證據可證明成果正確。

後來,我在另一個任務裡要把舊電腦裡的資料移到新型的資料庫裡面,發現新資料庫管理軟體提供的工具太幼稚,很難完成任務。我也是改用統計學軟體去完成的。這竟然是提供新型資料庫軟體的 IBM不知道的事情。這是我把博士班訓練學到的技能用在商務上的例子。說實在的,那些統計學軟體是過份被我們那些商用部門忽視了。

談到誠實,另一段故事又浮現來了。

有一次,我歸屬的那一個股接受了一項特殊任務,要支援另一家民營公司為海軍設計「新工作站」的專案。這是我那部門首次對外營業,我們直接跟其他公司簽約為他們處理他們設計過程中所產生的資訊。我那個部門很年輕,是公司針對使用電腦之後才誕生的需求而設立的部門。

整個部門一向只作公司內部的支援,我們不必去拉顧客、不必拉生意,沒有簽約的經驗,更不必去討好客戶,因為客戶完全沒有選擇地必須使用我們的服務。漸漸地出現了客戶對我們不滿的現象,也聽到客戶在要求自行向外找支援的聲音。印象中直到我十年後被裁員、資遣,整個部門裡沒有人比我年資淺,也沒有人曾經有過營利事業的經驗。那個對外服務的罕見方案。在經歷過三位前輩的參與之後,球跑到我的手上了。

起初兩位接手一陣子以後要求換任務,第三位接手後請長期病假。只剩下我一個人承接了。我們能接那筆生意是因為我的股長是我們那一套絕無僅有的DBMS(資料庫管理系統)的發想及設計者。那時,到處都有資料櫃、資料夾、跟裡面的手寫或打字的資料表。大部分的人腦子裡沒有「資料庫」這個概念。大學根本沒有開資料庫的課程,當然不用說「資料庫管理」的課程了。當然市面上看不到「資料庫管理系統」這種工具。我來用幾句話簡單說明那是多厲害有有用的工具看看。

IBM電腦把80個字母當作一筆資料來處理。也就是說每一筆資料必須在80個字母的範圍內完成記錄。一旦有超過80姑字母的資訊需要記載,就要使用多個卡片成為一集,好增加容量。我們那資料庫管理系統保留33個字母做為每一筆資料的位址,另家三個字母做為序號。這個序號採用39進位的數列,因此,可以容納很大種類與數目的紀錄。航太企業所牽涉到的紀錄經常是天文數字,不是一般人的十進位算術能夠處理的。因此,我們的售後服務得天獨厚地搶遍國防工業裡難搞的資訊生意。記得海軍跟空軍的飛機維修記錄都由我們設計的資料庫保管。這樣我們的工程師也就自然有大數據可以檢討設計與零件的品質與維修手法。但是我猜想其他公司的產品由各製造公司保管、研讀。外國公司的飛機,應該是拿不到跟維修有關的售後服務生意,因為跟國防能力及實際狀況息息相關,屬於敏感軍事機密。

我的任務是根據客戶書寫的需求撰寫我們的特種程式來擷取每天輸入的資料來加工。但是因為受到當時「批次作業 batch processing」的限制,每天的加工必須要等到隔天進行另一批次的處理才能完工。也就是新資料進場後要等兩天才看得到那些新資料的結果與影響。這對於設計工作而言是很痛苦的等待。當年沒有電腦是像今天的電腦一般逐字及時作業的。看資料也不可能逐字叫出來看,而是要整批整批地看才有意思,因為每一筆資料只有80個字母,大多不足夠單獨儲存存什麼意義。使用電腦時不只要寫出程式,還有有「程式工作串 job stream」來配合。程式由程式撰寫員依照系統設計師的只是來設計。系統設計師還要設計程式工作串的處理生產的作業與時程。我們那一套偉大的資料庫管理系統早就由一套程式工作串當家,每個人都使用那一套工作串在進行測試與「實產 production」。

實產的工作串實際上是一串程式連跑兩次,像是一班列車每天在固定的時間啟動,大家把各自所需的應用程式送入電腦,指定要搭哪一般車。時間一到,列車就把等待中的應用程式拉上車去處理已經取出的共用資料。那時,沒有任何資料是隨時連線online的,取出那些離線資料是一大麻煩事,當電腦獲知有人需要資料時,就通知操作員去把資料磁盤或磁碟找出來,裝上讀資料的機器。雖然我在服務那段時間已經演化到由機器代替人工在資料倉庫裡像機器人一般爬上爬下地拿出、放回指定的資料磁帶盤或資料硬碟盒,「存取」仍是大費周章的費時忘寢作業。因此,要儘量節省取放資料硬體的作業。

當客戶提出需要加速作業讓他們每天都看得到新資料時,可以說是整個團隊束手無策。因為大家已經習以為常,認為那個工作串是該系統的本質之一,雖然裡面有第一代參與開發的人員。可能是因為我湊巧負責那一段關鍵性的「完工」作業,我立刻想到其實就是我的成品坐在那邊等隔天再跑一次。

我提出製造第三段工作串,把我每天製造出來的資料吸進去處理一次就行了。我講給我的老闆,就是那位最初設計者,他好高興,就講給程式部門的主管聽。那位主管也聽懂,就指派一位程式撰寫員去執行。可是那位中年轉行的程式撰寫員女士想不通要怎麼執行,結果就由那位程式團隊的主管一字一字地寫給她看。那一部份其實我也寫得出來,因為我自己在測試的時候經常自己寫工作串來使用,比別人搭順風車進行測試的慣例效率較高。這是另一個尊重工作權的實例。

有時為了別人的工作權及表現機會,高手必須節制,讓別人有機會表現。這也是我後來談「高手症候群」論述的內容之一,把會作的事情分給「也會作」的人去建功。

那一段外務經歷還有個小插曲。有一天,客戶成群結隊從芝加哥來「新路易」找我們開會興師問罪,說我們的作業有瑕疵,處理出來的資料不對。說來說去就是我負責的那一段數學運算出問題。我自己站出來講,說我看了需求文獻後,寫出我的解讀,要求開會討論。可是對方寫出需求文獻的人居然說一切都寫得清清楚,不必再開會說明了。我只好依照我的解讀去執行了。

我把我的解讀文字交給對方去看。他們要求休會一陣子,退場到另一個會議室去開會討論。不久,他們回到會議室,宣告說我的解讀雖然跟實際的需求不同,可是按照文字並沒有錯,所以不怪我,只要求改正,重來。大家歇了一口氣。

我很敬佩對方的客觀,求真,寧可「不愛國」。其實即使那是我在步兵訓練時就經歷過的事情,但是我在初進入資料處理跟資訊系統的領域時也同樣忽略了。我第一次撰寫程式需求時,分配來為我寫程式的人要求開會瞭解需求。我也是在心裡嘀咕說,已經寫得清清楚楚了,難道看不懂英文。雖然心裡不舒服,還是跟他開會了。一談開了,才知道,原來就是我們步兵在接受任務時的「複誦」而已。有了複誦才能夠撞見誤會,及時修正。步兵的複誦之後還有一個動作,叫做對錶。既然約定再見面的時間,當然要對錶,因為大家的錶所顯示的時間都不樣。

有多少人記得軍訓的內容?這陣子回憶在準備前往義大利米蘭旅遊之前開始,旅遊期間有幾天閉門不外出而有機會獨處,繼續寫、修訂。越想越有趣。發現麥道航太公司跟「麥空McAir」給我的最寶貴傳承竟然是「誠實」。這個話題會繼續在「有關科學」的回憶中再出現。(https://www.ted.com/talks/phil_plait_the_secret_to_scientific_discoveries_making_mistakes

Comments

Popular posts from this blog

Dada

Being Taiwanese in USA - exploring the attributes

04 Music in my life - composing for a hymnal