程式設計師如何預估自己的專案開發時間?
專案時間的估算對專案的成敗至關重要。專案時間管理包括了專案按時完成所需的各個流程。但是,在實際專案中,經常出現專案延期,估算嚴重不準確的現象。
預估時間本身就很難。每個程式設計師的估計都會跟真正需要的時間有些差距。估計時間短了說明有些事情被忽略了(編譯,測試,提交程式碼)。估計時間超了說明任務太大,難以理解。
對於資歷較淺的程式設計師,這種估計誤差是混亂的,他們經常會輕視一些任務,同時又對一些稍微有難度的任務過分高估。我認為,對一個有經驗的程式設計師,一個任務的時間應該在半小時到24小時之間,超出24小時的任務都需要拆分。程式設計師在腦中想一想可能會認為要60小時,但實際上即使是很有經驗的程式設計師也需要將任務分成可控制的模組再來分析做決定。
還有一個很重要的需要認識的一點是,程式設計上的經驗並不等同於時間估計上的經驗。一個從來沒有做過工期估計的程式設計師不會擅長估計時間。如果不去拿真正需要的時間和估計出的時間來比較,你不可能從其它回饋資訊之得到正確估計時間的經驗。
每個程式設計師都會用到評估技巧。為了提高你的這項技能,你可以在你從事的每個任務上進行鍛鍊。在任務開始時先預估開發所需時間,拿它跟你最終真正用掉的時間做比較。這樣,你不僅在對任務細節的理解上有提高,同時也提高了你對時間預估的技能。
霍夫斯塔特定律:實際時間總是比預期要長,即便你考慮到了霍夫斯塔特定律。
經常會有 PM 抱怨說,為什麼公司的開發永遠無法估計自己的專案時間? !然而機智的程式設計師早就對此司空見慣了。我甚至見過一個預計 2 天完成的專案最後花了 4 個月的時間,即使按照「時間翻倍」的經驗法則來看也是挺誇張的。從高階層面來看,問題在於 —— 工程師和 PM 或其他人員對時間估算的方法和思考方式不同。
大多數工程師的第一個反應是,如果一切按照計畫正常進行的話,寫出一個原型所需的最短時間。而 PM 或其他下游人員的想知道的是,專案什麼時候可以準備完畢,從此時到發布的這段時間是多久?因此這完全是兩個不同的故事了。
所以對工程師來說,掌握時間估算是一項必備技能,這意味著你是專業、穩定且有效率的開發者。
為什麼需要進行時間估算?
外部依賴
#任何有效的事情都不會憑空發生。專案通常存在外部依賴性,例如跟隨職能團隊的溝通(財務、PR、客戶支援)以及客戶的交流等。而跟著這些外部依賴協調的往往是 PM 或CEO的工作,這意味著最有資格做時間估算的人(工程師)並不是最需要做這些計算的人。這種不對稱導致了根本的緊張。
優先級
時間計算對決定優先順序也很關鍵。工程領域中性價比是一項重要指標,即使你在做的功能是全世界最厲害的,經過時間測算發現需要很長時間才能實現的話,那這個功能的優先級也不會太高。
比方說你正在做一個項目,做成之後可以讓網站快 50%,但用同樣的時間你本來可以完成 2 個項目,而且每個項目都可以讓網站快 40%。如果你不花點時間進行初步測算的話,你永遠都不知道還可以做一個更快的網站!
初級時間估算
假設我們達成了時間估算非常重要這個共識,那麼我們繼續看如何估算。通常情況下,我們低估所需時間是因為我們想的是「寫出一個原型需要多長時間?」。
但是,交付的東西往往比原型大多了,你還需要考慮測試、調試、優化所花費的時間。還有開會、訪談、代碼評審,甚至發電子郵件都是需要花時間的。
低估所需時間的另一個原因是意外的問題,這些問題往往不能被充分考慮到,例如 IDE 更新而讓你多花了一天去配置環境等等。
基於此,我們最好不要太相信所謂的經驗和直覺。
Step 1:制定技術方案
#在開始任何重要專案之前,你都應該有一份技術計畫或設計文件。這個文件的目的在於讓別人知道你在做的事情,並且能獲得回饋。當你注意到其中的技術細節時,你會更清楚知道具體所耗費的時間,例如把某個函式庫更新到新版本,可能會多花一天的時間。你甚至還得自己寫一個庫。
顆粒度在這裡是很重要的。如果有哪一部分讓人覺得不清楚,要嘛是你應該了解更多相關知識,要嘛得把它分解為更細緻的步驟。同時,如果一個步驟太細的話,又可能會太脆弱導致整個計劃無效,所以要把握好這個度。
想要知道你的文件裡應該考慮哪些東西,可以看看AliciaChen 的 這篇文章。關鍵在於跟 PM 溝通清楚,消除有歧義的地方,這樣才不會導致最後要推翻重來。
Step 2:#為#每一步新增時間估算
文件裡的每一步實作需要多少時間,這往往牽涉到對細節的研究(這個是不是已經有函式庫了?)。因此視項目性質而言,先做一個簡單的原型可以幫助揭示許多潛在的痛點。
Step 3:追加容錯時間
現在你已經有初步的時間估算,不過還有許多其他需要考慮的因素。
隨時調試:Bug 難以避免,這取決於開發者對特定程式碼庫的經驗以及程式碼庫的成熟度。會議和假期:開會或放假時一般來說是不會敲代碼的,所以真正敲代碼有多長?因此時間估算時要好好看看行程表。最終測試:通常應該一邊編碼一邊測試,但很多團隊在發布前還需要做整合測試,因此在你的估算中留出這部分的時間。程式碼評審:在這個程式碼庫中你一般需要進行幾輪?每輪需要多少時間?要經過多少次評審?留意評審人的日程安排確保代碼評審的時間。
當你把交付時間的開銷也考慮進去,你就能看到自己的時間估算和專案的實際發佈時間要匹配得多。儘管實際情況可能還會更長,你也可能會因壓力而需要縮短工期。但當大家明白你的估算更準確時,也會更信任你。
Step 4:發布後評審上期時間估算
複盤還挺痛苦的,但是回顧能讓你在下一次做得更好。每一個實際與預期時間不匹配的項目都發生了什麼,找到原因並改進它。
總而言之一切在於溝通。事先溝通、經常溝通,了解彼此的行程和需求變更。
跟 PM 等相關參與者的溝通也能讓對方提供可能會影響你估算的重要資訊。一位設計師可能會說這個動畫需要一週工期,乾脆砍掉不要了。另一位 PM 也可能補充說這個原型只是對使用者進行研究的而已,這次迭代不用處理太多 bug。
對於工程師來說,不要做不切實際的更短工期的妥協,開誠佈公更顯專業。對於 PM 和其他人來說,尊重這項估算可能需要一個過程,但要知道光靠嘮叨是不可能縮短工期的。
專案時間估算不容易,唯有善於溝通、有同理心、確定功能優先順序才可以。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

