境,留有适当的扩展接口。
每个行业的发展趋势应该有一定的规律可遵循。企业本身的发展变化是引起需求变更的最主要因素,因此,提前预测行业的发展趋势对于软件预留一定的发展接口是很重要的。
客户没有预料到行业的变化趋势,一方面,可能参与软件需求的客户代表并不是关注行业和企业发展趋势的人员;另一方面,客户关注需求的程度可能和系统实现人员不同,有些客户会很自然接受的变化,会对系统有很重大的影响,相反,一些客户认为很重大的变化,可能对系统的影响是很小的。
3、探索适合于信息化的工作流程。
客户有的时候会提出对信息系统的要求,但是,客户所提到的要求,是在他的理解中,信息系统应该具有的样子。系统分析员应该深入挖掘这些要求背后的隐含目标,以便设计最适合客户,也最有利于实现的系统框架。例如,为了控制员工的工作时间,客户可能要求在软件限时使用。可是,能够实现控制员工工作时间的手段有很多,而且,客户提到的并不一定是最适合、最有效的方式。
4、合理使用批处理方式。
对于一些规模不大的系统,集中处理(批处理)的方式是合适的。可是,如果系统的规模很大,涉及的交易很多,而且对交易的实时性要求很高,集中的批量处理不是一个很好的方法。是否使用批处理方式,要根据业务需求的类型,系统的容量,以及以后的发展趋势决定。
5、留有操作痕迹
一个数据的产生,应该有一定的来由,不应该有没有根源的数据。
保留操作痕迹可能造成数据空间的急剧增加,但是,对于一些重要的数据,必须做到操作可以追溯。追溯的内容根据操作的重要程度有所不同,一般可能包括以下内容:操作人员,操作时间,操作以前的状况,操作以后的状况,操作所通过的模块,操作的机器信息。
6、操作可以恢复
对于错误的操作,可以恢复到操作以前的状况。恢复过程作为一个重要的操作,应该留有痕迹。也就是说,业务数据恢复到了操作以前的状况,但是系统必须纪录前一次操作和本次逆向操作的有关信息,以备核查。同时,逆操作应该比操作本身具有更高的授权级别和操作限制。
7、重要流程有校验的功能
所谓重要流程,指对下一步操作有重要影响的流程,或者无法回溯的流程。例如,发送客户对账单,对账单发到客户手里以前还可以重新打印已修复一些错误,但是,如果已经发给客户,即使可以修复,也会产生一定的不良影响。因此,在这些流程上应该进行比较细致的校验。校验可以采用自动校验,前提是有比较可靠的校验算法,否则,通过有经验的操作员进行校验是比较有效的方式。另外,一旦发现校验失败的案例,必须把这些案例作为重要的时间进行核查,以找到原因,纠正以前的校验算法。
八、逆向沟通的实现条件
1、熟悉业务流程的业务逻辑分析师
系统分析员熟悉业务流程是实现逆向沟通的前提。在进入一个新的领域以前,系统分析员必须花费大量的经历,了解这个行业的状况,行业的发展趋势,行业内企业的运作模式,行业的目标企业在这个行业所处的地位等信息。这些信息会为以后分析客户的需求,了解需求的质量,分析需求的合理性打下很好的基础。
2、工作由被动转变为主动
如果认为提出一个完整的需求是客户的责任,那么一切逆向沟通都会被认为是没有必要的。如前所述,虽然客户对需求的质量负有最终的责任,但是,系统分析员的积极沟通,将会提高需求的质量,减少项目搁浅的可能性。另外,有很多责任是无法具体定位为客户的责任还是项目组的责任。因此,采用积极的手段,确保项目的成功是系统分析员应该采用的态度。
以上是作者对需求分析工作实践的一次小结以及综合性的思考,作者对需求分析本身所做的一次分析,并提出了逆向沟通的设想,即系统分析员主动进行沟通,提出指导性意见。