兩個程式設計師的寓言

(翻譯 by 球球)

很久很久以前,有兩家公司「三民」和「四海」互不知道對方,又很湊巧地需要同

樣功能的軟體。

三民僱用了程式設計分析師張三來解決這項問題。同時,四海決定僱用一名剛出道

的程式設計師來看看他是否跟他自稱的能力相符。

有廣泛經驗的張三決定用「PQR結構設計法」,因此他向他的部門經理請求再三名

程式設計師。這小組便開始工作並逐漸產生出初步分析報告。

在四海公司的李四花了一些時間思考這個問題。他的同事常常看到他在他辦公桌翹

著腳喝咖啡。有時候他會出現在他的電腦前面,但是從他有規律的敲鍵盤聲音可以

聽得出來是在打小蜜蜂。

現在,三民公司的程式小組開始寫程式碼。這些人花一半的時間寫碼編碼,另一半

的時間開會討論各模組之間的介面。

李四的同事發現李四終於不打小蜜蜂了。然而他現在一半的時間花在翹著腳喝咖啡

,另一半的時間花在在一張小紙上畫一些東西。他畫的東西看起來不像井字遊戲,

但也看不出來是什麼。

兩個月過了,三民的小組終於發表了實踐時間表。他們打算在往後的兩個月做好一

個測試版。下兩個月的測試和改善應該可以產生出一個完整版。

李四的經理看他已經看不下去了。他決定質問李四。但是當經理進入李四的辦公室

時發現李四正在很快速地輸入程式碼。經理決定延遲這項質問,所以講些好話就走

了。但是經理決定要仔細觀察李四,好在適當的時候能抓到機會質問李四。在不想

要講壞話的情況下,經理很高興地發現李四大部分的時間都很忙,甚至晚吃午餐,

一個星期加班兩三天。

三個月的時間到了,李四公佈他已經做完這個軟體。他的程式有500行程式碼,並

且寫的非常整齊。測試時發現需要的功能都有,事實上他還加了一些方便性的功能

,大量增加使用性。當這個軟體被拿去測試時,除了一個很容易改的粗心錯誤,其

他都沒問題。

這時三民公司的小組完成了四項模組裡的兩項。寫好的模組拿去測試時,他們繼續

寫剩下的。

再三個星期過後,張三宣告初版已經完成,比預定進度早一個星期。他列出了他知

道並打算改進的問題。當這個軟體拿去測試時,測試員發現還有其他張三沒列出來

的問題。張三說這不令人驚訝,畢竟這只是一個初版。

再兩個月,這個小組發表了正式版。它包含2500行程式碼。測試後發現原來列出的

要求都有達到,除了一兩個功能以外。而且它對於資料輸入的格式有點奇怪。但是

三民公司決定安裝該軟體。他們可以訓練他們的基層人員輸入資料時一定要遵從某

些格式。然後這個軟體就交給了程式維護師來維護和慢慢加入缺乏的功能。

續集:

一開始李四的經理印象不錯,但是他讀了程式碼之後發現該軟體比他本來想像得簡

單。看起來該軟體的程度連剛出道的程式設計師都可以輕鬆對付。李四平均每天寫

五行程式碼。雖然這比業界的平均多一些,考慮這軟體簡單的程度,其實這不算什

麼。而且他的經理記得李四打混兩個月。下次的薪水調整時李四得到的加薪是通貨

膨脹的一半。他沒有獲得升遷。一年後他覺得不受重用就離開了四海。

在三民公司,張三因為準時交貨受到誇獎。他的經理花了幾分鐘看這項軟體的程式

碼後發現該公司的結構程式標準有被遵守,但很快地他就放棄繼續讀下去,因為實

在很難懂。他現在覺得該軟體比他本來想像得困難,所以又再恭喜張三。三民的程

式小組平均每天每人寫出三行程式碼,這跟業界的平均差不多。但是因為該軟體的

複雜度,這樣算很好的。張三獲得大量的加薪,並升遷到系統分析師。

 

原著:(美國)伊利諾大學芝加哥校區,數學統計電腦科學系,Neil W. Rickert

Neil W. Rickert, Dept. of Math, Stat., and Computer Science, University

of Illinois at Chicago.


這篇文章很久之前就在我朋友的個板上看過了,

工作一陣子後,卻有深深的體會…

任務的困難度是取決於老闆的觀點,畢竟,他是沒有自己跳下來做這件事。

留言

熱門文章