estimate-effort
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseEstimate Man-day cho dự án phần mềm
估算软件项目的 Man-day
Skill này estimate khối lượng công việc của một dự án phần mềm bằng man-day, dựa trên danh sách functional requirements và techstacks.
该 Skill 基于功能需求列表和技术栈,使用 man-day 估算软件项目的工作量。
Giả định cố định
固定假设
- Level dev: Mid-level developer
- 1 manday = 8 giờ làm việc thực tế
- Estimate cho full SDLC, không chỉ riêng phần code
- 开发者级别: 中级开发者
- 1 人天 = 8 小时实际工作时间
- 估算针对完整 SDLC,而不仅仅是编码部分
Input cần có
所需输入
- Functional requirements — danh sách các đầu việc cần làm.
- Techstacks — các stack sẽ dùng (FE / BE / DB / third-party...).
Nếu thiếu một trong hai, hỏi user trước khi estimate. Nếu một đầu việc mô tả mơ hồ, ghi rõ giả định đã đặt ra ở cột Ghi chú.
- 功能需求 — 需要完成的工作项列表。
- 技术栈 — 将要使用的技术栈(FE / BE / DB / 第三方...)。
如果缺少其中一项,在估算前先询问用户。如果某个工作项描述模糊,在“备注”列中明确记录已做出的假设。
Quy trình estimate (làm cho TỪNG đầu việc)
估算流程(针对每个工作项)
Bước 1 — Sizing
步骤 1 — 规模评估(Sizing)
Với mỗi requirement, mô tả rõ:
- Phần công việc Frontend phải làm (nếu có).
- Phần công việc Backend phải làm (nếu có).
Sau đó chấm điểm theo 2 trục cho mỗi role.
对于每个需求,明确描述:
- 需要执行的前端工作(如果有)。
- 需要执行的后端工作(如果有)。
然后为每个角色按两个维度打分。
FE — 2 trục
前端 — 2 个维度
UI Complexity — Giao diện phức tạp đến đâu?
- 1: Static content, layout đơn giản, ít state. (FAQ page, static links)
- 2: Form có validation, conditional rendering, responsive phức tạp. (Address toggle, contact form)
- 3: Nhiều state combinations, real-time update, animation/interaction nặng. (Calculator, gamification, plan selector với nhiều conditions)
Integration — FE phụ thuộc bên ngoài nhiều không?
- 1: Self-contained, không gọi API. (Static banner, video playback)
- 2: Gọi 1–2 API đơn giản, handle vài error states. (Promo code validate, preference submit)
- 3: Nhiều API, third-party SDK, real-time data, CMS-driven content. (OneMap + smart meter logic, MessageBird, Google Tag + Meta Pixel combo)
UI 复杂度 — 界面有多复杂?
- 1: 静态内容,简单布局,状态少。(FAQ 页面,静态链接)
- 2: 表单带验证、条件渲染、复杂响应式。(地址切换,联系表单)
- 3: 多种状态组合、实时更新、重动画/交互。(计算器、游戏化、多条件套餐选择器)
集成 — 前端对外部依赖多吗?
- 1: 自包含,不调用 API。(静态横幅,视频播放)
- 2: 调用 1–2 个简单 API,处理少量错误状态。(优惠码验证,偏好提交)
- 3: 多个 API、第三方 SDK、实时数据、CMS 驱动内容。(OneMap + 智能电表逻辑,MessageBird,Google Tag + Meta Pixel 组合)
BE — 2 trục
后端 — 2 个维度
Business Logic — Logic nghiệp vụ phức tạp đến đâu?
- 1: CRUD đơn giản, ít rules. (Serve FAQ content, static config)
- 2: Conditional logic rõ ràng, vài business rules, validation. (SD amount theo housing type, retailer detection "93")
- 3: Rule engine, configurable bởi non-dev, nhiều edge cases, stacking logic. (Stackable promo codes, configurable pop-up rules, plan visibility per page)
Integration — BE kết nối ra ngoài nhiều không?
- 1: Database nội bộ, không external service. (CRUD plans, save preferences)
- 2: 1–2 external APIs hoặc services. (OneMap proxy, email routing)
- 3: Nhiều external systems, webhook, queue, sync data phức tạp. (Third-party retailer verification, CMS + multi-channel banner delivery)
业务逻辑 — 业务逻辑有多复杂?
- 1: 简单 CRUD,规则少。(提供 FAQ 内容,静态配置)
- 2: 清晰的条件逻辑,少量业务规则,验证。(按房屋类型的 SD 金额,零售商识别“93”)
- 3: 规则引擎、可由非开发人员配置、多边缘情况、叠加逻辑。(可叠加优惠码,可配置弹窗规则,每页套餐可见性)
集成 — 后端对外连接多吗?
- 1: 内部数据库,无外部服务。(套餐 CRUD,保存偏好)
- 2: 1–2 个外部 API 或服务。(OneMap 代理,邮件路由)
- 3: 多个外部系统、webhook、队列、复杂数据同步。(第三方零售商验证,CMS + 多渠道横幅投放)
Tổng hợp size (mỗi role tính RIÊNG)
汇总规模(每个角色单独计算)
Cộng 2 trục của role đó:
- S = 2–3 điểm
- M = 4–5 điểm
- L = 6 điểm
Một đầu việc có cả FE và BE → có 2 size riêng (size FE và size BE).
将该角色的两个维度得分相加:
- S = 2–3 分
- M = 4–5 分
- L = 6 分
一个工作项同时包含前端和后端 → 有 2 个单独的规模(前端规模和后端规模)。
Bước 2 — Quy đổi sang Man-day (Build effort)
步骤 2 — 转换为 Man-day(构建工作量)
Quy đổi size → man-day. Đây là effort của riêng phase Build (≈ chiếm 40% SDLC, xem bước 3):
| Size | Điểm | Man-day (Build) |
|---|---|---|
| S | 2–3 | ~0.5–1.5 |
| M | 4–5 | ~2–4 |
| L | 6 | ~5–8+ (nên cân nhắc tách nhỏ) |
- Chọn 1 con số đại diện trong khoảng (không để dạng range ở bảng tổng hợp; range chỉ là guideline).
- Nếu đầu việc có cả FE và BE → cộng man-day Build của FE + BE.
- Nếu size = L → ghi chú "nên tách nhỏ".
将规模转换为 man-day。这是仅针对构建阶段的工作量(约占总 SDLC 的 40%,见步骤 3):
| Size | 得分 | Man-day(构建) |
|---|---|---|
| S | 2–3 | ~0.5–1.5 |
| M | 4–5 | ~2–4 |
| L | 6 | ~5–8+(应考虑拆小) |
- 在范围内选择一个代表数字(不要在汇总表中以范围形式呈现;范围仅供参考)。
- 如果工作项同时包含前后端 → 将前端 + 后端的构建人天相加。
- 如果规模 = L → 备注“应拆小”。
Bước 3 — Bổ sung Full SDLC
步骤 3 — 补充完整 SDLC
Man-day ở bước 2 mới chỉ là phase Build. Một đầu việc thực tế gồm 3 phase:
| Phase | Bao gồm | Trọng số |
|---|---|---|
| Prepare | Create Requirement + UI/UX | 30% |
| Build | Dev + Unit Test + Self Test + Fix bug | 40% |
| Verification | Acceptance Test + E2E Test + manual | 30% |
Build = 40% → quy đổi full SDLC:
Manday_FullSDLC = Manday_Build / 0.40 = Manday_Build × 2.5Đây là cột estimate cuối cùng cần xuất ra.
步骤 2 中的 man-day 仅为构建阶段。一个实际工作项包含 3 个阶段:
| 阶段 | 包含 | 权重 |
|---|---|---|
| 准备 | 创建需求 + UI/UX | 30% |
| 构建 | 开发 + 单元测试 + 自测 + 修复缺陷 | 40% |
| 验证 | 验收测试 + E2E 测试 + 手动测试 | 30% |
构建 = 40% → 转换为完整 SDLC:
Manday_FullSDLC = Manday_Build / 0.40 = Manday_Build × 2.5这是需要输出的最终估算列。
Output
输出
Xuất ra bảng markdown cho từng đầu việc + phần tổng hợp. Dùng đúng format dưới đây.
为每个工作项 + 汇总部分输出 markdown 表格。请使用以下格式。
Bảng chi tiết từng đầu việc
每个工作项的明细表
| # | Đầu việc | Mô tả FE | Mô tả BE | FE (UI/Intg → Size) | BE (Logic/Intg → Size) | MD Build (FE+BE) | MD Full SDLC (×2.5) | Ghi chú |
|---|---|---|---|---|---|---|---|---|
| 1 | ... | ... | ... | 2/2 → M | 1/1 → S | 2.5 + 1 = 3.5 | 8.75 | ... |
Quy ước cột:
- FE / BE size: ghi . Nếu role không có việc, ghi
<điểm trục 1>/<điểm trục 2> → <S/M/L>.— - MD Build: hiển thị phép cộng FE+BE rồi ra tổng.
- MD Full SDLC: , làm tròn 2 chữ số thập phân hoặc 0.25.
MD Build × 2.5 - Ghi chú: giả định, rủi ro, hoặc cờ "nên tách nhỏ" (size L).
| # | 工作项 | 前端描述 | 后端描述 | 前端(UI/集成 → 规模) | 后端(逻辑/集成 → 规模) | 构建人天(前端+后端) | 完整 SDLC 人天(×2.5) | 备注 |
|---|---|---|---|---|---|---|---|---|
| 1 | ... | ... | ... | 2/2 → M | 1/1 → S | 2.5 + 1 = 3.5 | 8.75 | ... |
列约定:
- 前端 / 后端规模: 写 。如果该角色没有工作,写
<维度1得分>/<维度2得分> → <S/M/L>。— - 构建人天: 显示前端+后端相加后得到的总数。
- 完整 SDLC 人天: ,四舍五入到 2 位小数或 0.25。
MD Build × 2.5 - 备注: 假设、风险或“应拆小”(规模 L)标记。
Bảng tổng hợp
汇总表
| Hạng mục | Giá trị |
|---|---|
| Tổng MD Build | ... |
| Tổng MD Full SDLC | ... |
| Quy đổi giờ (×6.5h) | ... |
| Số đầu việc | ... (S: x, M: y, L: z) |
| Đầu việc nên tách nhỏ | ... |
Sau bảng, thêm phần Giả định & Lưu ý:
- Liệt kê các giả định đã đặt khi requirement mơ hồ.
- Cảnh báo các đầu việc size L cần tách.
- Nêu rủi ro phụ thuộc third-party / integration cao (trục Integration = 3).
- Nhắc rằng đây là estimate cho 1 Mid-level dev; chưa tính buffer quản lý dự án, meeting, hay thời gian onboard.
| 项目 | 值 |
|---|---|
| 总构建人天 | ... |
| 总完整 SDLC 人天 | ... |
| 转换为小时(×6.5h) | ... |
| 工作项数量 | ...(S: x, M: y, L: z) |
| 应拆小的工作项 | ... |
在表格后添加假设与注意事项部分:
- 列出当需求模糊时所做的假设。
- 警告需要拆分的 L 规模工作项。
- 指出高第三方/集成依赖的风险(集成维度 = 3)。
- 提醒这是针对 1 名中级开发者的估算;尚未包含项目管理缓冲、会议或入职时间。
Nguyên tắc khi estimate
估算原则
- Chấm điểm bảo thủ nhưng trung thực — đừng cố ép xuống thấp. Khi phân vân giữa 2 mức, chọn mức cao hơn và ghi chú lý do.
- Mỗi điểm số phải bám vào mô tả công việc thật — không chấm điểm chung chung. Tham chiếu techstack: stack lạ/mới với team → tăng Integration hoặc thêm ghi chú rủi ro.
- Tách đầu việc size L thành các sub-task nhỏ hơn khi có thể, rồi estimate lại từng cái.
- Tổng man-day ra số cụ thể, không để range trong bảng cuối (range chỉ dùng để suy luận nội bộ).
- 打分要保守但诚实 — 不要刻意压低。在两个级别之间犹豫时,选择较高级别并注明原因。
- 每个分数必须基于实际工作描述 — 不要泛泛打分。参考技术栈:对团队来说陌生/较新的技术栈 → 增加集成维度得分或添加风险备注。
- 尽可能将 L 规模的工作项拆分为更小的子任务,然后重新估算每个子任务。
- 总 man-day 应输出具体数字,不要在最终表格中保留范围(范围仅用于内部推理)。