What is time boxing?
Time boxing is about fixing the time we have available to work on a given task and then doing the best we can within that time frame. So instead working on something until it is “done” in onesitting, we only work on it for say 30 mins. It is either marked as done at the end of this period or we commit to another 30 mins at a later time or another day.
In software development, an agile team releases new versions of a product to the customer for testing in fixed length iterations, say weekly. The customer and the development team work together to identify the features to be included in each release based on the relative priority and complexity of each task.
Time boxing 是一種管理方法,即在預(yù)算時(shí)間內(nèi)對(duì)完不成的功能進(jìn)行刪減或者延遲,而不是拖延預(yù)算的時(shí)間。用我們熟悉的術(shù)語(yǔ)就是“后墻不倒”。
一個(gè)“Time box”是一個(gè)比較短而且固定長(zhǎng)度的時(shí)間段。在這個(gè)時(shí)間段中,團(tuán)隊(duì)成員要為滿足一個(gè)特定的目標(biāo)做出努力。這個(gè)目標(biāo)可以是一批功能需求或技術(shù)需求,也可以是滿足一個(gè)發(fā)布目標(biāo)(例如,beta測(cè)試應(yīng)支持150個(gè)用戶),還可以是完成一個(gè)可運(yùn)行的原型,等等。
時(shí)間盒的好處
《敏捷迭代開發(fā):管理者指南》
研究表明在提高生產(chǎn)率方面,時(shí)間盒本身能帶來好處。一個(gè)原因就是專注(focus)。Steve McConnell總結(jié)得最好:“你在度假的前一天做完工作,這是一件多么了不起的事情?!毙睦韺W(xué)認(rèn)為安排結(jié)束日期為三周之后,比在三個(gè)月之后設(shè)立可視的里程碑,專注的效果更好。時(shí)間盒被視為是帕金森定律(Parkinson’s Law)的一劑良藥:“如何開展工作?只要有效地填滿完成前的這段時(shí)間。”
無論是迭代,還是整個(gè)項(xiàng)目,時(shí)間盒的另一個(gè)價(jià)值來自人類的一個(gè)怪癖:人們往往記住失誤的日期,而不是失誤的特征。如果將一個(gè)項(xiàng)目延遲3個(gè)月,得到100%所期望的特征集,那么,人們會(huì)認(rèn)為這是一個(gè)“失敗”的項(xiàng)目。假如按時(shí)交付具有75%最重要特征的產(chǎn)品,那么會(huì)被認(rèn)為是一個(gè)成功的項(xiàng)目。
另一個(gè)原因是要求我們處理小級(jí)別的復(fù)雜度。通過為期兩周的小型時(shí)間盒迭代,團(tuán)隊(duì)承擔(dān)的是可管理的復(fù)雜度,做他們力所能及的工作,同時(shí)在可能突破最后期限內(nèi)的情形下,他們有能力縮小工作范圍。數(shù)據(jù)表明,低復(fù)雜度的步驟能夠提高生產(chǎn)率。
時(shí)間盒還有一個(gè)更為微妙的好處就是:盡早促成難度大的決策和權(quán)衡。例如,在一個(gè)Scrum項(xiàng)目中,你受限于30日的時(shí)間盒迭代。在迭代計(jì)劃會(huì)議上,團(tuán)隊(duì)將非?,F(xiàn)實(shí)地考慮哪些工作將納入迭代中,哪些將推遲。由于向客戶的演示正好是30天,因而對(duì)短期目標(biāo)和優(yōu)先級(jí)不能含糊不清。利益相關(guān)人員也被迫盡早嚴(yán)肅地考慮優(yōu)先級(jí)。
其他來源中的總結(jié)
- 時(shí)間盒將混沌框在一處,使大家能夠完全聚焦于滿足達(dá)到成功所必須的最小需求。
- 更好的控制:時(shí)間盒是一個(gè)以時(shí)間盒結(jié)束點(diǎn)的決定為標(biāo)記的短期投資。它使得項(xiàng)目在走得過深而不受控之前,讓風(fēng)險(xiǎn)得到更多的最小化機(jī)會(huì)。頻繁的讓客戶(business owner)來控制預(yù)算和質(zhì)量,使 Surprises 最小化。
- 因?yàn)闀r(shí)間盒很短,所以沒有多少空間來追求完美或鍍金(如加入不十分必要的特性),或?yàn)闈撛诘哪康亩^分的質(zhì)量要求。
- 由于時(shí)間短,它可以更快的反映失敗或更早提供價(jià)值。更早提供價(jià)值,也就意味著生產(chǎn)出了有用的東西(例如:一個(gè)可以工作的模塊、一組功能的部署、滿足一個(gè)技術(shù)需求等等)。
- 更快的反映失敗,使你更快地知道你是否能達(dá)到目標(biāo),滿足需求。換句話說,如果你不知道何去何從,你可以更快地回到起點(diǎn),嘗試其它的途徑。
- 由于時(shí)間盒是以結(jié)果為導(dǎo)向的且需要頻繁做出決定,所以它是極限項(xiàng)目管理中面對(duì)不確定性而保持受控的最重要的技術(shù)之一。
使用方法
Time boxing 是基于實(shí)際生產(chǎn)率的,而不是估算,即那些我們認(rèn)為我們應(yīng)該完成的工作。
- 預(yù)算需求
- 進(jìn)度
- 技術(shù)需求
- 質(zhì)量需求
- 范圍需求
- 必需的技術(shù)力量(質(zhì)量及數(shù)量)
- 客戶滿意度
- 團(tuán)隊(duì)滿意度
由于 Time box 由以下內(nèi)容構(gòu)成:以具體的目標(biāo)為導(dǎo)向做事情,決策者有權(quán)根據(jù)上面的列表內(nèi)容的任何變化做出決定,并以事實(shí)為依據(jù)做事,而不是依據(jù)推測(cè)做事。在這一點(diǎn)上,Time box 是剔除不確定性的一個(gè)工具。而且,與傳統(tǒng)的項(xiàng)目管理理念(計(jì)劃驅(qū)動(dòng)結(jié)果)相反,極限項(xiàng)目管理是以 Time box 中應(yīng)得到的結(jié)果進(jìn)行計(jì)劃定制。
定制時(shí)間盒的過程(The Time boxing Process)
時(shí)間盒在推測(cè)周期(Speculate Cycle)中被識(shí)別,并在創(chuàng)新周期(Innovate Cycle)中被實(shí)現(xiàn)。時(shí)間盒的定義可以被總結(jié)為以下三步:計(jì)劃(Plan)、執(zhí)行(Do)和復(fù)查(Review)
- 計(jì)劃(Plan):這包括對(duì)時(shí)間盒的預(yù)期產(chǎn)出達(dá)成一致,花費(fèi)多少能達(dá)到目標(biāo)(時(shí)間盒的長(zhǎng)度、對(duì)于技能的要求、預(yù)算等),以及度量成功的標(biāo)準(zhǔn)是什么。作為一個(gè)指導(dǎo)原則,一般來說,這一步大約需要時(shí)間盒的15%。
- 執(zhí)行(DO):這意味著做實(shí)際的工作去完成目標(biāo),生產(chǎn)計(jì)劃中的預(yù)期產(chǎn)出。這一步大約點(diǎn)時(shí)間盒的70%。
- 復(fù)查(Review):這一步包括總結(jié)學(xué)到了什么,建議或決定下一個(gè)時(shí)間盒向哪個(gè)方向走。
制定時(shí)間盒的規(guī)則
- 固定時(shí)間盒的長(zhǎng)度(一般為幾天,最高為六個(gè)星期)
- 全生命周期質(zhì)量是極限項(xiàng)目管理的十大共享價(jià)值之一。即一個(gè)時(shí)間盒應(yīng)該基于40小時(shí)/星期這個(gè)工作時(shí)間進(jìn)行計(jì)劃。
- 在每個(gè)時(shí)間盒過程中,不要增加人員。牢記Brook的理論:在一個(gè)滯后的項(xiàng)目中加人只能使其更滯后。
- 時(shí)間盒的結(jié)束日期不可變更。應(yīng)該在有效的時(shí)間里做你能做到的事情,然后再重新組合(re-group)。
- 時(shí)間盒不是用來做績(jī)效考核的。極限項(xiàng)目要處理很多未知內(nèi)容。如果盡最大努力之后,你還沒有滿足時(shí)間盒的要求,你要重組并做出新的決定,決定如何做才能最好的向前推進(jìn)。
- 如果在時(shí)間盒期間需要追加需求,那么原來時(shí)間盒中的某些任務(wù)必須放到以后的時(shí)間盒中。如果有重大變化發(fā)生的話,應(yīng)取消時(shí)間盒,重新計(jì)劃并執(zhí)行新的時(shí)間盒。
- 每日同步。
- 擁抱變化并不意味著混沌,在持續(xù)不斷的變動(dòng)之海中,必須有一個(gè)穩(wěn)定的點(diǎn)。因此,我們必須遵守在迭代與增量開發(fā)方法中的一個(gè)規(guī)則:一旦某個(gè)迭代正在進(jìn)行當(dāng)中,外部的 stakeholder 不能改變這個(gè)迭代中的工作內(nèi)容。Time-Boxing 的用意在于緩沖、在于控制風(fēng)險(xiǎn),不讓整個(gè)開發(fā)過程中因?yàn)闊o窮止的不斷地改變而造成混亂而失去控制,但它更不是拒絕改變或是凍結(jié)需求,而是讓開發(fā)者集中心力把焦點(diǎn)放在最關(guān)鍵或最優(yōu)先的問題上。換句話說,在開發(fā)過程中,Time-Boxing 可限制變動(dòng)只會(huì)發(fā)生在一定的范圍中,而不讓變動(dòng)太過激烈而造成開發(fā)團(tuán)隊(duì)的崩解,或是尋求靜態(tài)平衡而造成一片死寂,它所追求的是處于混沌邊緣的動(dòng)態(tài)平衡,使系統(tǒng)富有足夠的穩(wěn)定與彈性。