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