
理解客户业务和需求至关重要。首先要由粗到细,从宏观到微观,先了解客户业务全貌,再逐步深入细节。作为外行,我们无法深入每一个细节,因为时间和必要性都是有限的。未来的系统也不可能包办所有业务细节,还需要客户企业中具有专业技能的人来处理。
其次,从不同层次的客户代表那里收集不同层次的需求。高层决策者关注系统的大功能蓝图,如使企业具有整体报价能力;各级管理者关注部门员工业绩考核、业务结算等;业务操作人员关注业务细节和操作细节。通过逐级访谈,将系统描述从大黑箱变为多个小黑箱,再变成透明明确的系统定义。
客户业务调研和需求分析是一个不断细化的过程,不能一次访谈/调研就能穷尽,也不能一次开发过程就能满足客户期待。许多需求是隐性的,用户可能自己都不清楚。只有经过多次循环细化,才能挖掘更多隐性需求。
需求调研工作具体包括:客户和其他涉众在系统工作内容方面达成一致;使系统开发人员更清楚地了解系统需求;定义系统边界;为计划迭代的技术内容提供基础;为估算开发系统所需成本和时间提供基础;定义系统的用户界面,重点是用户的需要和目标。
要尽早熟悉并理解业务资料,提炼出问题列表,制成调查问卷。业务调研要求深入细致地了解客户的业务流程,分析业务实现逻辑,记录实现案例信息,收集整理并分析参考材料。
要把迭代的思想贯穿始终,承认一次无法做到尽善尽美,先做好一部分,再逐步完善。业务调研和需求分析也是如此,设计编码过程亦如此。
企业系统设计开发与软件产品设计开发的最大不同是需求会变化。过去在变,调研时会变,系统实施后还会变。面向对象的方法认为对象属性是客观的且不会频繁变化,而关系则可能不断变化。因此,在业务调研和需求分析中,要沉淀不变的部分,留给客户灵活性和自主性。
在业务调研和需求分析中,难免考虑技术实现问题。需求与技术无关,要忠实记录用户需求,不要因为个人实现疑虑而修改或裁减需求。要争取客户方各级人员支持,让未来系统用户充分参与,才能最终取得成功。
利用客户企业的组织关系争取上层支持,由上到下进行调研配合。在调研过程中为目标用户树立有针对性的愿景,让他们认同并支持调研过程。