软件需求分析实战
上QQ阅读APP看书,第一时间看更新

2.6.3 生成报表的数据来源

正如分析单据一样,也需要分析报表中各元素的数据来源,使用的方法也类似于单据分析法中的处理方式,但也有很大的不同:报表一般不需要过多考虑报表本身的流转过程,分析的重点应该在于出现在报表中的数据从什么地方获得;报表中出现的数据,看上去是死的,但其实每个数据元素都是有一系列产生过程的——作为需求分析者,应该有这种职业敏感性。

报表中的数据来源是有背后的业务场景的,不能仅满足于这些数据在哪里,重点是要根据这些数据的要求考虑如何在系统中安排功能,使之切合业务要求,在相应的业务场景下录入数据。说得简单点儿,除了一些简单的数据,如打印时间等,大部分数据都不是无缘无故产生的,需要由工作人员在工作过程中录入。这个数据由谁、在什么时候、在处理什么业务时、通过什么方式录入系统——这几个问题是需求分析者在分析报表的数据来源时需要随时提醒自己的。

在需求获取阶段,研究报表的主要目的不是怎么制作报表,而是根据报表的需求考虑如何采集数据。一个企业对信息的综合性需求主要体现在报表中,对报表中的每个字段都需要进行深入的分析,直到确信可以为它提供数据来源。如果能把所有报表的数据来源问题都处理好,这个信息系统就成功一大半了。

案例:不认真分析报表字段会带来大麻烦

甲车间里需要一个报表——员工产量统计表,见表2-3。

表2-3 员工产量统计

刚开始调研的时候,需求人员小王粗略看了下这个报表,然后做出如下判断。

(1)员工、加工物料、产量、质量等级:可以从生产汇报数据中获得。

(2)单价:可以从成本数据中获得,因为这个系统的成本模块设计得相当完善,每个工序的加工成本都有数据,这个自然不是问题。

(3)金额:产量乘以单价可以算出。

等到后来实际开发这个报表时才发现,这个“单价”非常难以获得。这里的物料单价是跟质量等级相关的,车间需要根据不同的质量等级给员工计算计件工资,由于这个问题在开始设计时没有仔细考虑,导致需要对前面开发完成的成本核算功能进行大幅调整。以前总以为不管产品的质量等级如何,加工过程是一模一样的,成本当然也是一样的,现在才知道,质量等级低的,支付的员工计件工资也低,预示着不同质量等级加工成本其实是不一样的。这是个令人非常痛苦的调整。

通过对报表数据来源刨根问底的分析,可以顺藤摸瓜分析出大量的功能需求。任何一个看上去非常简单的报表,都有可能隐藏着一大堆的需求,分析报表的数据来源就是挖掘需求之井,只要肯花工夫,总是可以挖出甘泉的。有时候看报表中一个字段非常不起眼,可一旦仔细分析下去,可能会发现,为了这个字段,需要从若干个地方采集数据,而在这些地方采集数据,又不能安排专门人员录入,它需要切合业务运行过程。为了在业务运行过程中获得这个数据,需要有这个那个的功能支持,需要进行这样那样的工作流程重组。

案例:从报表挖掘功能需求

某单位刚刚安装了指纹考勤机,考勤机可以提供原始打卡数据:某人在某时间、某地点打卡了。管理方需要一个报表——员工异常考勤统计表,统计每个班次有多少员工迟到、早退、旷工。假设我们的需求获取就从这张报表开始,那么如何思考呢?

怎么定义员工的迟到、早退?是不是需要一个定义的规则呢?

不同班次的员工,迟到、早退的规则是不是一样?是不是需要一个班次管理功能?

怎么知道员工属于哪个班次?怎么安排班次?由谁来安排班次?是不是需要一个排班的功能?

如何根据员工的打卡记录分析他是不是迟到、早退?他重复打卡了怎么办?是不是需要一个员工考勤分析功能?

外勤员工怎么办?卡坏了怎么办?忘打卡了怎么办?是不是需要一个异常考勤处理功能?