軟件開發(fā)中的deadline的一些問題及解決方案
大?。?/span>0.12 MB 人氣: 2017-10-10 需要積分:1
標(biāo)簽:Deadline(4044)
?日常談話中有多少次你在談到deadline(期限)時,曾至少有一個人對這個概念嗤之以鼻?我已經(jīng)聽過太多次了,甚至連我自己也這么干過,不過現(xiàn)在我想改正這一習(xí)慣。
軟件領(lǐng)域較之于傳統(tǒng)的印刷媒體(print media)有很大的不同,而deadline的概念就是從傳統(tǒng)的印刷媒體中得來。然而,不能僅因?yàn)槟壳霸谲浖I(lǐng)域尚無通用的deadline概念,就以為該摒棄這個概念,或以為它沒有價(jià)值。
就工作的規(guī)劃和并行處理來說,deadline是極其重要的。如果沒有預(yù)計(jì)的完工期限,所有團(tuán)隊(duì)都必須連軸工作,同時也會大大減少交付次數(shù)。而且如果不明白deadline的真正含義,那么deadline可能會讓人感到沮喪,甚至產(chǎn)生相反的效果。
問題及解決方案
以下是根據(jù)我的經(jīng)驗(yàn)總結(jié)出來的,在工程公司中與deadline最為相關(guān)的問題,以及最有可能解決問題的辦法。
1)對deadline的理解因人而異
A:“下周才是deadline,我還有大把的閑余時間!”
B:“為什么要擔(dān)心這個?沒關(guān)系的,deadline什么的當(dāng)不得真?!?br /> A:“但我不想被炒魷魚?。 ?br /> 這組對話就很形象地展示了對同一個deadline,A和B兩人在理解上有著巨大的差異,這也會導(dǎo)致整個團(tuán)隊(duì)在努力實(shí)現(xiàn)deadline時出現(xiàn)困惑與挫敗感。
事實(shí)上,deadline必須要有號召力,每個人都得知道deadline重要的原因,他們必須明白錯過deadline會對整個圈子有什么樣的影響,包括對其他團(tuán)隊(duì)的、對客戶的或者對公司整體的影響。
更重要的是,那些達(dá)成的deadline需要熱烈的慶祝,而這一點(diǎn)常被忽視掉。比起責(zé)備那些錯過deadline的員工,建立起為達(dá)成deadline慶祝的企業(yè)文化才是上上之策。
2)在項(xiàng)目的生命周期中過早設(shè)定deadline
A:“嘿,我們得完成這項(xiàng)工作【插入一個真的非常難的未知項(xiàng)目】,什么時候能干完?”
B:【快速搜了一下到底是什么工作】“額,我不確定?!?br /> A:“我需要一個確切的deadline?!?br /> B:“三,呃四個……月嗯周……月吧,四個月!”
A:“好極了,到時候見?!?br /> 向一個各方面都屬于未知狀態(tài)的項(xiàng)目要求一個deadline簡直后患無窮,也讓項(xiàng)目涉及到的員工壓力很大,為項(xiàng)目立起了失敗flag。所以,先深呼吸,耐心等兩天,讓大家完成探索工作。雖然搜集信息花費(fèi)了時間,但之后我們卻能給出有意義的評估,這些信息會幫助我們設(shè)定更加準(zhǔn)確的deadline。
3)deadline更新頻度不夠
A:“這個項(xiàng)目要在5天內(nèi)完成,目前進(jìn)度ok嗎?”
B:“有一點(diǎn)落后,不過不要緊,我們會按期完工的?!?br /> A:“好極了!”
【4天23小時后】
A:“再檢查一下項(xiàng)目,準(zhǔn)備好發(fā)布了嗎?”
B:“額,還沒,出了點(diǎn)問題,目測還得一個禮拜?!?br /> A:“$%@!*”
在這個案例中,在新問題出現(xiàn)時,開發(fā)人員并未調(diào)整或重新評估deadline,B沒能立即提出問題,而是等到deadline才告知他人,于是A也受此牽連,而整個團(tuán)隊(duì)也會因?yàn)橐s工另一個deadline而倍感壓力。
設(shè)定deadline不應(yīng)當(dāng)是為了強(qiáng)迫員工超額負(fù)荷,把人當(dāng)牲口用,而應(yīng)用以設(shè)定外部對項(xiàng)目的預(yù)期,讓計(jì)劃呈現(xiàn)可預(yù)期性。Deadline必須盡可能準(zhǔn)確地反映現(xiàn)實(shí)情況,否則一旦出現(xiàn)信任危機(jī),這個概念也就失去了傳遞可預(yù)期性的功能。當(dāng)然,我不提倡每小時或每天更新deadline的行為,但也許每周更新,或至少按標(biāo)準(zhǔn)計(jì)劃的節(jié)奏來更新是個不錯的主意。
更新deadline并不拘于延長時間,也可以縮短周期。至于具體怎么做,又或者兼而有之,都得工程師和產(chǎn)品團(tuán)隊(duì)商榷后確定。
4)未將所有“已知工作”都納入考慮范圍,僅考慮到了有趣的那些
A:“這個功能多久能交付?”
B:“兩周。”
【兩周后】
A:“怎么沒完工?”
B:“額,技術(shù)上來說已經(jīng)完工,我們現(xiàn)在在測試,要給它新建一個部署機(jī)制,會先發(fā)布一個beta版。另外上周我休假了?!?br /> 在設(shè)定這個deadline時,相關(guān)人員對要完成的工作以及要投入的時間缺乏完整的理解,更別提該案例中B也出現(xiàn)了上面第三條的問題。
在設(shè)定deadline時,我們應(yīng)當(dāng)確保將所有已知的挑戰(zhàn)都涵蓋在內(nèi),是否會因某個已知原因而浪費(fèi)一些時間,比如說度假、公司斷網(wǎng)、因?yàn)樯张蓪λ拮矶t到?
另外我們是否可能遺忘了某些不起眼的任務(wù)?這個項(xiàng)目打算寫多少測試?如何將這玩意兒發(fā)布到生產(chǎn)環(huán)境中?跟著這些問題放慢腳步,仔細(xì)思考下整個過程以及可用的資源。這樣做會讓設(shè)定deadline簡單得多,同時這樣設(shè)定出的deadline也更經(jīng)得起考驗(yàn)。
關(guān)于評估:令人不適,但卻是必要的
工程師所設(shè)定的deadline很大程度上是通過評估形成的,也就是說團(tuán)隊(duì)中的每個人都要習(xí)慣犯錯,犯很多錯——將自己知道不對或是沒信息的地方說出來,可能會很困難。
我們必須達(dá)成共識,盡可能準(zhǔn)確地作出評估,并隨著時間評估地越來越準(zhǔn)確。評估是一項(xiàng)技能,反復(fù)使用會熟能生巧。初期可能會讓人不適,但這是我們需要做到的。
評估任務(wù)
在定下大型項(xiàng)目的交付時間前,我們應(yīng)當(dāng)將整個項(xiàng)目拆分成小的任務(wù),每個任務(wù)應(yīng)當(dāng)能在約五個工作日內(nèi)完成。
以下問題對評估任務(wù)十分有用:
這個項(xiàng)目是新建的,還是之前就有的?這部分代碼質(zhì)量如何?我對這部分代碼的熟悉程度如何?對涉及的編程語言熟悉程度如何?與其他代碼段在哪里有接觸或集成點(diǎn)?現(xiàn)有的測試覆蓋率如何?這項(xiàng)工作是否涉及關(guān)鍵業(yè)務(wù)(寫入路徑、計(jì)費(fèi)、負(fù)載均衡器、注冊)?之前是否有人參與過這項(xiàng)工作?他們有何想法?有哪些問題需要做出權(quán)衡?這項(xiàng)任務(wù)的目標(biāo)是什么?這項(xiàng)任務(wù)究竟是否需要完成?
評估工程項(xiàng)目
工程項(xiàng)目通常被視為一個較大的任務(wù),可以讓多人并行完成。
下面這些問題有助于評估項(xiàng)目:
我們實(shí)際要在這個項(xiàng)目上花費(fèi)多久時間?這個工程項(xiàng)目的目標(biāo)是什么?是否有已知會安排的休息時間?所有要完成的任務(wù)有哪些?是否對其他團(tuán)隊(duì)有依賴,還是障礙性的?項(xiàng)目中是否有任務(wù)對其它任務(wù)產(chǎn)生障礙?該項(xiàng)目是否需要新的基礎(chǔ)設(shè)施或硬件?該項(xiàng)目的完工標(biāo)準(zhǔn)是什么?
完工標(biāo)準(zhǔn)
即便要知道某項(xiàng)工作是否完工都是很困難的,團(tuán)隊(duì)中不同角色可能會有不同的“完工”標(biāo)準(zhǔn),因此我們需要指定某個項(xiàng)目的具體完工標(biāo)準(zhǔn)。
下面是典型完工標(biāo)準(zhǔn)的一些樣例:
部署到生產(chǎn)環(huán)境;全自動化測試;與公司內(nèi)部或第三方人員溝通;在公司內(nèi)部或外部進(jìn)行了一定量的測試;為生產(chǎn)環(huán)境編制文檔;完成對銷售或推廣團(tuán)隊(duì)的講解;發(fā)布登錄頁面;分析并追蹤;操作運(yùn)行手冊與系統(tǒng)可觀測性。
總結(jié)
隨著公司的壯大與管理能力日趨成熟,交付能力成為必須,而deadline是其中主要的工具之一,合理善用將有無與倫比的功效。不過,想要利用deadline,還需時日在實(shí)踐中慢慢磨合。因此我建議:工程類公司應(yīng)當(dāng)將其視為一個活生生、有生命力的東西,不間斷地去學(xué)習(xí)了解,并通過文檔在全公司內(nèi)部,乃至與整個行業(yè)分享經(jīng)驗(yàn)
?
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%