扫码阅读
手机扫码阅读

需求分析七宗罪之需求质量不高——一致性&灵活性

73 2024-03-26
点击蓝字 | 关注我们



#
产品经理必聊的100个话题



第100期:需求质量不高

通过保持一致性和提高灵活性,我们可以编写出高质量的需求文档,减少歧义和误解,提高开发效率。



一致性


Business Analysis





为了提高文档的可读性,需求描述应保持一致性,包括语法结构、工具和文档格式。以下是一些保证需求一致性的方法总结:

1.目录结构的一致性

建立标准的目录结构,避免将大段文字随意插入其中。统一目录结构的命名规则和格式,明确章节之间的关系。

2.工具的一致性

根据不同场景选择相应的工具。例如,使用判定矩阵来描述列出所有因素及其选项下的组合情况,使用思维导图来表达包含关系,使用泳道图或时序图来描述流程。

3.文档格式的一致性

统一对齐方式、标题格式、图形格式等。

4.术语的一致性

通过定义术语表,确保在需求文档中对于同一业务或场景的描述是一致的。

5.语法的一致性

使用简单一致的语法,避免过于复杂的句子结构。常用的条件语法(如"当"、"如果"、"那么"、"否则")应保持一致,复杂业务建议使用表达式树或矩阵来描述。

6.用词的一致性

定义词汇表,确保同一动作使用相同的词汇,避免混淆。

7.逻辑的一致性

采用分解的方法确保整体需求前后的逻辑一致性,便于确认和识别不一致的情况。

通过以上方法,可以提高需求文档的一致性和可读性。

常见的界面处理的通用方式:

常见的数据导入的通用方式:


灵活性


Business Analysis





灵活性指的是需求文档在需求变更时能够容易编辑和更新。我们要认识到需求一定会发生变化,甚至可能是大幅度的变化。

在这种情况下,产品经理需要理解需求变更的不同类型,并设计出能够快速响应变更的方法,以提高需求文档的灵活性。相反,如果文档缺乏灵活性,需求变更可能会导致牵一发而动全身的情况,消耗更多精力,甚至影响其他功能部分。

以下是一些有效的解决办法:

1.分层

当需求较大时,采用分层方式进行描述。不同层级详细描述不同内容,这样每个层级的变化不会影响上层的设计。分层策略通常将需求分为三个层级:顶层、中间层和底层。顶层用于总览文档,包括目录结构和模块概述;中间层包含具体内容,如模块详细描述、流程图和原型;底层用于描述具体需求内容,如决策矩阵和判定矩阵。

这样做不仅可以使需求文档层次清晰,让开发人员更快地了解整体流程和目标,而且在发生变更时,只需更新相关层级的内容,而不会导致全面调整。

通过采用这些方法,可以提高需求文档的灵活性,使其能够更好地应对需求变更,避免牵一发而动全身的情况,并节省精力和时间。

分层的方法有两种:第一种是采用树形目录结构分层

第二种方法是解决共通的依赖。例如,在系统中应该有统一的消息定义,只是在显示时具体的参数不同。

2.抽象

采用抽象的方式,将相似对象的共同部分提取出来。这样在增加新功能时,不仅可以有效减少对现有设计的影响,还可以引导开发人员采用抽象的编程方式,使代码更具灵活性。常用的抽象方法包括流程图抽象、状态抽象、类型抽象和动作抽象。

* 流程图抽象:发现工作流中存在许多类似但细微差别的步骤,可以设计成抽象工作流进行展示。

* 状态抽象当业务增加新的状态时,可以继承抽象状态。抽象状态默认不允许发生任何动作,即矩阵上状态对应的左侧动作单元格为空白。只需将新追加的状态与所有抽象状态的动作进行组合分析,就可以确定新状态下允许发生的动作。

以下是一个关于会员级别类型抽象的可视化例子:

通过使用表格,无论是会员类型还是会员权益的变化,只需修改相应单元格的内容,就能轻松应对需求变更。

另外,动作抽象指的是在一个流程中,不同情况下相同操作可能执行不同动作。

3.解耦

采用解耦合和可视化的方式,可以以较低的成本进行开发,并以更易读的方式呈现给开发团队和业务部门,以便在需求变更时进行适应。

1)参数解耦的例子:这些按钮是否可以按下?——状态对按钮是否可以按下的影响

2)组织结构对按钮是否可以按下的影响?

3)角色对按钮是否可以按下的影响?

将上面1),2),3)三个矩阵结合分析,我们就会清楚的看到,哪个按钮在什么状态下可以执行动作,什么状态下不可以执行动作。

综上所述通过分层,抽象,解耦合三个方法写出的需求文档才能是一个具有高度灵活性,并且清晰易懂的文档。

原文链接: http://mp.weixin.qq.com/s?__biz=Mzk0MzM2OTQzOA==&mid=2247485281&idx=1&sn=ef584f26cae103b90d5bfe1e472ad292&chksm=c335bad0f44233c6d5edfdb7fdf6462fae525a2ff90819100c8a99105fe49962ce169f1c88dd#rd