翻譯自:coding horror, Gianni... L'ottimismo
http://www.codinghorror.com/mtype/mt-tb-renamed.cgi/284
在 extreme program explained 一書中, 作者Kent Beck 提到,樂觀主義是程式設計產業上的一個普遍性危機。因為外在表現上的熱誠而過度樂觀,是遊戲設計業上一個特別嚴重的陷阱。書中題到:
現在我們為甚麼都要試著保持對程式的熱忱? 在遊戲產業之中最重要的不是要使團隊有工作的動機嗎? 不是每一本你看過有關管理團隊的書都一再強調使團隊保持工作熱誠是最重要的嗎? 但現實是,從本質上說,遊戲開發人員都是很有工作動機的。每一個遊戲開發者都巴不得要把他們能放最多的內容集中在遊戲之中,動機與熱誠,在這個產業之中是肯定的,除非發生了以下的情況:
l 很多事都做到一半,而且都沒有一件可以在時間內完成,本來開發時間可以設計一個完整關卡可是現在卻用了兩個關卡,每個進度都只有一半。
l 我們都把除錯放到最後,可是最後花費都在恐佈的除錯之中啊。
l 我們隨隨便便的行事,工作散慢。
l 我們被我們的壞脾氣或者老闆的壞脾氣埋沒了。
我們必須把我們連結到工作之中,很多時候我們發現開發不能繼續了,團隊的意見都沒有任可用途的時候,我們已經走得太遠不能回頭。
很多時候程式設計師對工作的熱誠可說是與生俱來的,管理程式設計師錯說觀念的關鍵在於適當的 “挫一下銳氣” 。在Steve McConnell 的一書 classis software development mistakes之中有提到兩個樂觀主義的錯誤:
第一個是樂觀聰明想法:
當我知道許多的計劃都是因為樂觀聰明想法而失敗的時候,我非常震驚。以下的句子我們到底聽過幾遍?
“我們的團隊之中沒有一個團員真的相信我們可以在預定的時間之中完成任務,但是他們相信,只要他們都拼命工作,沒有遇到大的問題,並且在一些情況下順利過關,應該能夠成功的”
“我們的團隊還未有在產品的不同部分之中開發連結介面,可是你知道的,我們團隊溝通良好,而不同部分的連結原理也很簡單,所以我們覺得只需一到兩天我們就可以做好除錯”
“大家都知道負責資料庫子系統的伙伴都是廉價的初學者,我也不知道他們何時才可以追得上我們員工的能力。雖然他們真的不及我們現在員工的經驗豐富,但我相信他們多花一點時間研究,應該可以短期內追上的。”
“我想我們不需要把產品最後修改的標準跟客戶講了,他們一定得付錢了”
“團隊都說他們會花更多的時間去試著在deadline前完成,他們己經落後第一個目標幾個工作天了,但最後他們可以趕上的~!”
聰明的想法不止是樂觀,它就好像閉上你的眼睛去希望一些不實際的東西成真,聰明想法往往導致任務最後需要大拼命,聰明想法是表面上的有計劃其實背道而馳,它可能是程式設計上的一個根本大問題﹐有時比起其他問題加起來還要嚴重啊~!!
如果有實際資料支持的話,樂觀一點沒所謂。
第二個跟樂觀主義有關的程式設計典型錯誤觀念是就英雄主義。沒有人想親口說 “喔我用不了” 但是我的確看見有人因為英雄主義破壞了整個計劃。老實講,跟”笑傲江湖”之人一組還沒那麼慘。
有一些程式設計員非常重視英雄主義,總是覺得有一些英雄氣息會有好處,但我覺得過份強調英雄主義一定弊多於利,一些研究指出,中層的管理階層會獎勵一些 “做得到~沒問題!”的員工多於一些工作穩定,在進度之內的員工。結果引致邊緣政策因的執行 - 進度無從稽考,員工沒到最後一分鐘都不講出他們的進度落後。這樣,一小群的人因為不承認他們進度有問題而破壞了整個公司的聲譽。強調英雄主義會引發難以估計的後果、減低工作中不同層面人員合作的機會。
有一些主管因為太重視 “做得到~沒問題!” 的觀念 ,使員工都變得英雄主義。就是希望甚麼都一定沒問題,最後要進度報告就很悲慘,這些主管就要動用自己的能力去力挽狂瀾,他們總是在問題造成了損害的時候才被告知,就如 DeMacro所說,”我做得到~沒問題!”的行為把一些逐小增加的失敗累積成真正的慘劇。
“做得到~沒問題” 主義的相對觀念不是 “我甚麼都做不到”,而是 “簡單實用主義”,我相信我總是要 “工作在承諾之下而付出努力更多”,不是甚麼都說不行,而是只對必要的事情承諾,並按照且時間盡量按計劃工作,現實一點並不代表就是放棄,相對於盲目的去承諾自己甚麼都做得到,知道並承認自己缺乏甚麼能力更需要勇氣。


