軟件開發(fā)如何規(guī)避時(shí)間碎片化的坑?

    為什么討論時(shí)間的碎片化 ?


    產(chǎn)生有效成果的智力活動(dòng),總是需要連續(xù)的時(shí)間來(lái)保證。許多忘我思考的典故都證明了這一點(diǎn)。 軟件開發(fā)是一種智力活動(dòng),因此也遵循這一道理。 打斷某人的工作,不論是智力工作還是體力工作,對(duì)工作的效率和產(chǎn)出總會(huì)產(chǎn)生負(fù)面影響。 只不過(guò)與體力勞動(dòng)不同, 智力勞動(dòng)受到這方面的負(fù)面影響要大得多。 對(duì)一名建筑工人,如果他連續(xù)工作的60分鐘被打斷成3個(gè)不連續(xù)的20分鐘, 其產(chǎn)出與連續(xù)工作60分鐘相比,是基本一致的。而對(duì)一名軟件開發(fā)人員,3個(gè)不連續(xù)的20分鐘內(nèi)的工作成果,恐怕只能相當(dāng)連續(xù)的40分鐘的成果。有20分鐘的時(shí)間被丟失了。 為什么會(huì)這樣? 誰(shuí)偷走了他的時(shí)間?下文試圖給出解釋。



    時(shí)間如何破碎 ?


    仔細(xì)觀察我們每天的工作時(shí)間花費(fèi)就不難發(fā)現(xiàn),存在**的時(shí)間斷點(diǎn)把我們本來(lái)連續(xù)的工作時(shí)間碎片化。午休、倒咖啡、去洗手間等等。除此之外,一些偶發(fā)的事件也能打斷我們的思緒,比如一個(gè)電話,一個(gè)郵件提醒,或一個(gè) MSN 消息。 我們不是古廟里的僧侶, 因此塵世中的干擾總是存在。 但這些不是本文討論的內(nèi)容。 我想討論的, 是在軟件開發(fā)管理中不合理的做法導(dǎo)致的時(shí)間碎片化。

    我認(rèn)為以下做法是不合理的。


    • 一人多任務(wù)

    • 過(guò)分強(qiáng)調(diào)面對(duì)面溝通

    • 過(guò)多的全體會(huì)議



    一人多任務(wù)


    有些管理者喜歡讓開發(fā)人員同時(shí)在幾個(gè)任務(wù)上展開工作,而不是順序地完成它們。 這樣做可能基于以下理解:


    1. 任務(wù)越早展開,越能盡早暴露問(wèn)題,從而便于及時(shí)解決,降低管理上的風(fēng)險(xiǎn)。

    2. 開發(fā)任務(wù)緊,多任務(wù)安排可以增大開發(fā)人員的負(fù)荷,防止他們偷懶。

    3. 多個(gè)任務(wù)具有相同的**級(jí),而且彼此之間沒(méi)有依賴關(guān)系,因而應(yīng)該同時(shí)展開。


    任務(wù)啟動(dòng)的早,并不能*問(wèn)題,只是把問(wèn)題提前了。從這個(gè)角度講,問(wèn)題的總量并不會(huì)減少。既然這樣,過(guò)早地暴露出問(wèn)題有什么好處呢? 在項(xiàng)目的可用資源(人力、時(shí)間)一定的情況下, 我看不到這樣做的好處。 如果項(xiàng)目資源可以增加, 一人多任務(wù)的情況就不會(huì)出現(xiàn),也就沒(méi)必要討論了。


    通過(guò)多任務(wù)來(lái)提高開發(fā)人員的工作強(qiáng)度并防止他們偷懶的做法,我認(rèn)為是幼稚的。管理者應(yīng)努力和開發(fā)人員建立起信任關(guān)系,并通過(guò)其他方式激發(fā)他們的干勁。 當(dāng)他們像負(fù)重的駱駝一樣被對(duì)待時(shí),作為會(huì)說(shuō)話的智能生物,開發(fā)人員知道如何把**額的重物放在原地,而令管理者覺(jué)得他們?cè)谪?fù)重前行一樣。


    一人多任務(wù)的安排的問(wèn)題在于,人不是多核系統(tǒng)。 他只能采用交替工作的方式來(lái)“同時(shí)”展開多項(xiàng)任務(wù)。當(dāng)他在不同任務(wù)間切換時(shí),特定任務(wù)上的工作時(shí)間就不再連續(xù)了。就像單核CPU執(zhí)行多任務(wù)一樣,這是讓開發(fā)人員的大腦應(yīng)用 TDM 技術(shù)。不幸,人腦不是高效的 TDM 設(shè)備。

    無(wú)論如何,一人多任務(wù)的安排都應(yīng)該努力避免。 如果僅僅因?yàn)?*級(jí)相同,那這些任務(wù)可以隨機(jī)地順序安排。

    *[TDM]: Time-division multiplexing,即時(shí)分多路復(fù)用。



    過(guò)分強(qiáng)調(diào)面對(duì)面溝通


    面對(duì)面溝通是敏捷開發(fā)實(shí)踐中強(qiáng)調(diào)的一個(gè)重點(diǎn)。許多管理者據(jù)此在整個(gè)組織內(nèi)鼓勵(lì)面對(duì)面的交流。我不認(rèn)為這是一個(gè)好的做法。敏捷開發(fā)隊(duì)伍是由 自組織 (self-organized)的小團(tuán)隊(duì)構(gòu)成。敏捷開發(fā)中面對(duì)面溝通是指自組織團(tuán)隊(duì)內(nèi)部的溝通。這種內(nèi)部的溝通,被證明是高效的。 但是,把這種方式推廣到自組織團(tuán)隊(duì)的邊界之外,則是糟糕的做法。外部的溝通以受控的、相對(duì)正式的方式進(jìn)行,是對(duì)自組織的團(tuán)隊(duì)的保護(hù),使之免受干擾。自組織團(tuán)隊(duì)就像封裝良好的軟件組件。它應(yīng)該是內(nèi)聚的,外部只能通過(guò)定義良好的接口與之交互。


    很多時(shí)候,面對(duì)面交流,僅僅是提高了交流發(fā)起者的效率而已。(甚至這一點(diǎn)也值得懷疑,因?yàn)榻?jīng)過(guò)仔細(xì)斟酌寫下的文字,通常要比現(xiàn)場(chǎng)發(fā)揮的言語(yǔ)表達(dá)的較清楚)。當(dāng)你禮貌地找某人談話時(shí),你已經(jīng)禮貌地打碎了他的時(shí)間。你在損害他的效率。


    說(shuō)到這里,請(qǐng)讀者不要誤解。我不是在鼓勵(lì)開發(fā)人員成為像患有自閉癥一樣的程序怪人。我只是想強(qiáng)調(diào),過(guò)多的當(dāng)面交流會(huì)導(dǎo)致時(shí)間的碎片化,從而影響整個(gè)團(tuán)隊(duì)的效率。 有其他溝通方式(比如郵件),能把對(duì)他人的干擾降低。



    過(guò)多的全體會(huì)議


    喜歡召開全體會(huì)議的團(tuán)隊(duì)**者,在召開全體會(huì)議前請(qǐng)思考,會(huì)議內(nèi)容是否是每個(gè)人都必須知道的? 是否是必須口頭傳達(dá)給每個(gè)人的 ? 如果是一場(chǎng)討論會(huì),是否這些人都需要參與到討論中來(lái)? 由于全體會(huì)議打斷了每個(gè)參與者的時(shí)間,時(shí)間碎片化效果擴(kuò)展到了全體,因而影響較大。



    時(shí)間碎片化的后果


    時(shí)間碎片化有兩個(gè)主要后果,即有效工作時(shí)間的減少和發(fā)生缺陷的可能性增大。


    有效工作時(shí)間的減少


    軟件開發(fā)工作是劇烈的腦力活動(dòng)。象引擎一樣,人的大腦在進(jìn)入高速運(yùn)轉(zhuǎn)前,需要一個(gè)預(yù)熱和啟動(dòng)過(guò)程。讓我姑且稱這里消耗的時(shí)間為“思維引導(dǎo)時(shí)間”( Mind Bootstrap Time , MBT )。這一時(shí)間的長(zhǎng)短,取決于你面對(duì)問(wèn)題的復(fù)雜性(和昨晚的睡眠質(zhì)量?)。 比如, 某人的談話如果被打斷后,他可能會(huì)問(wèn)“我剛才講到哪里了?”。要繼續(xù)之前的談話,他就需要重新思考交談的內(nèi)容并從被打斷處開始。這里花費(fèi)的時(shí)間,就是 MBT 。 對(duì)一段談話來(lái)講, MBT 可能只需幾秒鐘。對(duì)軟件開發(fā)活動(dòng),則可能需要好幾分鐘。


    現(xiàn)在已經(jīng)不再是一個(gè)文本編輯器解決所有問(wèn)題的軟件開發(fā)時(shí)代了。比如對(duì)一個(gè)典型的 JEE 開發(fā)項(xiàng)目,我們應(yīng)該很容易理解一個(gè)程序員早上寫下**行代碼前所做的以下操作:


    1. 打開 Eclipse IDE 。在 Eclipse 歡迎界面下的滾動(dòng)條努力向前的時(shí)候,

    2. 啟動(dòng)開發(fā)用數(shù)據(jù)庫(kù)服務(wù)(比如 HSQLDB )。在數(shù)據(jù)庫(kù)服務(wù)啟動(dòng)日志還在 DOS 窗口翻滾的時(shí)候, 他

    3. 打開數(shù)據(jù)庫(kù) GUI 客戶端。接著,

    4. 啟動(dòng) tomcat 。

    5. 在 Eclipse中打開昨天工作中的Java源文件,開始編寫今天的**行代碼。


    我把這一過(guò)程所花費(fèi)的時(shí)間,稱作“環(huán)境準(zhǔn)備時(shí)間”,即Environment Preparation Time(EPT) 。 如果連續(xù)的開發(fā)時(shí)間被打斷,開發(fā)人員可能需要重復(fù)這一過(guò)程。 EPT 會(huì)因開發(fā)環(huán)境的不同而長(zhǎng)短不同,但這部分時(shí)間總是存在的。


    讓我把 MBT 和 EPT 稱作斷點(diǎn)時(shí)間。 斷點(diǎn)時(shí)間不是有效的工作時(shí)間,因?yàn)樗鼈儾荒軒?lái)直接的產(chǎn)出。 這里想強(qiáng)調(diào)的是, 有效工作時(shí)間是必需的消耗,而斷點(diǎn)時(shí)間總是可以通過(guò)減少時(shí)間碎片來(lái)減少或避免的。如果時(shí)間連續(xù)性已經(jīng)被打斷, 斷點(diǎn)時(shí)間還能被*嗎? 我認(rèn)為答案是否定的。


    碎片化的時(shí)間, 就像被田埂分割的土地。分割的越多,實(shí)際可種植面積就越少,不論田埂修的多狹窄。


    *[MBT]: 思維引導(dǎo)時(shí)間,即 Mind Bootstrap Time。 
    *[EPT]: 環(huán)境準(zhǔn)備時(shí)間,即Environment Preparation Time。 
    *[JEE]: Java Enterprise Edition 。 Java開發(fā)企業(yè)應(yīng)用軟件的一套規(guī)范、工具、以及框架。 
    *[IDE]: Integrated Development Environment,即集成開發(fā)環(huán)境。 
    *[Eclipse]: 一款流行的 Java 集成開發(fā)工具。 
    *[tomcat]: 一款流行的java web(servlet)服務(wù)器。 
    *[HSQLDB]: 一款Java開發(fā)的輕量的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。


    發(fā)生缺陷的可能性增大


    打碎的玻璃杯子被重新粘合后可恢復(fù)完整并繼續(xù)使用。但粘合的痕跡讓它不再美觀。較重要的是,重新粘合可能引入缺陷:接縫處未對(duì)齊的話會(huì)產(chǎn)生縫隙;粘合材料和杯子本身材質(zhì)的不同會(huì)使整個(gè)杯子的應(yīng)力不均,從而使它比以前較容易炸裂。


    通過(guò)重新進(jìn)入狀態(tài)并找到上次離開時(shí)的工作點(diǎn),開發(fā)人員可以接續(xù)之前被打斷的工作。但就象重新粘合的杯子一樣,這里不僅有直接的有效工作時(shí)間損失,較有可能引入后續(xù)問(wèn)題。 “我剛才寫到哪一行了?”,重新回到代碼前的程序員可能會(huì)這樣問(wèn)自己。通過(guò)回想,他找到了離開時(shí)正在完成的switch結(jié)構(gòu)并繼續(xù)編寫下一個(gè)case子句。不幸的是,**個(gè)case子句遺漏了本該有的break。一個(gè)bug就這樣產(chǎn)生了。修復(fù)此bug的時(shí)間可能是撰寫這部分代碼的數(shù)倍[1]。


    這個(gè)引入bug的例子很容易應(yīng)用到其他開發(fā)工作上,比如需求分析、系統(tǒng)設(shè)計(jì)、測(cè)試等。簡(jiǎn)單講,時(shí)間的碎片化使得開發(fā)過(guò)程中發(fā)生缺陷的可能性增大。人腦雖然比電腦復(fù)雜的多,但在斷點(diǎn)管理方面,可比后者差很多。


    濟(jì)南道梵網(wǎng)絡(luò)科技有限公司專注于軟件系統(tǒng)開發(fā)公司等

  • 詞條

    詞條說(shuō)明

  • 什么是多用戶商城系統(tǒng)?為什么要開發(fā)

    什么是多用戶商城系統(tǒng)?多用戶商城系統(tǒng)就是讓眾多商家都可以入駐網(wǎng)站,商家可以開設(shè)自己獨(dú)立的店鋪。一般多用戶商城系統(tǒng)模式就是b2b2c商業(yè)模式,通過(guò)多用戶商城系統(tǒng),可以把供應(yīng)商,經(jīng)銷商,消費(fèi)者匯聚在一起。這種模式也是從B2B/B2C模式發(fā)展過(guò)來(lái)的。是互聯(lián)網(wǎng)電子商務(wù)飛速發(fā)展下創(chuàng)新出的一種新型電商模式。像我們現(xiàn)在熟悉的天貓,京東都是采用多用戶商城系統(tǒng)模式,他們的成功也見證了這是目前為止較為完善的商城系統(tǒng)。

  • 軟件開發(fā)如何規(guī)避時(shí)間碎片化的坑?

    為什么討論時(shí)間的碎片化 ? 產(chǎn)生有效成果的智力活動(dòng),總是需要連續(xù)的時(shí)間來(lái)保證。許多忘我思考的典故都證明了這一點(diǎn)。 軟件開發(fā)是一種智力活動(dòng),因此也遵循這一道理。 打斷某人的工作,不論是智力工作還是體力工作,對(duì)工作的效率和產(chǎn)出總會(huì)產(chǎn)生負(fù)面影響。 只不過(guò)與體力勞動(dòng)不同, 智力勞動(dòng)受到這方面的負(fù)面影響要大得多。 對(duì)一名建筑工人,如果他連續(xù)工作的60分鐘被打斷成3個(gè)不連續(xù)的20分鐘, 其產(chǎn)出與連續(xù)工作60

  • App開發(fā),怎樣又快又穩(wěn)又清晰

    速度、質(zhì)量和可維護(hù)性 對(duì)速度、質(zhì)量和可維護(hù)性的要求,其實(shí)就是又快,又穩(wěn),又清晰的要求。 快:快其實(shí)是較容易做到,或者說(shuō)較容易知道能不能做到的事情,熟悉的Android開發(fā)的朋友都知道,如果能理清業(yè)務(wù)邏輯,不受干擾地投入開發(fā),開發(fā)速度可以很快,一般普通規(guī)模的App,一到兩周就能完成。 穩(wěn):穩(wěn)不像快,可以簡(jiǎn)單地用時(shí)間進(jìn)行即時(shí)的量化評(píng)價(jià),我們要等大量bug出現(xiàn)之后,才知道穩(wěn)不穩(wěn),可是一般趕工速度一快起

  • 微商后臺(tái)管理系統(tǒng)方案開發(fā)

    微商管理系統(tǒng)后臺(tái)主要功能:將圍繞產(chǎn)品管理、團(tuán)隊(duì)管理、訂貨發(fā)貨、防偽、控價(jià)、招商制度、運(yùn)營(yíng)培訓(xùn)、退貨機(jī)制、線上線下9大**內(nèi)容,幫微商解決運(yùn)營(yíng)難題。進(jìn)入社交電商領(lǐng)域涉足微商的企業(yè),你們技術(shù)合作伙伴可以選擇我們,支持全新定制微商系統(tǒng)開發(fā)和特殊需求定制開發(fā)服務(wù)。微商代理下單系統(tǒng)其功能如下:1、代理商在線授權(quán)微商企業(yè)或上級(jí)代理在系統(tǒng)后臺(tái)一鍵生成邀請(qǐng)碼,招募代理商,被邀請(qǐng)代理只需填寫姓名、電話、級(jí)別、代理品

