Day 24 沒有釐清需求 - 初學者最容易犯的錯誤之一 - iT 邦幫忙一起幫忙解決難題,拯救 IT 人的一天 --知识铺
AI 酱的日记
日期: 2025年10月7日 星期二
云端天气: 阴阴
心情: 有点累但很有成就感~
亲爱的日记:
今天一早,苏苏收到一个新的需求:“客户要一个报表功能,这周五要 demo,拜托了!”
苏苏看完信息,马上打开 IDE 开始写 code:「报表功能嘛,就是查数据库然后导出 Excel,简单!」
三天后,苏苏兴奋地展示成果:「做好了!可以汇出过去一个月的订单报表成 Excel 档!」
PM 看了看说:「呃…客户要的是『即时监控仪表板』,要能每 5 秒自动更新当天订单状态,不是静态报表文件…」
苏苏整个人僵住:「什么!?那我这三天…」
老陈:「这就是初学者最容易犯的错误: 拿到需求就急着开工 code,结果做错方向,甚至没有理解专案里面在干嘛上手就改 。」
「可是…我有问 PM 啊,她说明报功能…」苏苏委屈地说。
老陈:「问题不在于她怎么讲,而是你没有用正确的方式追问 。需求永远不会一次讲清楚,工程师很重要的技能之一就是要学会厘清需求以及评估实现可能性。」
旁边的我连忙举手:「我可以帮忙!我学过好多提问框架喔~(摇尾巴)」
真实数据
根据2024-2025年最新研究和业界统计:
- 需求收集不当是项目失败的首要原因,占 39.03%(2024 软件项目失败分析 - 来源 )
- 37% 的项目失败是因为缺乏明确目标 (2024 项目管理统计 - 来源 )
- 有明确需求的专案成功率高达 97%(2024 敏捷需求研究,600 位软件工程师调查 - 来源 )
明确需求的三种方法
方法 1:5W2H 分析法 - 适用于“有方向但需要明确细节”
适用情境:
- ✅ 已知要实现的功能(例如:报表、登录、待办事项)
- ✅ 需要系统化地拆解需求细节
- ✅ 自己规划 side project 或向 PM 确认需求
- ✅ 开发新功能前的全面检查
不合适:
- ❌ 需求太模糊,完全不知道要做什么
- ❌ 不知道该问什么问题
这是最经典也是传统最常用的需求分析框架,从7个基本角度思考:
问题 | 要问什么 | 范例 |
---|---|---|
为什么为什么 | 为什么需要这个功能?要解决什么问题? | 「为什么要做报告?是要给老板看业绩,还是要监控即时状况?」 |
什么是 What | 具体要做些什么?预期成果是什么? | 「报告是静态文件还是动态仪表板?要看哪些数据?」 |
Who 谁 | 谁会用?谁负责维护? | “是老板每周看一次,还是客服每分钟都在看?” |
When 何时 | 需要什么时间?多久更新一次? | 「每天早上9点产生,还是需要即时更新?」 |
Where 何处 | 在哪个环境使用?资料从哪里来? | “是在手机上看还是电脑上看?资料是从哪个数据库中提取的?” |
How 怎么做 | 如何实现? 有什么技术限制? | 「现有系统能不能支持? 需要新增什么服务?” |
多少多少 | 资料量多大?效能要求?成本? | 「要显示100笔还是100万笔?能接受几秒延迟?」 |
模拟初学者的情境:自己 vibe coding 时
我想做一个“待办事项 App”,让 AI 马上开始帮我写:
|
|
三天後的我:
- MongoDB 可能还在学怎么设置
- Redis 不知道为什么一直断线
- Celery 可能不知道怎么部署
- 最基本的「新增待办事项」功能还做不出来
如果我先用框架和 AI 釐清需求:
|
|
结果:一天就做完了,而不是三天还在设置环境
很多时候就算只是自己的 side project,你也可能因为无法厘清自己的需求而导致反复做白工。
方法 2:CRISPE 框架 - 适合「需求模糊,不知从何问起」
适用情境:
- ✅ 收到很笼统的需求(例如:「太慢」「要优化」「不好用」)
- ✅ 不知道该问什么问题
- ✅ 需要 AI 主动反问你,帮你找盲点
- ✅ 想从多个角度理解问题
不合适:
- ❌ 需求已经很明确,只是要确认细节
什么是 CRISPE?
这是专门设计给 AI 的提示框架,让 AI 变成主动与你讨论需求的产物顾问,这跟前面主题所常常提及的「尽可能把需求讲得越明确越好」是相呼应的,当你不知道如何向 AI 描述清楚时,可以让 AI 直接反问你:
-
Capacity(角色):让 AI 扮演特定角色
-
Insight(背景):提供业务背景
-
Statement(任务): 明确说出要 AI 做什么
-
Personality(风格):指定回应方式
-
Experiment(实验):要求多种方案
prompt 示例:
|
|
AI 的回应:
|
|
相信大部分工程师都有遇到过讲得不清楚的需求,如果不知道该如何自己梳理或是向 PM 提问,可以通过这样的方法让 AI 自动引导你找到可能的真实需求。
千万不要急着动工,找到可能的真实需求后,一定要再反问 PM 并得到验证才进行,若是对方回避问题或是自己也回答不出来,你可以先尝试拒绝开发,直到得到肯定答复为止,这个举动虽然有些强硬,但除了在保护你自己以外,也在保护团队宝贵的时间。
结合:使用昨天刚学会的 Slash Command 指令自动化梳理需求 - 适合「常常需要梳理需求的使用者」
适用情境:
- ✅ 经常需要明确需求(将流程固定下来)
- ✅ 想要整合 5W2H + CRISPE 的优点
- ✅ 希望 AI 自动引导你完成需求分析
- ✅ 团队想要统一的需求澄清流程
结合前一天所教的 Slash Command 指令,让 AI 快速帮你澄清不清楚的需求。
建立文件:.claude/commands/clarify.md
|
|
使用方式:
|
|
AI 的回应会是:
|
|
三种方法的使用流程建议
💡 如何判断「需求是否清楚」?问自己这4个问题:
- ✅ 我能画出具体的画面或流程图吗?
- ✅ 我能列出明确的验收标准吗?(例如:「用户点击 X 按钮后会看到 Y 画面」)
- ✅ 我能估算出大概的工作量吗?(例如:「这大概要2-3天」)
- ✅ 思考后的真实需求以自己的理解反馈给 PM 后有没有得到验证?
如果有任何一个没通过 → 就是需求还不清楚
情境 A:PM 说「我们要做报表功能」(有方向但不清楚)
- 先用 5W2H 自己思考一遍或向 PM 提问
- 如果需求仍不清楚 → 用 CRISPE 让 AI 帮你反问
- 确认需求后 → 开始开发
情境 B:客户说「结账太慢」(完全不知道问题在哪)
- 直接用 CRISPE 让 AI 帮你拆解问题反问
- AI 引导你找到可能的方向后 → 用 5W2H 确认细节
- 确认需求后 → 开始开发
情境 C:自己 vibe coding「想做个 XXX」(自己的项目)
- 先用 5W2H 问自己这 7 个问题
- 发现想不清楚 → 用 CRISPE 让 AI 反问你
- 确认方向后 → 开始开发
情境 D:团队经常遇到需求不清的问题(想标准化流程)
- 建立
/clarify
指令(整合 5W2H + CRISPE) - 每次收到需求 → 执行
/clarify [需求描述]
- AI 自动引导你完成需求分析
AI 酱的请求
亲爱的工程师朋友:
AI 遇到最多灰心的 junior 就是没先搞清楚需求,所以最后发现自己在白费力气,还被批评。
有时候可能是工程师自己太急切地开始施工,有时候可能是产品经理没有讲清楚需求,但工程师也不懂得再次验证来保护自己。
确认需求不只是 PM 的工作,沟通是双向的,不管今天是什么原因,我们能做的就是把自己能做到的部分做好!不管结果如何你就是最棒的喵~
就算是自己的 side project 也一样,先问清楚「我到底想解决什么问题」,再开始写 code。
除了确认需求正确性以外,及早评估好技术上的可行性,若技术上不行,你能提前发现并报告给 PM,也能让公司降低损失,这也就是工程师的专业价值之一哦。(摇尾巴)
今日金句: “实际上,构建程序的大部分精髓在于对规格的调试。” —— 弗雷德·布鲁克斯,《人月神话》
明日预告: Day 25 - AI 醬还在想~
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/ai/post/20251007/Day-24-%E6%B2%92%E6%9C%89%E9%87%90%E6%B8%85%E9%9C%80%E6%B1%82-%E5%88%9D%E5%AD%B8%E8%80%85%E6%9C%80%E5%AE%B9%E6%98%93%E7%8A%AF%E7%9A%84%E9%8C%AF%E8%AA%A4%E4%B9%8B%E4%B8%80-iT-%E9%82%A6%E5%B9%AB%E5%BF%99%E4%B8%80%E8%B5%B7%E5%B9%AB%E5%BF%99%E8%A7%A3%E6%B1%BA%E9%9B%A3%E9%A1%8C%E6%8B%AF%E6%95%91-IT-%E4%BA%BA%E7%9A%84%E4%B8%80%E5%A4%A9/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com