Mark Ku's Blog
在 ChatGPT 開啟在 Claude 開啟

歡迎收聽 Mark 的技術雜談,我是主持人璦廷。在軟體開發的過程中,你是否也常被突如其來的隕石級需求砸得措手不及呢?今天,我們要探討每位工程師必備的生存技能,也就是如何精準預估專案工時,並與主管進行有效溝通。 讓我們來看看面對不合理的死線時,該如何應對。這個重點值得注意,千萬別急著拒絕。我們應該先釐清專案背後的商業目標,接著將需求拆解成具體的工作清單,從模組到元件一一條列,這樣才能客觀評估所需的開發時間。 在實務應用上,雖然一天有八小時,但扣除會議與日常瑣事,以六小時作為一個人天來估算會更為精準,同時也要為專案預留充足的測試期。如果上線時間真的無法妥協,你可以帶著準備好的清單與主管協商,提出分階段交付核心功能、增加人手或是安排加班等具體的解決方案。 專案預估很難百分之百完美,但透過良好的溝通與優先交付核心價值,就能在團隊中建立信任。隨著人工智慧的到來,基礎的程式撰寫工作正逐漸被取代。這也提醒了我們,除了寫程式,你是否已經準備好提升自己不可替代的底層邏輯與專案協調能力了呢?

Podcast 對話本文 AI 對話朗讀版
本文音訊由 VoAI 提供技術支援VoAI 絕好聲創

專案時程預估

大多工程師對於要剛開始如何老闆報告時程,困擾於及不知道怎麼溝通,在死線前做不完或項目超大,也不知道,如何解釋需要多少時間,最近我被問到這問題,我就順便整理了一下,我自身的經驗。

在軟體開發的職業生涯中,能夠獨當領導一個專案,分析及時程預估是尤其重要的事,因為你一開始可以是預估一個人工作,到後面要帶著好幾一人一起工作,需要和上級討論,並去尋求他人的協助,才不會讓專案失去控制。

有趣的自然現象,隕石一直都在

從事軟體開發工作快滿10年,我們都想找間沒隕石的公司,其實工作久了,發現每間公司多多少少都會有些隕石,隕石其實就像是個真實世界自然現象,可能每天都在發生,而你不知道,公司總會有更重要又臨時的商業目標,或是那個老闆又想插單,就會影響團隊的做事情的排序,但就看怎麼應對及克服,怎麼協調減少對團隊的衝擊,只要能從天天被隕石砸到,到兩週才被砸一次,這就算是團隊很大的進步。

而大多公司的高層多半是業務出身,所以更在意專案帶來的商業效益,對於專案心裡的預期是越快越好,能夠將產品或功能越快的推上線,越快賺錢越好,對於大多業務出身的老闆思考的方式是,先定目標,在畫箭靶,所以更在意的是上線時程。

但因為看待問題的角度不同,對於工程師來說,我們得先了解需求要做什麼,拆解成工項,才能知道要做什麼,需要多久,因此工程師得先產出工作清單 (Work breakdown structure),才能估大概估的時間。

讓我們先回顧一下,軟體開發流程

教科書上定義的軟體開發流程如下,但礙於現今的市場對於軟體需求,變得越來越快,也不是每間公司都能夠這樣運行,很多 In house 的軟體工程師,可能需求訪談到系統分析及測試上線,可能都是一條龍。

  • 需求訪談 > 此階段產出-需求資訊或需求確認書
  • 系統分析 > 此階段產出-需求資訊分析資料或系統分析書
  • 程式撰寫 > 此階段產出-程式地基、功能撰寫
  • 測試 > 此階段產出-問題單或測試報告
  • 上線
  • 運維

首先,面對一個做不到的目標需求,或是不合理的 Deadline

先不急著去拒絕,而是先去了解規劃分析,回過頭在和使用者討論,能不能有其他折衷的做法,或是尋求上級獲得更多資源的幫助。

接著,理解需求

先了解要這個專案在做什麼 ? 去確認你理解的需求是不是和未來要做一致,並去理解這個需求是要達成什麼目的 ?

分析需求

充份理解需求後,並展開分析,怎麼做更好,或是有那些開源的資源可以加速開發,接著盤點可以用的資源,並找出需要誰的協助及需要幾個人或是去評估有沒有重大的技術難點,針對較複雜技術難點,可以在此階段做個POC。

拆解工作

從模組、頁面、元件把所有的工作項列出來,並評估工時。

WBS
WBS

預估工時

雖然一天有8小時工作時間,但扣掉開會討論,上廁所,預留一些Buffer time ,一個人天,實務上,通常是算6小時,會比較精準。

測試

如果是大的專案,上線前預留兩週做測試。

如果上線的死線( Deadline ) 不能變

盤點可以用的資源

  • 拆分階段 - 使用者的需求一定很多,但真正在意的就是某幾個,找出那些必要的功能,並拆分階段,評估先將主要功能完成,能不能如期。
  • 補人 - 提出來需要更多的人手,補人不一定立刻有幫助,要適應熟悉專案適應,團隊也要段時間。(通常只能把較簡單的功能拆解給新人,這樣就不會變趕專案時邊帶人)。
  • 加班 - 前提是公司有加班費,並且同仁有意願或是找機會和老闆談補班機制。

協商及討論

拿著你的前面準備好規劃好的工作清單及時程及解決方案,去和主管去討論。

最後

專案預估大多時候,不一定是精準的,但其實能在死線前交付使用者最在意的事,剩下的拆分階段,慢慢補完,並能夠解釋為什麼,盡力去做,好好溝通,其實大多使用者或主管,都能接受。

AI 的到來,有點像溫水煮青蛙,己拿走一些軟體開發的基礎的工作,減少了很多基層及中層的工作,但賦予每個工程師更多的生產力及效率,同時也帶來新的機會,在每個專案裡還有很多可以學的,底層邏輯,是不可以替代的,不要只會寫程式,不然等到工具取代你的工作時,而你還沒找到下條路。

作者

Mark Ku

擁有 10+ 年經驗的資深軟體工程師,現為 AI 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。閱讀更多

覺得這篇有幫助?

作者做的免費工具、每日 Podcast 與電子報,都在這裡。

Mark Ku · 本文採用 CC BY 4.0 授權,轉載請註明作者並附上原文連結。

留言

訂閱電子報

訂閱後即時收到新文章通知,不錯過任何技術分享。

提交即表示同意接收電子報,隨時可

熱門文章

View all
Mark Ku
··604

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案
Mark Ku
··471

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南
Mark Ku
··329

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略
Mark Ku
··240

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1
Mark Ku
··235

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調
Mark Ku
··216

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

讀者也在看

團隊因應頻繁請假成員之策略

Mark Ku

·2 min read·43

淺談軟體工程師的晉升

Mark Ku

·5 min read·10

職場中的績效與信任

Mark Ku

·3 min read·8

回顧及自省管理工作

Mark Ku

·5 min read·5