2022年3月3日,距離世界首個AI程式設計師Devin誕生不足一個月,普林斯頓大學的NLP團隊開發了一個開源AI程式設計師SWE-agent。它利用GPT-4模型在GitHub儲存庫中自動解決問題。 SWE-agent在SWE-bench測試集上的表現與Devin相似,平均耗時93秒,解決了12.29%的問題。 SWE-agent透過與專用終端交互,可以開啟、搜尋文件內容,使用自動語法檢查、編輯特定行,以及編寫和執行測試。 (註:以上內容為原始內容微調,但保留了原文中的關鍵訊息,未超過指定字數限制。)SWE-A

520將至,年度虐汪大戲他又雙叒叕來啦!想看看最理性的密碼和最浪漫的告白究竟能碰撞出怎樣的火花?以下帶你逐一領略最全最完整的告白代碼,看看程式設計師們的浪漫是否能擄獲各位心目中女神的芳心呢?

學習C語言的魅力:解鎖程式設計師的潛力隨著科技的不斷發展,電腦程式設計已經成為了一個備受關注的領域。在眾多程式語言中,C語言一直以來都備受程式設計師的喜愛。它的簡單、高效以及廣泛應用的特點,使得學習C語言成為了許多人進入程式設計領域的第一步。本文將討論學習C語言的魅力,以及如何透過學習C語言來解鎖程式設計師的潛力。首先,學習C語言的魅力在於其簡潔性。相較於其他程式語言而言,C語

本篇文章给大家介绍如何用前端代码实现一个烟花绽放的绚烂效果,其实主要就是用前端三剑客来实现,也就是HTML+CSS+JS,下面一起来看一下,作者会解说相应的代码,希望对需要的朋友有所帮助。

上週我們做了一次關於《2023PHP創業》的公益直播,很多同學諮詢具體有哪些接單平台,下面php中文網整理了22個還算可靠的平台,以供參考!

程式設計師的工作職責:1、負責軟體專案的詳細設計、編碼和內部測試的組織實施;2、協助專案經理和相關人員同客戶進行溝通,保持良好的客戶關係;3、參與需求研究、專案可行性分析、技術可行性分析與需求分析;4、熟悉並熟練交付軟體部開發的軟體專案的相關軟體技術;5、負責向專案經理及時回饋軟體開發的情況;6、參與軟體開發與維護過程中重大技術問題的解決;7、負責相關技術文件的擬訂等等。

VSCode歷史版本的下載安裝 VSCode安裝 下載 安裝 參考資料 VSCode安裝 Windows版本:Windows10 VSCode版本:VScode1.65.0(64位元User版本) 本文

終端仿真器可讓您模仿標準電腦終端的功能。有了它,您可以執行資料傳輸並遠端存取另一台電腦。當與Windows11等高階作業系統結合使用時,這些工具的創造性可能性是無窮無盡的。但是,有很多第三方終端模擬器可用。因此,很難選擇合適的。但是,正如我們對必備的Windows11應用程式所做的那樣,我們選擇了您可以使用的最佳終端並提高您的工作效率。我們如何選擇最好的Windows11終端模擬器?在選擇此清單中的工具之前,我們的專家團隊首先測試了它們與Windows11的兼容性。我們也檢查了他們