如何評估從未開發過的功能(三)- 任務拆解

目錄

回顧前幾週的文章我們可以知道兩個基本原則,第一個是不要用報價單來逼死自己,而是採用估價單來預估客戶的需求,其次是不要浪費時間在只希望拿到一份報價單的客戶,必須要實際聊過之後才能感受到合作的誠意以及客戶需求的具體情境。

收集到這些資料後,我們就可以針對需求內容來做分類,做出分類後才能列出開發項目的大項目與執行細項,進而針對每個細項預估開發時數並加總整體的開發預算範圍,因此開發項目分類的邏輯就很關鍵,通常我會以三個面向來進行歸納:操作流程、操作頁面以及資料讀寫。

為了方便理解我以一個專案舉例,客戶需求是這樣:

建置一個提供攝影師上傳圖片的平台,在上傳的時候需要標記圖片的分類,並能讓瀏覽者依照分類檢索攝影師上傳的圖片,攝影師可以自行修改或刪除已上傳圖片,同時後台管理員也能進行圖片的檢索與編輯。

雖然需求描述的看似明確,但中間還有很多需要填補的空白:是否要登入會員才能上傳?分類項目如何管理?要用什麼方式檢索等問題,但假設你從來沒有開發過圖片上傳平台,你該如何知道還有哪些問題要確認?

幸好這樣的需求很容易聯想到其他類似的服務,像是 Unsplash 免費圖庫、Flickr 攝影平台等等,只要在這些既有平台實際走過一次上傳圖片的流程,就能大概理解一個基本的上傳圖片平台需要哪些步驟,這時候就能帶著這些步驟去反問客戶他們沒想過的環節。

如果客戶的需求是你這輩子從不曾見過的網站,市場上沒有任何一個平台有類似的邏輯,那麼就去細分它這個需求的各項功能,像是平台一定要有會員登入吧?或是管理使用者上傳的內容?把功能拆解後就能在各個地方發現類似的作法,萬一真的找不到你可以寫信給我,我可以幫你找XD

確認過這些環節我們就能開始進行任務拆解了:

大項目 – 操作流程

具體是指使用者在操作該功能時會看到哪些頁面,大項我會以功能來命名,以圖片上傳平台為例,攝影師要先註冊會員 > 進到上傳頁上傳圖片 > 設定圖片分類 > 攝影師看到圖片上傳結果。

以這個流程來說,就可以列出以下幾個大項目:

(一) 會員登入與註冊功能

(二) 圖片上傳功能

(三) 圖片編輯功能

(四) 上傳結果顯示

事實上會員登入與註冊還可以再拆成兩個以上的流程,甚至包含忘記密碼或是第三方登入的功能,操作流程是整個任務拆解的骨幹,先把流程抓出來剩下的就是發展細節即可。

執行細項 – 操作介面

具體是指使用者透過何種方式來操作該功能,通常包含介面設計與前端程式設計,使用者有可能會在前台或是後台進行操作,差別只是在於使用者的登入身份,像是 (三) 圖片編輯功能 攝影師可以在前台進行編輯,而管理員是在後台處理,他們都一樣需要操作介面來設定功能。

我們開始來發展細項:

(一) 會員登入與註冊功能

  • 確認完成驗收標準
  • 登入與註冊表單介面設計
  • 登入與註冊表單前端程式設計

(二) 圖片上傳功能

  • 確認完成驗收標準
  • 上傳介面設計
  • 上傳介面前端程式設計

(三) 圖片編輯功能

  • 確認完成驗收標準
  • 圖片編輯介面設計
  • 圖片編輯前端程式設計

(四) 上傳結果顯示

  • 確認完成驗收標準
  • 上傳結果頁介面設計
  • 上傳結果頁前端程式設計

第一個重點是你發現到每個項目裡面都有「確認完成驗收標準」的細項,這部分就是我們要釐清在第一次的需求訪談會議中沒有確認到的細節,這些細節會在實際執行後才確認,你或許會問如果這些細節沒有在第一次會議中就談清楚的話,這樣的估價單怎麼會準確?

對,不管是估價單還是報價單永遠都不會準確,我們要追求的不是報出一個不會讓自己吃虧的「準確」價格,而是把焦點放在解決客戶的需求,需求是無時無刻都在變動的,也許今天會議決定的事項明天就變了,因此把確認細節這件事放在開工時來處理是最好的時機。

而在開工後會長出新的工作細項是 100% 會發生的事,確認完成驗收標準除了讓客戶明白他們的需求是否有正確傳達給我們外,同時也能讓自己梳理執行的細節,畢竟很多問題是真的做下去後才會知道。

操作介面主要就是分視覺設計稿以及前端 HTML 與 CSS 的處理,JavaScript 的部分因為變數比較多,像是是否要用 Ajax 登入、圖片上傳的檔案格式驗證、上傳張數限制等等,這些細節我一樣會留待正式開工後再行確認。

執行細項 – 資料讀寫

搞定介面以後,剩下的就只有如何保存資料以及顯示資料的問題,像是資料保存前是否需要公式邏輯的計算、資料顯示的條件與方式,如果是要與外部服務連動就會牽涉到 API 的串接,像是串接金流服務需要把訂單資料整理好後傳送到金流商,然後把金流商的回傳資料保存在我們的資料庫中。

繼續發展執行細項,新增的部分我用粗體表示:

(一) 會員登入與註冊功能

  • 確認完成驗收標準
  • 登入與註冊表單介面設計
  • 登入與註冊表單前端程式設計
  • 建立會員資料欄位
  • 會員註冊資料寫入
  • 會員登入狀態紀錄
  • 測試與驗收

(二) 圖片上傳功能

  • 確認完成驗收標準
  • 上傳介面設計
  • 上傳介面前端程式設計
  • 圖檔上傳主機目錄
  • 測試與驗收

