1. 项目启动与需求捕获

大家好,我是老李。做嵌入式开发十几年了,踩过的坑比吃过的盐还多。今天咱们聊聊项目启动和需求捕获——说白了,就是搞清楚你到底要做什么。

很多人觉得嵌入式开发嘛,不就是写写代码、调调板子?其实不然。我见过太多项目,做到一半发现需求理解错了,推倒重来。那滋味,真不好受。

嵌入式项目生命周期概述

一个典型的嵌入式项目,大致会经历这么几个阶段:

  • 需求分析——搞清楚客户要什么
  • 系统设计——画架构图、选芯片
  • 软硬件开发——写代码、画板子
  • 集成测试——软硬件联调
  • 验证与交付——确认没问题,交给客户

你可能会问,为什么非要把需求分析放在第一位?

我举个例子。有一次,客户说要做个智能温控器。我们直接开干,选了STM32,画了PCB,写了PID算法。结果客户一看:我要的是能联网的,能手机控制的。得,全白干了。

所以啊,需求阶段花的时间越多,后面返工就越少。我个人习惯,需求阶段至少要占整个项目周期的20%。

干系人识别

干系人,就是跟项目有关的所有人。别以为只有客户才算。

我列个清单,你看看漏了谁:

干系人类型 具体角色 关注点
直接用户 操作员、维护人员 好不好用、稳不稳定
间接用户 管理者、采购 成本、交期
技术团队 硬件、软件、测试 技术可行性
外部干系人 供应商、认证机构 合规、供货周期

我记得有个项目,我们只跟客户的技术负责人聊了需求。结果产品做出来,操作员说界面太复杂,根本不会用。后来才知道,真正的用户是车间里的工人,他们需要的是傻瓜式操作。

关键点:一定要找到真正的使用者。别光跟领导聊,领导说的需求往往跟实际使用有差距。

用户需求捕获方法

怎么把需求挖出来?我常用的有三种方法。

访谈

一对一聊,效果最好。但要注意技巧:

  • 别问「你想要什么」,要问「你现在怎么做的」
  • 多问「为什么」,挖掘背后的真实需求
  • 带个录音笔,或者让同事做记录

我习惯先列个访谈提纲,把要问的问题写下来。但聊的时候别照着念,要像聊天一样自然。

问卷

人多了,访谈不过来,就用问卷。但问卷有个问题——填的人可能不认真。

我的经验是:问卷别太长,10个问题以内。多用选择题,少用填空题。最后加个开放性问题,让用户自由发挥。

观察

这个方法最真实。你到现场去看用户怎么操作,会发现很多他们自己都没意识到的问题。

有一次,我们去工厂观察工人操作设备。发现他们每次都要弯腰看屏幕,一天下来腰都直不起来。后来我们把屏幕角度调了15度,就这么个小改动,工人满意度直接拉满。

小技巧:观察的时候别打扰用户。你就站在旁边看,拿个小本子记。等他们忙完了,再问几个问题。

需求优先级划分(MoSCoW法则)

需求收集了一大堆,不可能全做。这时候就要排优先级了。

我常用MoSCoW法则,简单粗暴:

  • M - Must have(必须有):没有这个功能,产品没法用。比如,温控器必须能测温。
  • S - Should have(应该有):很重要,但暂时没有也能凑合。比如,温控器应该能联网。
  • C - Could have(可以有):锦上添花,有更好,没有也行。比如,温控器带个彩色屏幕。
  • W - Won't have(这次不做):明确告诉客户,这次不做。比如,温控器要支持语音控制。

你可能会问,客户会不会什么都想要?会的,经常遇到。

这时候就要学会说「不」。我曾经有个客户,非要加个蓝牙功能。我问他:你打算怎么用?他说:可能以后会用。我说:那咱们先做核心功能,蓝牙放到下一版。客户想了想,同意了。

注意:别为了讨好客户什么都答应。嵌入式项目周期紧、资源有限,乱加需求只会把项目拖垮。

最后,我建议你把排好优先级的需求整理成文档,让客户签字确认。这样后面扯皮的时候,你手里有证据。

好了,项目启动和需求捕获就聊到这儿。下一章咱们讲系统设计,到时候聊聊怎么选芯片、画架构图。有什么问题,欢迎随时交流。