在SAP圈子里,流传着一句大实话:不会写FS的顾问,迟早要“还债”。刚入行的时候,我总觉得功能说明书就是把业务需求“翻译”给开发听,写个大概意思就等着ABAPer交代码。直到某次上线前夜,开发当着项目经理的面,指着我写的FS说“这逻辑没法开发,你连库存移动类型的条件都没定义清楚”,那一刻我才意识到,FS不是应付差事的文档,而是整个项目交付链条里的“契约”和“保命符”。
这篇内容,我想把这几年来写FS的经验完整拆开讲。它包含了如何从一团乱麻的业务描述里捋出逻辑主线,如何把“大概差不多”变成“字段级精确”,如何规避那些开发看了想骂人的含糊表述,也会分享我踩过的坑和一套可以直接套用的FS写作框架。无论你是刚入行的初级顾问,还是被FS折腾过多次的资深实施顾问,这篇文章都值得你花十分钟读完,顺手收藏。
1. FS写不好,项目里第一个“背锅”的就是你
1.1 FS的本质:不是“翻译”,而是业务与开发的“契约书”
很多人理解FS是“把业务语言翻译成开发语言”,这个说法只对了一半。翻译讲究的是“信达雅”,而FS讲究的是“确定性与可验证性”。说白了,FS是业务顾问和ABAP开发之间签订的一份契约:业务顾问承诺“我描述的就是业务真正要的”,开发承诺“我按这个说明书实现,做完就是验收标准”。
既然是契约,那就必须做到颗粒度足够细。细到什么程度?细到开发拿到FS后,不需要再回头找你确认“这个字段啥意思”“这个逻辑如果用户不填怎么办”“这个金额是取抬头还是取行项目”,细到测试人员能照着FS写测试用例,细到用户代表看完FS能点头说“对,这就是我们要的”。
我见过太多顾问写FS,写到最后变成一篇“业务流程说明文学”——背景写了三页,痛点写了两页,到真正功能需求时只剩一句“系统需要实现库存库龄报表,能展示各物料库龄情况,超龄的要突出显示”。这种文档交到开发手里,开发能写出来才怪了。什么叫超龄?按什么口径计算库龄?收发货怎么影响库龄?输出哪些字段?突出显示是标红还是排序?所有信息都不确定,最后开发凭自己理解写完,需求方一看“不对”,返工的重担又落回业务顾问头上。
1.2 为什么说FS是顾问的“保命神技”
做实施项目的都懂,项目里最危险的事情就是“口头需求”。业务方今天在会议室说了一嘴“这个报表最好能按月份汇总”,你点头说“没问题”,一个月后人家问“我们要的月汇总呢”,你回头翻笔记,发现当时根本没记具体是哪个字段按月汇总。没有FS,就没有需求确认的依据。
FS就是这些“口头需求”的收容所。你把所有需求写进文档,明确每条逻辑、每个字段、每个例外处理,发邮件给业务确认。业务回一句“确认无误”,这个需求就彻底锁定了。后续再改,就得走变更流程,哪怕业务拍着桌子说“当时我不是这么说的”,你也可以拿出邮件,客气地回复“当时确认的版本里,这里是有文字说明的,可能还需要您再确认下这次变更是否纳入本次上线范围”。
更重要的是,一份高质量的FS能让你在项目里“被动变主动”。开发不返工,测试有依据,验收有标准,项目经理觉得你靠谱,业务觉得你听懂了他们的需求,ABAPer觉得跟你配合不累。这一张纸,就是你专业度的直接体现。
1.3 好FS的四个可衡量标准
我自己的项目里,衡量一份FS写得好不好,不看文笔,只看四点:
- 第一,开发零歧义。开发拿到文档,不需要再追问任何业务口径相关的细节,按文档写就行。
- 第二,测试可执行。测试人员能直接根据FS中的输入条件、业务规则、输出结果,构造测试数据和预期结果。
- 第三,逻辑可自洽。文档内部不存在前后矛盾:比如前面说只展示已过账凭证,后面又说包含未过账草稿,这种就是逻辑不自洽。
- 第四,变更可追溯。每一版修订都记录在案,谁在什么时间改了什么内容,为什么改,一目了然。
这四条标准看着简单,真要做到每一条都需要下一番功夫。接下来我从需求澄清开始,完整走一遍写FS的全过程。
2. 下笔之前,先做三轮需求澄清
2.1 澄清需求时,最该问的六类问题
FS写在纸上之前,功夫全在访谈里。我总结了一套固定的需求澄清路径,每次写FS都按这个路径走一遍,基本不会漏关键信息。
第一类,目标问题。问业务:“你希望解决什么问题?现在是怎么做的?痛点在哪?”比如库龄报表,业务可能说“我们现在查库龄要靠线下Excel手工拼数据,月底财务要数据时根本凑不齐”。搞清楚目标,才能判断功能范围。
第二类,定义问题。这是最要命的部分。同样是“库龄”,仓库说的可能是“从收货入库到现在的自然天数”,财务说的可能是“按照先进先出抵消后的剩余金额的加权天数”,你要是不问,最后做出来的东西总有一方不满意。定义问题必须落实到计算公式和判定口径。
第三类,流程问题。“这个功能在业务流程中处于哪一环?前置流程是什么?后置流程是什么?有没有可能被其他事务打断?”比如库龄报表,就要搞清楚收货、发货、库存调拨、盘点、冲销都怎么影响库龄计算。
第四类,操作问题。“谁来用?什么时候用?频次多高?在哪个事务码下用?用的时候是天天看还是月底看?”这决定了报表输出方式是ALV就够了,还是要支持导出Excel、定时推送邮件。
第五类,数据问题。“数据从哪里来?依赖哪些主数据?有没有数据缺失的情况?历史数据迁移吗?”SAP项目里,很多时候功能本身不难,难的是数据不干净,比如物料主数据里仓储位置不规范,这会影响库龄按仓库维度归集的准确性。
第六类,异常问题。“什么情况算异常?数据异常时希望系统怎么表现?提示错误还是警告还是直接拦截?”比如报表取数时发现物料的收货日期为空,是跳过还是单独列一个“数据异常区”?这些都要问清楚。
2.2 一个真实场景:库龄这个“简单需求”背后的地狱细节
我用某装备制造企业的库存库龄报表来举例,因为这种需求看起来人畜无害,其实是最容易写翻车的FS类型之一。
业务最初的需求就一句话:“我们要一个库龄报表,看每个物料在库里放了多久,超过180天的标红。”
如果我直接写FS:“系统输出物料库龄清单,库龄超过180天标红。”那项目必炸。因为当你深入问下去,会发现“库龄”至少有三个口径:
- 口径A:按当前库存批次收货日期计算,物料批次收货到今天的天数就是库龄,超180天标红。
- 口径B:按先进先出消耗法计算。同一物料有多次采购批次入库,出库时先消耗最早批次,剩余库存由多个入库批次组成,库龄是剩余库存的加权平均天数。
- 口径C:按财务折旧逻辑计算,库龄长的库存按比例计提减值准备,报表要按财务口径输出金额。
你问业务要哪个口径,业务反问“你觉得哪个合适?”这个时候你不能当甩手掌柜,而是要通过访谈总结出业务实际状态:该企业仓库是按批次管理的,化学品物料必须追踪生产日期,出库时严格按照先进先出;而标准件组装料没有批次管理,系统收货日期就是入库日期。两种物料根本不能用同一个算法。
这个澄清结论写到FS里,就变成了具体的逻辑分支:启用批次管理的物料,按批次库存的收货日期取库龄,先进先出抵消后展示剩余批次库龄;非批次管理物料,按物料当前总库存的最后一笔入库日期计算“最近一次入库后滞存天数”。两种口径并用,业务才觉得“这样才是我们真实业务”。
所以你看,FS里那几行“逻辑描述”,背后全是访谈里问出来的血泪。
2.3 分清“业务需求”和“技术猜想”,别越俎代庖
写FS另一大忌讳,是把技术实现方案写死。比如顾问写:“用内表嵌套循环去重后输出。”这就是越界了,开发用什么技术手段实现,是技术顾问和开发的事,业务顾问管到内表循环,只会限制开发发挥,还可能写出不可行的方案。
但也有一类内容,业务顾问必须写到,那就是“技术约束条件”。比如“性能要求:报表支持10万行数据导出,响应时间不超过30秒”,这种是性能约束,不是实现方案,必须写。再比如“该接口需要考虑SAP与外部系统网络不稳定的情况,需要支持断点重传”,这也是业务侧的底线要求。
FS里应该出现的是“什么”和“为什么”,把“怎么实现”留给技术设计说明书(Technical Specification,TS)。这也是顾问职业分工的专业性所在。
3. 一份能落地的FS必须长这样:结构逐块拆
3.1 文档头、版本记录与变更日志:每一版变更都清清楚楚
很多顾问不重视文档头,觉得这就是个形式。但它恰恰是FS“契约属性”最强的部分。出过事的人都知道,最怕的就是同一份FS存在三个版本,开发手上一个,业务手上一份,你自己电脑里还有一份,谁都不知道哪版是准的。
我用的FS模板,文档头必须包含以下字段:
- 项目名称、模块、功能编号(如FV-SD-012)
- 功能名称
- 需求提出方、业务接口人
- 编制人、编制日期
- 当前版本号、历史版本列表
- 评审人、评审结论、评审日期
历史版本列表必须用表格写清楚:版本号、日期、修改摘要、修改人、确认人。别小看这个表,项目后期业务提需求变更时,你可以在十分钟内说清“这版改了什么、影响范围在哪、原逻辑是什么、新逻辑是什么”。没有版本记录,你就只能从微信聊天记录里考古,那种痛苦我经历过不止一次。
变更日志必须坚持“每次修改都补一条”的原则。哪怕只是改了一个字段的参考表,也补一条。偷懒一时爽,追溯火葬场。
3.2 功能概述与业务背景:写清楚“为什么做”比写清楚“做什么”更重要
功能概述不是凑字数,是要让所有读者——包括新加入项目的顾问、测试人员、甚至领导——在三分钟之内理解这个功能存在的意义。概述部分我会控制在300字以内,内容包括三块:
- 业务背景:为什么需要这个功能,现状痛点是什么。
- 功能目标:这个功能上线后能解决什么问题,期望的业务效果是什么。
- 功能范围:明确“做”和“不做”。这非常重要,特别是“不做”的部分。比如某报表本期不包含外币折算功能,如果不写清楚,测试阶段就可能被当成缺陷提出来。
业务背景的行文要保持“克制”。不用煽情,不用渲染,就平铺直叙:“当前库存资金占用居高不下,管理层需要按库龄区间掌握积压库存结构,以支持处置决策。”这就够了。
3.3 详细功能需求:输入、输出、界面、权限一个都不能少
这是FS的核心正文区,占整个文档70%以上的篇幅。我把它拆成几个子块,挨个说清楚怎么写。
输入条件。包含画面选择条件、权限限制条件、数据前置条件。比如报表的选择屏幕包括:工厂(必填)、仓库代码(可多选)、物料类型(可多选)、库存类型(普通库存/质检库存/冻结库存/在途库存)、库龄区间(可自定义区间值)。另外还要写明默认值:比如工厂默认用户登录工厂;物料类型默认全选。选择条件的参考表和帮助功能(F4)也要注明,比如工厂参考T001W,物料类型参考T134。
输出字段。这张字段清单表是整个FS里我最看重的部分。每一行一个字段,列清楚字段名称、字段说明、数据类型、长度、来源(是取数据表哪个字段,还是计算得出)、输出顺序、是否可排序、是否合计。比如库龄报表输出字段就有:物料号、物料描述、工厂、仓库、库存类型、库存数量、库存金额、最后入库日期、库龄天数、库龄区间(30天内/31-60天/61-90天/91-180天/超180天)。字段表写出价值来,开发几乎就是“照着搬”了。
业务逻辑描述。这是FS的灵魂,下一节专门讲,这里先按下不表。
界面布局。可以用ASCII线框图或表格的方式把ALV输出布局画出来,标清列顺序和关键展示规则。库龄报表的核心布局就是:按工厂、仓库、物料汇总,库龄区间作为分列展示(即交叉表)。这个布局画出来,开发一眼就明白代码结构。
权限设计。包含“谁能用这个事务码”和“数据权限范围”。库龄报表涉及库存金额,属于敏感数据,就需要明确:财务用户只能看到本公司的工厂,不能跨公司;仓库用户能看到本仓库的库存数量,但金额列置灰不可显示。这些权限要求写到FS里,顾问转给权限顾问做PFCG角色设计,才不会最后权限上线后发现数据越权了。
3.4 测试计划与交付标准:质量关口必须前置
FS里写测试计划,不是越位替测试团队干活,而是把验收标准定在前面。测试计划至少包含以下内容:
- 典型测试场景(至少覆盖正常路径和两条异常路径)
- 每种场景的业务准备条件(主数据、单据)
- 输入数据和预期输出数据
- 数据核对方法(比如和哪张标准报表或哪个事务码的结果做比对)
比如库龄报表的测试场景就有:场景一,同一物料两个批次入库,先出库一个批次后,剩余批次的库龄展示正确;场景二,财务口径的库龄区间金额合计与财务月结库存报表金额一致;场景三,无库存记录物料不出现在报表中,而不是显示零库存行。
交付标准我习惯写成“开发完成的定义”:程序按FS文档完整实现;开发自测结果和测试数据预期一致;代码评审通过;用户确认关键演示场景通过。这样开发结束开发工作后,移交测试的过程就有明确边界。
4. 从大白话到伪代码:让开发一次就能开工
4.1 逻辑三段式的写法与关键转换技巧
FS的业务逻辑部分,是区分“资深顾问”和“普通顾问”的分水岭。新手喜欢用大段自然语言描述流程,资深顾问则用“条件-动作-例外”三段式组织逻辑。
我习惯的逻辑写法是:先用文字定性描述,再用伪代码精确表达。伪代码不需要符合语法,但逻辑分支必须书写清晰,包含所有条件和动作。
以库存库龄报表“按先进先出口径计算剩余批次库龄”为例,文字描述可能是:“系统需根据物料的出入库历史,按照先进先出方法确定当前库存对应的入库批次,以此计算库龄。”
伪代码就可以写成:
FOR EACH 物料 IN 查询结果: 判断物料是否启用批次管理 IF 物料.批次管理 = 'X': 获取物料所有批次库存 获取每个批次的收货入库日期 FOR EACH 批次 IN 批次库存: 计算 批次库龄天数 = 当前日期 - 批次收货日期 将批次归入库龄区间 结束FOR 输出 该物料所有批次库存及对应库龄区间 ELSE: 获取物料当前总库存数量 获取最近一笔收货入库的凭证日期 计算 最近收货存储天数 = 当前日期 - 最近收货日期 归入库龄区间 输出 该物料总库存、最近入库日期、库龄天数 结束IF 结束FOR伪代码写完,开发的逻辑就已经通了80%。剩下的是表、字段、增强点这些细节衔接。
4.2 字段级明细表:把“写清楚”落到每一个穴位上
前面提过字段清单,这里我举具体例子。一份库存库龄报表,字段表至少需要以下内容:
| 序号 | 字段名 | 字段描述 | 数据类型 | 长度 | 来源说明 | 输出顺序 | 排序/合计 |
|---|---|---|---|---|---|---|---|
| 1 | WERKS | 工厂 | CHAR | 4 | 表MARA/选取屏幕条件 | 1 | 可排序/合计分组 |
| 2 | LGORT | 仓库/存储位置 | CHAR | 4 | 表MARD | 2 | 可排序 |
| 3 | MATNR | 物料号 | CHAR | 18 | 表MARA | 3 | 可排序 |
| 4 | MAKTX | 物料描述 | CHAR | 40 | 表MAKT | 4 | 文本显示 |
| 5 | LABST | 自由可用库存 | QUAN | 13 | 表MARD | 5 | 可合计 |
| 6 | MEINS | 基本计量单位 | UNIT | 3 | 表MARA | 6 | 不合计 |
| 7 | DBPROG | 库龄天数 | NUMC | 4 | 计算 | 7 | 可排序 |
| 8 | AGE_RANGE | 库龄区间 | CHAR | 20 | 计算 | 8 | 可排序 |
字段来源也必须写清楚用什么逻辑取数。比如“LABST是表MARD的字段,还是从MBEW的SALK3推导”?库存数量到底是“自由库存”还是“非限制使用库存”,SAP里口径多到可以写论文,你不写清楚,开发就可能抓错表,后续对不上数。
还有“金额”这种字段,是取“标准成本”还是“移动平均价”?库龄报表金额通常要在物料主数据里取当前评估价格进行计算。所以字段表里金额字段的来源说明要写:“取MBEW表标准价STPRS,乘以数量,转换到报表货币显示,若物料为分割评估,取对应评估类型价格。”这些细节,才是无懈可击的关键。
4.3 异常处理:写不写异常,决定你上线后补不补丁
超过一半的FS返工,不是因为主流程没写清楚,而是因为异常场景没写。开发的代码里,主路径通常都能写出来,但异常分支没人敢替顾问决定,于是默认跳过或者直接报短错误信息。上线后业务一操作,“这个情况你当时没说啊”。
我总结SAP FS里高频出现的异常类型:
- 数据空值异常:比如物料主数据价格缺失时,是显示空白还是取零?我通常写:金额计算时若物料价格为空,则按零金额计算,并在报表底部汇总区展示“价格缺失物料清单”。
- 主数据不一致异常:比如某物料在MARA表存在但MARD表无库存记录,若按“只输出有库存物料”的逻辑,就天然排除。但如果客户要求盘点所有物料出现缺库存异常,逻辑就不一样了,要明确写出。
- 冲销业务影响:比如采购收货被冲销后,库龄计算的收货日期是取原收货日期还是冲销日期?如果不写清楚,开发只能凭感觉。
- 权限不足异常:用户有事务码权限,但某些工厂不在数据权限内,是过滤掉还是报错?这也要写明。
我在FS里专门有一节叫“异常与边界行为”,把能想到的异常场景逐一列表:异常触发条件、系统行为、提示信息文本。提示信息文本也写清楚,比如“物料号&,批次&没有有效的收货日期,无法计算库龄,请先维护入库信息”,开发按这个写消息类,用户看到的提示就是专业的。
4.4 增强类和接口类FS的特殊写法
报表类FS是比较基础的,实际项目里还有两类高频FS:增强类和接口类。写法有特殊技巧。
增强类FS,核心内容在于“增强点定位”和“逻辑分支控制”。写这种FS前,顾问必须先和技术顾问确认好增强技术和增强点。比如在某工厂的物料凭证校验增强里,需要拦截MIGO收货超量。FS里要写明:
- 增强技术:第二代增强(CMOD/SMOD)或BADI/新增强点
- 增强点位置:物料凭证保存前校验,具体增强名称
- 触发条件:移动类型是101/561且工厂等于某工厂
- 拦截逻辑:收货数量是否超过采购订单未交货数量,超多少算超量(如超过10%拦截)
- 提示消息:分类为E=错误,消息编号范围,消息文本
- 后续动作:阻止保存,回写日志,甚至写自定义日志表
这类FS必须连“不影响原有逻辑”的兜底条件都写清楚。增强类最怕的就是顾问只写“增加一个校验”,完全不提增强点上下文、不写原有逻辑如何兼容,开发一旦改挂了标准功能,那就是严重事故。
接口类FS,则要覆盖以下内容:
- 接口方向:SAP主动推给外部,还是外部调用SAP接口,还是SAP定时拉取
- 触发方式:事件触发、定时轮询、即时同步
- 数据范围:传输哪些字段、按什么条件过滤
- 字段映射表:SAP字段到外部字段映射,列出所有字段的转换规则
- 去重与幂等键:用什么业务键判断重复数据不重复处理
- 错误与重试机制:接口失败后怎么重处理、状态管理表怎么设计
- 异常数据展示与监控:错误日志如何查看、告警如何推送
例如物料主数据同步接口,字段映射表就要从SAP的MARA、MAKT、MARC、MARC等表里的物料号、描述、物料类型、行业领域、工厂视图维护状态等,逐一映射到外部主数据平台的字段。一个字段都不能漏,漏一个字段,外部系统就多一次数据质量事故。
5. 我踩过的坑:常见问题与排查实录
5.1 逻辑不自洽:写到最后自己都看不懂
我最早期犯过的一个错,就是在某个销售订单接口FS里,前面写“外部系统传入的订单类型必须是标准订单”,后面又写“若订单类型为空时,系统按标准订单处理”,再后面写“若订单类型为空时,拒绝接收并报错”。三处逻辑互相矛盾。开发只能问:“到底按哪个?”最后我翻需求会议纪要才想起来,客户原话是“外部如果传的类型不在约定枚举里就拒绝,空值则默认标准订单”。
那次之后,我给自己定了一条规矩:写完FS必须隔一天再看一遍,专门检查有没有前后矛盾。逐条比对条件与动作,做交叉检查。如果时间紧急,至少也要大声朗读一遍文档,坏逻辑自己会“硌耳朵”。
5.2 忽略权限与后台配置的“隐性字段”
另一个高频坑是不考虑SAP的“隐性控制”。比如明明字段表里只写了10个输出字段,但开发一跑程序,发现输出结果受“移动类型权限控制”影响,用户在MIGO里看不到某些移动类型,报表结果就和测试环境不一样。
再比如SAP的“工厂日历/库存批次状态”这类配置,也会造成数据差异。库龄报表的测试环境里物料都是标准批次,生产环境里存在“质检冻结批次”,冻结批次该不该计入库存库龄?这个我后来在FS里加了批次的“库存类型”筛选逻辑:只统计非限制使用库存,质检库存单独列示,冻结库存不纳入。不写这一层,仓库用户上线后一查数,大概率会来质问顾问。
解决这类问题没有捷径,只靠两点:一是顾问对SAP后台配置有基本理解,写FS时主动问一句“这个字段受哪些后台配置影响”;二是技术评审时拉着ABAPer一起过,让开发帮你把关FS里有没有踩到隐藏配置。
5.3 格式不统一:一份FS三种风格
大型项目通常不止一个顾问写FS。十几个人每人一套习惯,有的字段表用横排,有的用竖排,有的逻辑描述写成小说,有的写成伪代码。最后混合在一起,开发叫苦连天,测试无从下手,领导看着满眼都是乱。
我后来在项目里牵头搞了一次统一的FS模板,全项目统一字段表格式、统一逻辑描述样式、统一版本号规则。推行模板的时候有人嫌麻烦,但用起来真香。新顾问一进场,给个模板加一个示例,半天就能上手。我也把主要事项整理成了一份“FS写作约定”,里面包括:所有字段名必须带数据表来源;所有逻辑必须按IF-THEN-ELSE描述;禁止使用“等等”“大概”“顺便”“合理”这类模糊词语;所有数值必须明确单位;所有日期必须明确是文本还是日期类型,显示格式是YYYY-MM-DD还是YYYY/MM/DD。这份约定后来成了多个项目里的模板。
5.4 需求变更管理:先改FS再改程序
项目进行到后半段,需求变更是家常便饭。最容易犯的错是业务口头说“这里改一下”,顾问转头告诉开发“那改一下”,开发改了代码,FS还是旧版。等项目新同事接手、或者半年后客户要求解释当初为什么这么实现时,没有文档能说清——程序里逻辑和FS对不上,那就是文档事故。
我的原则是:任何变更都先更新FS,再进行开发。步骤是:记录变更请求,评估影响范围,更新FS对应章节和版本记录,然后才提给开发。开发改完后,要在FS的“测试确认”栏补充测试结果。这样FS永远和系统现状一致,交接、审计、上线检查都能从容应对。
5.5 快速检查清单:交付前把这20条过一遍
写一份高质量的FS,交付前过一遍检查清单是值得的。我列了一份精简版,强烈建议收藏:
- 文档头信息是否完整,版本号是否更新
- 是否写明需求提出方确认,确认日期
- 业务背景是否写清痛点、目标和范围
- 是否明确不做哪些功能
- 选择屏幕的每个字段都定义了必填/可选/默认值
- 输出字段表是否精确到字段级来源
- 所有金额字段的货币与价格来源是否写明
- 库龄/期间计算口径是否有明确算法
- 是否覆盖空值、冲销、重复数据等异常场景
- 权限设计是否覆盖事务码和数据权限
- 所有SAP术语是否用标准字段名而非中文别名
- 接口类是否定义了幂等键和重试机制
- 增强类是否标清增强点和触发时机
- 是否包含性能约束(数据量、响应时间)
- 测试计划是否定义了可核对的预期数据
- 是否存在前后矛盾的逻辑描述
- 是否有多处描述重复但口径不一致的问题
- 是否避开“大概”“等等”“差不多”等模糊词汇
- 是否写明审批/通知等外围流程
- 是否通过复读检查,逻辑顺畅可理解
6. 关于写FS,我的一点个人体会
写FS这事,说难也难,说简单也简单。难在你要同时具备业务敏感度和逻辑严密性,能听懂业务没说出口的需求,也能预判开发会怎么解读;简单在一切答案都能通过访谈和验证找出来,然后就老老实实写到文档里。
我的建议是,新顾问不要急着学很多花哨的模板技巧,先老老实实跟着资深顾问写完三份FS,每一份都请开发反馈一遍“哪些地方让我有歧义”,把反馈记录下来,五份FS之后,你自然就摸到门道了。
最后分享一个小习惯,我每次写完FS都会自己做一次“开发模拟”:把自己当成ABAPer,打开编辑器,闭上眼睛想象自己要根据这份文档从头写程序——这个屏幕怎么建、表怎么取数、每行代码遇到空值怎么办、用户点按钮之后发生了什么。一旦想象中出现卡壳,那就是文档里需要补的地方。这个习惯帮我少吃了很多返工的苦,也推荐给你。
如果你正在为一份FS发愁,希望这篇内容能帮你理清思路。毕竟,FS这东西,真正受益的从来不是文档库,而是那个在项目深夜不用从床上爬起来救火的你自己。