[心得] 如何規畫時程?

小弟自知經驗不足,只是想 po 個心得文,觀迎大家指教 🙂

所在的 team ,最近有一個 deadline 非常趕的 project,因此需要多用心來規畫時程
加上又看到 Jamie 所寫的 為什麼軟體工程無法估算時間? 心有所感~

未知的事情,是沒有辦法去估計時程的

愛迪生不可能去估計發明燈炮的時程,能估計的只有每作一次實驗的時間
國父不可能去估計推翻清朝的時程,能估計的只有每次革命的準備時間

因此,對一件事情,有越多的了解,就越能估計時程
但是,一定還是有未知的部份。
像是:寫程式,你不知道什麼時候會碰到 bug。
作實驗,你不知道什麼時候可以找到最佳解。
創業,你不知道什麼時候可以成功。

能作的,就是儘量減少未知的部份。然後在有限的資源下作到最好。
就拿之前提的 電影推薦家 來說好了。
如果要來實作,馬上會碰到很多未知的問題:

設計是否滿足使用者需求? 是否能得到電影上映場次?
否找的到 PTT Movie 版的資料? 是否能正確的找出一篇文章在講哪一部電影?

這些都是未知的問題,都是風險。
因此,有幾項步驟來減少未知,盡量的估出時程。
以下就以 電影推薦家 作為例子…

0. 假設已經對產品有一個初步構想

你可能作過一些市場分析,競爭者比較。相信自已的產品有所不同。

1. 觀察真實資料,建出產品的 prototype

去觀察 PTT Movie 版,文章品質好不好,是否每篇文章都有提到較完整的電影名稱等等。
人工的收集幾部電影的文章,建出預期的結果,觀察技術上是否能達到,並且多詢問使用者是否滿足他們的需求。
收集這些資訊來修改產品。

2. 設計如何計算效果

如何計算一些實作方法的效果:
一篇文章分成推薦 or 不推薦的效果好不好?
一篇文章對應到一部電影的效果好不好?
有這些,之後才能持續的調整實作方法。

3. 設計實作的 baseline,畫出 baseline 的流程

流程:

  1. 抓文章
  2. 藉由標題的 [好雷] or [壞雷] 判斷一篇文章是否推薦
  3. 標題中如果出現完整的電影名稱,就對應到那部電影

先設計出最簡單的解法,實作速度上最快。
並且會對可以作到的效果心裡有個底(最壞的情況就是這麼差了 XD),而且搞不好 baseline 就可以達到使用者需求了。

4. 估計 baseline 時程

有了流程圖,再加上一些經驗法則 (ex: 1/3 設計程式,1/6 寫程式,1/2 debug) ,來估出粗略的時程。

發表留言