国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

程序員如何預(yù)估自己的項目開發(fā)時間?

superw / 2709人閱讀

摘要:預(yù)估時間本身就很難。每個程序員的估計都會跟真正需要的時間有些差距。當(dāng)你把交付時間的開銷也考慮進去,你就能看到自己的時間估算和項目的實際發(fā)布時間要匹配得多。

項目時間的估算對項目的成敗至關(guān)重要。項目時間管理包括了項目按時完成所需的各個過程。但是,在實際項目中,經(jīng)常出現(xiàn)項目延期,估算嚴(yán)重不準(zhǔn)確的現(xiàn)象。

預(yù)估時間本身就很難。每個程序員的估計都會跟真正需要的時間有些差距。估計時間短了說明有些事情被忽略了(編譯,測試,提交代碼)。估計時間超了說明任務(wù)太大,難以理解。

對于資歷較淺的程序員,這種估計誤差是混亂的,他們經(jīng)常會輕視一些任務(wù),同時又對一些稍微有難度的任務(wù)過分高估。我認(rèn)為,對一個有經(jīng)驗的程序員,一個任務(wù)的時間應(yīng)該在半小時到24小時之間,超出24小時的任務(wù)都需要拆分。程序員在腦中想一想可能會認(rèn)為要60小時,但實際上即使是很有經(jīng)驗的程序員也需要將任務(wù)分成可控的模塊再來分析做決定。

還有一個很重要的需要認(rèn)識到的一點是,編程上的經(jīng)驗并不等同于時間估計上的經(jīng)驗。一個從沒有做過工期估計的程序員不會擅長估計時間。如果不去拿真正需要的時間和估計出的時間進行比較,你不可能從其它反饋信息之得到正確估計時間的經(jīng)驗。

每個程序員都會用到評估技巧。為了提高你的這項技能,你可以在你從事的每個任務(wù)上進行鍛煉。在任務(wù)開始時先預(yù)估開發(fā)所需時間,拿它跟你最終真正用掉的時間進行對比。這樣,你不僅在對任務(wù)細(xì)節(jié)的理解上有提高,同時也提高了你對時間預(yù)估的技能。

霍夫斯塔特定律:實際時間總是比預(yù)期要長,即便你考慮到了霍夫斯塔特定律。

經(jīng)常會有 PM 抱怨說,為什么公司的開發(fā)永遠不能估計自己的項目時間?!然而機智的程序員早就對此司空見慣了。我甚至見過一個預(yù)計 2 天完成的項目最后花了 4 個月的時間,即使按照「時間翻倍」的經(jīng)驗法則來看也是挺夸張的。從高級層面來看,問題在于 —— 工程師和 PM 或者其他人員對時間估算的方法和思維方式不同。

大多數(shù)工程師的第一反應(yīng)是,如果一切按照計劃正常進行的話,寫出一個原型所需要的最短時間。而 PM 或者其他下游人員的想知道的是,項目什么時候可以準(zhǔn)備完畢,從此時到發(fā)布的這段時間是多長?因此這完全是兩個不同的故事了。

所以對于工程師來說,掌握時間估算是一項必備技能,這意味著你是專業(yè)、穩(wěn)定而高效的開發(fā)者。

為什么需要進行時間估算?

外部依賴

任何有效的事情都不會憑空發(fā)生。項目通常存在外部依賴性,比如跟職能團隊的溝通(財務(wù)、PR、客戶支持)以及客戶的交流等。而跟這些外部依賴協(xié)調(diào)的往往是 PM 或者CEO的工作,這意味著最有資格做時間估算的人(工程師)并不是最需要做這些測算的人。這種不對稱導(dǎo)致了根本性的緊張。

優(yōu)先級

時間測算對確定優(yōu)先級也很關(guān)鍵。工程領(lǐng)域中性價比是一項重要指標(biāo),哪怕你在做的功能是全世界最厲害的,經(jīng)過時間測算發(fā)現(xiàn)需要很長時間才能實現(xiàn)的話,那這個功能的優(yōu)先級也不會太高。

比方說你正在做一個項目,做成之后可以讓網(wǎng)站快 50%,但用同樣的時間你本來可以完成 2 個項目,而且每個項目都可以讓網(wǎng)站快 40%。如果你不花點時間進行初步測算的話,你永遠都不知道還可以做一個更快的網(wǎng)站!

初級時間估算

假設(shè)我們達成了時間估算非常重要這個共識,那么我們繼續(xù)看一下如何估算。通常情況下,我們低估所需時間是因為我們想的是「寫出一個原型需要多長時間?」。

但是,交付的東西往往要比原型大多了,你還需要考慮測試、調(diào)試、優(yōu)化所花費的時間。還有開會、訪談、代碼評審,甚至發(fā)郵件都是需要花費時間的。

低估所需時間的另一個原因是意外的問題,這些問題往往不能被充分考慮到,比如 IDE 更新而讓你多花了一天去配置環(huán)境等等。

基于此,我們最好不要太相信所謂的經(jīng)驗和直覺。

Step 1:制定技術(shù)方案

在開始任何一個重要項目之前,你都應(yīng)該有一份技術(shù)計劃或者設(shè)計文檔。這個文檔的目的在于讓別人知道你在做的事情,并能獲得反饋。當(dāng)你注意到其中的技術(shù)細(xì)節(jié)時,你就會更清晰知道具體所耗費的時間,比如把某個庫更新到新版本,可能會多花一天的時間。你甚至還得自己寫一個庫。