(三) 圖片編輯功能

  • 確認完成驗收標準
  • 圖片編輯介面設計
  • 圖片編輯前端程式設計
  • 建立圖片分類欄位
  • 圖片資料寫入
  • 測試與驗收

(四) 上傳結果顯示

  • 確認完成驗收標準
  • 上傳結果頁介面設計
  • 上傳結果頁前端程式設計
  • 讀取上傳狀態顯示結果
  • 測試與驗收

保存資料前必須先定義好資料欄位,後續在顯示資料時才能用這些欄位來進行判斷,另外每個項目中會附上「測試與驗收」的項目,以確保該功能完成後都有符合第一項的「確認完成驗收標準」。

測試的部分我會依照完成標準來撰寫腳本來請客戶測試,以 「 (二) 圖片上傳功能」為例,測試腳本我會這樣寫:

1.以攝影師帳號登入會員 – https://abc.com/photo-login

2.進入圖片上傳頁面 – https://abc.com/photo-upload

3.上傳三張小於 300KB 的 JPG 圖檔

4.點選上傳

5.使用 FTP 連線進入主機觀察 wp-content/uploads 目錄下是否有剛剛上傳的三張照片

要請客戶測試的時候盡可能把條件寫得越詳細越好,並且附上該去哪個網址、該執行哪些動作,確保在所有條件都滿足的情況下該功能是可以正常運作的,這樣當發生例外的狀況時就能知道是哪些條件出了問題,如果沒有這個腳本,就比較難定位問題所在。

像是沒有指定測試時上傳 JPG 而客戶隨手拿了 SVG 進行上傳,因為 SVG 的安全性考量預設都會擋掉,這時客戶就會說這功能不能用,對我來說只聽到一句「不能用」是很難判斷問題所在,如果這時候有測試腳本就能先過濾掉第一層的使用者操作問題,再來跟客戶討論是否該支援 SVG 格式。


當細項逐一列出後再評估開發時數,我的時間預估有四種單位:

評估 1~2 小時的項目:有 100% 的自信可以在一小時內完成,確認完成驗收標準跟測試驗收我通常會抓這個時間,以及其他一些剛做過還記憶猶新的功能。

評估 2~3 小時的項目:有 100% 的自信可以在兩小時內完成,做過類似的、可以在腦海中想像開發這個功能需要哪些步驟,雖然可能會有點複雜,但腦袋很清楚該如何實作出來。

評估 3~4 小時的項目:有 100% 的自信可以在三小時內完成,頁面內容很多以及有找到解法但還沒實作過的項目,像是要處理大量的欄位資料、串接第三方 API,或是需要開發前端 UI 以及 JavaScript。

最後完成的估價單如下:

(一) 會員登入與註冊功能

  • 確認完成驗收標準 – 1~2h
  • 登入與註冊表單介面設計 – 2~3h
  • 登入與註冊表單前端程式設計 – 1~2h
  • 建立會員資料欄位 – 1~2h
  • 會員註冊資料寫入 – 1~2h
  • 會員登入狀態紀錄 – 1~2h
  • 測試與驗收 – 1~2h

(二) 圖片上傳功能

  • 確認完成驗收標準 – 1~2h
  • 上傳介面設計 – 2~3h
  • 上傳介面前端程式設計 – 3~4h
  • 圖檔上傳主機目錄 – 2~3h
  • 測試與驗收 – 1~2h

(三) 圖片編輯功能

  • 確認完成驗收標準 – 1~2h
  • 圖片編輯介面設計 – 2~3h
  • 圖片編輯前端程式設計 – 2~3h
  • 建立圖片分類欄位 – 1~2h
  • 圖片資料寫入 – 2~3h
  • 測試與驗收 – 1~2h

(四) 上傳結果顯示

  • 確認完成驗收標準 – 1~2h
  • 上傳結果頁介面設計 – 1~2h
  • 上傳結果頁前端程式設計 – 1~2h
  • 讀取上傳狀態顯示結果 – 1~2h
  • 測試與驗收 – 1~2h

以上就是我在接洽新案件時所有的評估步驟與環節,希望能幫助到你在面對新客戶時能更有方向的來拆解工作項目,如果遇到不知道該怎麼評估的需求也可以來信跟我說!

文章標籤敏捷式接案

目錄

賴俊吾 / Oberon Lai
賴俊吾 / Oberon Lai

現為全職 WordPress 工程師,網站開發經歷 11 年,專攻前端工程與 WordPress 佈景主題、外掛客製化開發

訂閱電子報

Hi,我是 Oberon,我會固定在每週五早上發送接案心得以及與 WordPress 相關的電子報,同時也會分享一些實用的開發知識,讓你在 WordPress 的接案路上不孤單!

覺得文章寫得好再幫我鼓個掌吧!

相關文章

如何避免客戶看到設計稿後大改

工作到一半剛好朋友丟訊息來問我說要如何避免客戶大改設計稿,我直接跟他說沒辦法,因為我自己也是看到設計稿之後開始會先小改,然後怎麼改...

順利結案的三個關鍵

降低預期外的工作項目才有可能順利結案,觀察客戶規模與公司組織,放下成見去仔細聆聽客戶需求,最重的是學習執行細節,進而讓自己更能掌握...

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

專注於分享 WordPress 開發、接案技巧、專案管理等自由工作者必備知識與心得

© 2022 想點創意科技有限公司

Designed by Hend Design | 隱私權政策

訂閱電子報

Hi,我是 Oberon,我會固定在每週五早上發送接案心得以及與 WordPress 相關的電子報,同時也會分享一些實用的開發知識,讓你在 WordPress 的接案路上不孤單!