軟件開發有些管理者喜歡讓開發人員同時在幾個任務上展開工作,而不是順序地完成它們。 這樣做可能基于以下理解:
任務越早展開,越能盡早暴露問題,從而便于及時解決,降低管理上的風險。
開發任務緊,多任務安排可以增大開發人員的負荷,防止他們偷懶。
多個任務具有相同的優先級,而且彼此之間沒有依賴關系,因而應該同時展開。
任務啟動的早,并不能消除問題,只是把問題提前了。從這個角度講,問題的總量并不會減少。既然這樣,過早地暴露出問題有什么好處呢? 在項目的可用資源(人力、時間)一定的情況下, 我看不到這樣做的好處。 如果項目資源可以增加, 一人多任務的情況就不會出現,也就沒必要討論了。
通過多任務來提高開發人員的工作強度并防止他們偷懶的做法,我認為是幼稚的。管理者應努力和開發人員建立起信任關系,并通過其他方式激發他們的干勁。 當他們像負重的駱駝一樣被對待時,作為會說話的智能生物,開發人員知道如何把超額的重物放在原地,而令管理者覺得他們在負重前行一樣。
一人多任務的安排的問題在于,人不是多核系統。 他只能采用交替工作的方式來“同時”展開多項任務。當他在不同任務間切換時,特定任務上的工作時間就不再連續了。就像單核CPU執行多任務一樣,這是讓開發人員的大腦應用 TDM 技術。不幸,人腦不是高效的 TDM 設備。
無論如何,一人多任務的安排都應該努力避免。 如果僅僅因為優先級相同,那這些任務可以隨機地順序安排。
*[TDM]: Time-division multiplexing,即時分多路復用。