顆粒度在這里是很重要的。如果有哪一部分讓人覺得不清楚,要么是你應(yīng)該了解更多相關(guān)知識,要么得把它分解為更細(xì)致的步驟。與此同時,如果一個步驟太細(xì)的話,又可能會太脆弱導(dǎo)致整個計劃無效,所以要把握好這個度。

想要知道你的文檔里應(yīng)該考慮哪些東西,可以看看AliciaChen 的 這篇文章。關(guān)鍵在于跟 PM 溝通清楚,消除有歧義的地方,這樣才不會導(dǎo)致最后要推翻重來。

Step 2:為每一步添加時間估算

文檔里的每一步實現(xiàn)需要多少時間,這往往牽涉到對細(xì)節(jié)的研究(這個是不是已經(jīng)有庫了?)。因此視項目性質(zhì)而言,先做一個簡單的原型可以幫助揭示許多潛在的痛點。

Step 3:追加容錯時間

現(xiàn)在你已經(jīng)有了初步的時間估算,不過還有許多其他需要考慮的因素。

隨時調(diào)試:Bug 難以避免,這取決于開發(fā)者對特定代碼庫的經(jīng)驗以及代碼庫的成熟度。會議和假期:開會或者放假時一般來說是不會敲代碼的,所以真正敲代碼有多長時間?因此時間估算時要好好看看日程表。最終測試:通常應(yīng)該一邊編碼一邊測試,但很多團隊在發(fā)布前還需要做集成測試,因此在你的估算中留出這部分的時間。代碼評審:在這個代碼庫中你一般需要進行幾輪?每輪需要多少時間?要經(jīng)過多少評審人?留意評審人的日程安排確保代碼評審的時間。

當(dāng)你把交付時間的開銷也考慮進去,你就能看到自己的時間估算和項目的實際發(fā)布時間要匹配得多。盡管實際情況可能還會更長,你也可能會因壓力而需要縮短工期。但當(dāng)大家明白你的估算更準(zhǔn)確時,也會更信任你。

Step 4:發(fā)布后評審上期時間估算

復(fù)盤還挺痛苦的,但是回顧能讓你在下一次做得更好。每一個實際與預(yù)期時間不匹配的項目都發(fā)生了什么,找到原因并改進它。

總而言之一切在于溝通。提前溝通、經(jīng)常溝通,了解彼此的日程和需求變更。

跟 PM 等相關(guān)參與者的溝通也能讓對方提供可能會影響你估算的重要信息。一位設(shè)計師可能會說這個動畫需要一周工期,干脆砍掉不要了。另一位 PM 也可能補充說這個原型只是對用戶進行研究的而已,這次迭代不用處理太多 bug。

對于工程師來說,不要做不切實際的更短工期的妥協(xié),開誠布公更顯專業(yè)。對于 PM 和其他人來說,尊重這一估算可能需要一個過程,但要知道光靠嘮叨是不可能縮短工期的。

項目時間估算不容易,唯有善于溝通、有同理心以及確定功能優(yōu)先級才可以。

閱讀更多

到外企?為什么別的程序員那么容易

一招教你打造一個滑動置頂?shù)囊曈X特效

NDK項目實戰(zhàn)—高仿360手機助手之卸載監(jiān)聽

(Android)面試題級答案(精選版)

相信自己,沒有做不到的,只有想不到的

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/108518.html

相關(guān)文章

  • 序員如何預(yù)估自己項目開發(fā)時間

    摘要:預(yù)估時間本身就很難。每個程序員的估計都會跟真正需要的時間有些差距。當(dāng)你把交付時間的開銷也考慮進去,你就能看到自己的時間估算和項目的實際發(fā)布時間要匹配得多。 項目時間的估算對項目的成敗至關(guān)重要。項目時間管理包括了項目按時完成所需的各個過程。但是,在實際項目中,經(jīng)常出現(xiàn)項目延期,估算嚴(yán)重不準(zhǔn)確的現(xiàn)象。 預(yù)估時間本身就很難。每個程序員的估計都會跟真正需要的時間有些差距。估計時間短了說明有些事...

    Chaz 評論0 收藏0
  • 序員如何預(yù)估自己項目開發(fā)時間

    摘要:預(yù)估時間本身就很難。每個程序員的估計都會跟真正需要的時間有些差距。當(dāng)你把交付時間的開銷也考慮進去,你就能看到自己的時間估算和項目的實際發(fā)布時間要匹配得多。 項目時間的估算對項目的成敗至關(guān)重要。項目時間管理包括了項目按時完成所需的各個過程。但是,在實際項目中,經(jīng)常出現(xiàn)項目延期,估算嚴(yán)重不準(zhǔn)確的現(xiàn)象。 預(yù)估時間本身就很難。每個程序員的估計都會跟真正需要的時間有些差距。估計時間短了說明有些事...

    qianfeng 評論0 收藏0
  • 從JVM角度思考--如何預(yù)估線上環(huán)境機器資源大小

    摘要:預(yù)估的方式也很簡單,八種基本類型直接帶入字節(jié)大小,對象類型以基本類型為基礎(chǔ)預(yù)估大小。基本上臺核的機器就能滿足這次活動。五總結(jié)預(yù)估之后,并非意味著就完全沒問題了,還需要在上線時備好更多機器,防止意外發(fā)生。 ...

    Worktile 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<