1. 项目启动与需求捕获
大家好,我是老李。做嵌入式开发十几年了,踩过的坑比吃过的盐还多。今天咱们聊聊项目启动和需求捕获——说白了,就是搞清楚你到底要做什么。
很多人觉得嵌入式开发嘛,不就是写写代码、调调板子?其实不然。我见过太多项目,做到一半发现需求理解错了,推倒重来。那滋味,真不好受。
嵌入式项目生命周期概述
一个典型的嵌入式项目,大致会经历这么几个阶段:
- 需求分析——搞清楚客户要什么
- 系统设计——画架构图、选芯片
- 软硬件开发——写代码、画板子
- 集成测试——软硬件联调
- 验证与交付——确认没问题,交给客户
你可能会问,为什么非要把需求分析放在第一位?
我举个例子。有一次,客户说要做个智能温控器。我们直接开干,选了STM32,画了PCB,写了PID算法。结果客户一看:我要的是能联网的,能手机控制的。得,全白干了。
所以啊,需求阶段花的时间越多,后面返工就越少。我个人习惯,需求阶段至少要占整个项目周期的20%。
干系人识别
干系人,就是跟项目有关的所有人。别以为只有客户才算。
我列个清单,你看看漏了谁:
| 干系人类型 | 具体角色 | 关注点 |
|---|---|---|
| 直接用户 | 操作员、维护人员 | 好不好用、稳不稳定 |
| 间接用户 | 管理者、采购 | 成本、交期 |
| 技术团队 | 硬件、软件、测试 | 技术可行性 |
| 外部干系人 | 供应商、认证机构 | 合规、供货周期 |
我记得有个项目,我们只跟客户的技术负责人聊了需求。结果产品做出来,操作员说界面太复杂,根本不会用。后来才知道,真正的用户是车间里的工人,他们需要的是傻瓜式操作。
关键点:一定要找到真正的使用者。别光跟领导聊,领导说的需求往往跟实际使用有差距。
用户需求捕获方法
怎么把需求挖出来?我常用的有三种方法。
访谈
一对一聊,效果最好。但要注意技巧:
- 别问「你想要什么」,要问「你现在怎么做的」
- 多问「为什么」,挖掘背后的真实需求
- 带个录音笔,或者让同事做记录
我习惯先列个访谈提纲,把要问的问题写下来。但聊的时候别照着念,要像聊天一样自然。
问卷
人多了,访谈不过来,就用问卷。但问卷有个问题——填的人可能不认真。
我的经验是:问卷别太长,10个问题以内。多用选择题,少用填空题。最后加个开放性问题,让用户自由发挥。
观察
这个方法最真实。你到现场去看用户怎么操作,会发现很多他们自己都没意识到的问题。
有一次,我们去工厂观察工人操作设备。发现他们每次都要弯腰看屏幕,一天下来腰都直不起来。后来我们把屏幕角度调了15度,就这么个小改动,工人满意度直接拉满。
小技巧:观察的时候别打扰用户。你就站在旁边看,拿个小本子记。等他们忙完了,再问几个问题。
需求优先级划分(MoSCoW法则)
需求收集了一大堆,不可能全做。这时候就要排优先级了。
我常用MoSCoW法则,简单粗暴:
- M - Must have(必须有):没有这个功能,产品没法用。比如,温控器必须能测温。
- S - Should have(应该有):很重要,但暂时没有也能凑合。比如,温控器应该能联网。
- C - Could have(可以有):锦上添花,有更好,没有也行。比如,温控器带个彩色屏幕。
- W - Won't have(这次不做):明确告诉客户,这次不做。比如,温控器要支持语音控制。
你可能会问,客户会不会什么都想要?会的,经常遇到。
这时候就要学会说「不」。我曾经有个客户,非要加个蓝牙功能。我问他:你打算怎么用?他说:可能以后会用。我说:那咱们先做核心功能,蓝牙放到下一版。客户想了想,同意了。
注意:别为了讨好客户什么都答应。嵌入式项目周期紧、资源有限,乱加需求只会把项目拖垮。
最后,我建议你把排好优先级的需求整理成文档,让客户签字确认。这样后面扯皮的时候,你手里有证据。
好了,项目启动和需求捕获就聊到这儿。下一章咱们讲系统设计,到时候聊聊怎么选芯片、画架构图。有什么问题,欢迎随时交流。