很多軟體的開發案,在開始之前,有些客戶會給一些期望開發的一些內容,
假設今天收到的規格如下:
開發一個供公司內部使用的 Web 應用程式,讓團隊以專案為範圍管理成員與 Task Item。前台使用者可以查看 Task Item 列表,並依權限修改狀態、設定交付時間及查看詳情。
每位使用者登入後,只會看到自己有權限查看的專案與 Task Item。Viewer 只能瀏覽資料,不能新增、修改或刪除任何系統資料。取得其他角色後,被指派者才可以修改自己 Task Item 的狀態與交付時間,也可以在 Task 詳情中留言。
Task 狀態是所有專案成員共用的工作狀態,不會為每位使用者分開保存。checkbox 只用於選取目前頁面中要批次修改的 Task,重新整理頁面或完成操作後就會清除,不會寫入資料庫。「不再顯示批次確認視窗」則屬於個人偏好,系統會依使用者分開保存,並提供重新開啟的方法。
這個開發題圍繞一個名為 "Project Management" 的網頁介面展開。前台使用者可以查看專案內的 Task Item,選取一筆或多筆資料,設定目標狀態後按下「確認」。後端會逐筆檢查權限、指派關係與狀態轉換,全部通過後才會一次更新。
使用者也可以點擊 Task Item 查看詳細資料、修改有權限調整的欄位,以及閱讀或新增留言。
後台需提供介面或 API,讓後台管理員新增、修改及軟刪除 Task Item。所有新增、修改、刪除與角色異動都必須由後端檢查權限,不能只依賴前端按鈕是否顯示。
Viewer 系統角色Viewer 身分登入及瀏覽有權限查看的資料,不得進行任何修改操作Viewer,直到 Admin 將其調整為其他系統角色Viewer 調整為其他系統角色;未完成驗證的帳號不得變更為其他角色。後台管理員與專案管理者只能依權限管理專案成員及專案角色User)Administrator)Admin)Viewer):只能查看有權限存取的資料,不得新增、修改、刪除、留言、切換 Task 狀態或調整角色列表呈現:
/projects/{projectId}/task-items 頁面時,顯示 checkbox、Task 編號、標題、交付期限、狀態、建立者與指派對象。欄位一致性:
狀態切換(根據勾選的 Task Item,設定目標狀態後,按下確認進行狀態切換)
作為被指派者或後台管理員,我想要勾選一筆或多筆 Task Item,並設定要切換的狀態,以便一次更新工作進度。
多選功能:
Viewer 看到的 checkbox 一律為 Disabled。狀態切換操作:
Viewer 不得執行此操作。使用者反饋:
保持操作狀態
作為專案成員,我想要在重新開啟頁面時看到最新的 Task 狀態,以便接續追蹤工作進度。
查看 Task Item 詳情
作為專案成員,我想要點擊某個 Task Item 查看詳細資料,以便了解工作內容與討論紀錄。
詳細頁面:
/projects/{projectId}/task-items/{taskId},頁面顯示 Task 編號、標題、描述、開始時間、交付期限、建立者、指派對象、狀態、建立時間及最後更新時間。Viewer 只能查看。Viewer 只能閱讀既有留言。返回列表:
新增 Task Item
作為後台管理員,我想要在專案中新增 Task Item,以便指派並追蹤工作。
新增表單:
/admin/projects/{projectId}/task-items/new 頁面,包含專案、標題、描述、開始時間、交付期限及指派對象等欄位。驗證規則:
提交行為:
Pending,系統顯示成功訊息並導向 Task 詳情。修改 Task Item
作為後台管理員,我想要修改現有的 Task Item,以便修正內容或調整工作安排。
/admin/projects/{projectId}/task-items/{taskId}/edit,並預填目前資料。作為後台管理員,我想要移除不再需要的 Task Item,以便讓一般清單只保留仍在使用的資料。
刪除操作:
確認後行為:
看完以上需求,我想信讀到這邊,有點經驗的開發人員,已經有點想法了,但是剛入行沒多久的人呢?接下來的章節,我們會一一拆解需求