聯(lián)系方式 聯(lián)系我時(shí),請(qǐng)告知來(lái)自八方資源網(wǎng)!

公司名: 濟(jì)南道梵網(wǎng)絡(luò)科技有限公司

聯(lián)系人: 陳蘇

電 話:

手 機(jī): 13156105921

微 信: 13156105921

地 址: 山東濟(jì)南槐蔭區(qū)濟(jì)南市槐蔭區(qū)發(fā)祥1號(hào)公館

郵 編: 254000

網(wǎng) 址: daofan.b2b168.com

八方資源網(wǎng)提醒您:
1、本信息由八方資源網(wǎng)用戶發(fā)布,八方資源網(wǎng)不介入任何交易過(guò)程,請(qǐng)自行甄別其真實(shí)性及合法性;
2、跟進(jìn)信息之前,請(qǐng)仔細(xì)核驗(yàn)對(duì)方資質(zhì),所有預(yù)付定金或付款至個(gè)人賬戶的行為,均存在詐騙風(fēng)險(xiǎn),請(qǐng)?zhí)岣呔瑁?
    聯(lián)系方式

公司名: 濟(jì)南道梵網(wǎng)絡(luò)科技有限公司

聯(lián)系人: 陳蘇

手 機(jī): 13156105921

電 話:

地 址: 山東濟(jì)南槐蔭區(qū)濟(jì)南市槐蔭區(qū)發(fā)祥1號(hào)公館

郵 編: 254000

網(wǎng) 址: daofan.b2b168.com

    相關(guān)企業(yè)
    商家產(chǎn)品系列
    • 產(chǎn)品推薦
    • 資訊推薦
    關(guān)于八方 | 八方幣 | 招商合作 | 網(wǎng)站地圖 | 免費(fèi)注冊(cè) | 一元廣告 | 友情鏈接 | 聯(lián)系我們 | 八方業(yè)務(wù)| 匯款方式 | 商務(wù)洽談室 | 投訴舉報(bào)
    粵ICP備10089450號(hào)-8 - 經(jīng)營(yíng)許可證編號(hào):粵B2-20130562 軟件企業(yè)認(rèn)定:深R-2013-2017 軟件產(chǎn)品登記:深DGY-2013-3594
    著作權(quán)登記:2013SR134025
    Copyright ? 2004 - 2025 b2b168.com All Rights Reserved