第二章:需求分析实战——如何与甲方/工艺工程师沟通、需求文档(PRD)撰写要点、功能清单与优先级划分

好,咱们直接进入正题。

很多刚入行的HMI工程师,拿到项目第一件事就是打开软件开始画界面。我见过太多这样的案例——画了三天,甲方一看,全推翻了。为什么?因为需求没对齐。

说白了,需求分析才是整个HMI项目里最值钱的环节。你画图可能只花20%的时间,但需求分析要占掉40%的精力。剩下的40%?改需求。

2.1 如何与甲方/工艺工程师有效沟通

先说说沟通对象。甲方和工艺工程师,其实是两类完全不同的人。

甲方通常是老板或项目经理,他们关心的是:

  • 这个界面看起来专不专业?
  • 操作员能不能快速上手?
  • 能不能减少误操作?
  • 成本控制在多少?

工艺工程师呢?他们关心的是:

  • 这个参数能不能实时显示?
  • 报警阈值设多少?
  • 历史数据能不能导出?
  • 操作权限怎么分配?

你看,关注点完全不同。所以沟通策略也要分开。

我的个人习惯:第一次见面,先听甲方讲30分钟,不打断。然后问三个问题:
1. 您最不能接受的操作是什么?
2. 之前用过的HMI系统,最让您头疼的是什么?
3. 如果只能保留三个功能,您选哪三个?
这三个问题能帮你快速抓住核心需求。

跟工艺工程师沟通,我建议你带上纸和笔。去现场走一圈,看他们怎么操作。我在项目中遇到过一位工艺工程师,他说「这个按钮要放在左上角」,我问为什么?他说「因为操作员右手拿工具,左手点屏幕」。你看,这种细节,你不去现场根本不知道。

避坑指南:我曾经因为没去现场,直接按甲方给的文档画界面。结果到了现场发现,操作台旁边有个柱子,正好挡住了屏幕右下角。那个「急停」按钮就在右下角……嗯,后来连夜改布局。

2.2 需求文档(PRD)撰写要点

PRD不是写作文,是写说明书。我见过最离谱的PRD,写了30页,全是「界面要美观」「操作要流畅」这种废话。没用。

好的PRD,要能回答三个问题:

  1. 谁用?——操作员、管理员、维护人员?
  2. 干什么?——监控、控制、报警、记录?
  3. 怎么干?——触摸、键盘、鼠标?

我一般把PRD分成这几个模块:

模块 内容 示例
项目概述 项目背景、目标、范围 本系统用于监控3号生产线温度
用户角色 不同角色的权限和操作 操作员可查看/修改设定值,管理员可修改配方
功能需求 每个界面的具体功能 主界面显示实时曲线,点击可放大
非功能需求 性能、安全、兼容性 页面切换响应时间<0.5秒
数据接口 与PLC/上位机的通信协议 Modbus TCP,地址映射表见附录

写PRD的时候,有个小技巧:用「用户故事」代替「功能列表」。比如:

  • ❌ 功能:显示温度报警
  • ✅ 用户故事:作为操作员,我希望当温度超过80度时,屏幕闪烁红色并发出声音,这样我能第一时间发现异常。

你想想看,哪个更容易让开发人员理解?

我个人习惯:PRD里一定要附上「界面草图」。不用画得多精细,手绘都行。关键是让甲方确认布局。我吃过亏——文字写了「左上角放logo」,结果甲方理解成「左上角放公司全称+logo+标语」,最后界面塞得满满当当。

2.3 功能清单与优先级划分

功能清单不是把所有想到的功能都列上去。那样做,项目永远做不完。

我常用的方法是MoSCoW法则

  • M - Must have(必须有):没有这个功能,系统没法用。比如:实时数据显示、报警提示。
  • S - Should have(应该有):重要但不紧急。比如:历史趋势图、报表导出。
  • C - Could have(可以有):锦上添花。比如:多语言切换、皮肤主题。
  • W - Won't have(这次不做):明确排除。比如:远程APP控制(留给二期)。

举个例子,一个典型的HMI功能清单:

功能 优先级 说明
主界面实时数据显示 M 显示温度、压力、流量等关键参数
报警列表与确认 M 显示当前报警,支持确认/消音
参数设定 M 操作员可修改设定值
历史趋势曲线 S 查看最近24小时数据
用户权限管理 S 操作员/管理员/维护员三级
数据导出到U盘 C CSV格式,按日期导出
远程监控(手机端) W 二期再考虑
避坑指南:我曾经遇到一个甲方,把所有功能都标成「M」。怎么办?我拿出合同,指着「交付周期」说:您要求30天交付,如果全部做M,至少需要60天。您选哪个?最后他乖乖把一半功能挪到了S和C。记住,优先级是跟时间和预算绑定的

还有一个坑:功能清单要写「不做什么」。我习惯在文档最后加一页「本次不包含的功能」,让甲方签字确认。为什么?因为项目做到一半,甲方突然说「加个报表功能吧」,你拿出这张纸,他就不吭声了。

2.4 需求确认与变更管理

需求分析做完,一定要做一件事:需求确认会。把甲方、工艺工程师、开发人员叫到一起,对着PRD和界面草图,一条一条过。

我一般会准备一个需求确认表

编号 功能 确认人 确认日期 备注
REQ-001 主界面实时数据显示 张工(甲方) 2024-03-15 确认显示格式为XX.XX
REQ-002 报警阈值设定 李工(工艺) 2024-03-15 温度上限80度,压力上限1.5MPa

确认之后,再有人提需求变更,就按流程走:

  1. 提交《需求变更申请单》
  2. 评估影响(工期+成本)
  3. 甲方签字确认
  4. 更新PRD和功能清单
我的经验:需求变更不可怕,可怕的是口头变更。我曾经有个项目,甲方在微信上说「改一下颜色」,我改了。第二天又说「还是改回去吧」,我又改了。第三天说「其实我想要第三种颜色」……从那以后,所有变更必须走邮件或书面流程。不是我不信任甲方,是怕大家记性不好。

好了,需求分析这块就讲这么多。下一章咱们聊聊原型设计——怎么用Axure或Figma快速做出可交互的HMI原型,让甲方在开发前就能「摸到」最终效果。