数据仓库需求分析指导
- 简述
数据仓库项目是一个复杂的过程,项目的开发涉及到多方面的问题和风险:技术风险、数据质量问题、项目管理问题,但最项目中中最隐蔽、最容易忽略、最难控制的一环,就是需求的调研和分析。需求分析不深入、不准确的结果就是系统完成后没有人愿意使用它。因此我们要采取有效的措施的来避免这种情况。
- 需求分析的原则
1、让用户参与,尽力让用户的高层参与,双方要紧密配合。
2、要迅速、全面的理解用户的业务及工作流程。
3、培训,要不停的向用户灌输数据仓库与传统业务系统的不同做法。启发用户提出更贴近数据仓库的需求,告诉用户什么是数据仓库,数据仓库可以做什么,数据仓库不可以做什么,数据仓库可以为用户带来什么。
4、不要求完美,而要求实用,应用将是螺旋上升,反复迭代的过程。
5、 项目有整体规划,调研可以全面,但一定要向用户界定好各阶段的范围。
备注:
对我们来讲,我们不但要了解用户使用哪些报表来完成哪些任务,同时我们还要了解业务系统对用户需求的支持,同时,由于我们在这一行业已经积累了一些经验,也了解我们可以为用户解决那些问题,因此,从某种角度来讲,我们会比客户更多的理解系统的功能。所以在需求调研的时候,一定要提出自己的见解,哪怕是错误的也不要紧;另外,需求会因为业务变化,因此,与其等用户的业务变化再跟着改,不如主动了解业务,建议用户按照自己的想法做。另外,由于用户对数据仓库的概念和认识是非常模糊的,他们不清楚数据仓库到底能实现什么,能解决什么问题。因此,经常会发现,系统完成了,用户却只用系统1%的功能,这就需要我们在对用户的培训方面和直观教育方面多下一点功夫。同时应该准备一些以前做过的相关案例。
- 需求分析方法
要了解听众对演讲内容的看法、员工对项目组的看法、员工对公司的看法、用户对系统的看法,比较好的途径就是设置调查表。实际上,在生活中,向长者请教、拜访用户、参加培训,事先这种问题的设计都非常重要,也非常有效,调查表可以使访谈直奔主题,使调研逻辑层次分明,使调研全面同时又重点突出。
- 需求分析的对象
对于数据仓库项目来讲,需求分析实际上应该分为两大类:
1、 系统功能分析
任何系统都是前端用户的需求也就是用户对系统的功能要求,是用户期望系统能够为他们解决的问题。在对用户调研时,要注意分清楚用户的类别,不同用户对系统的要求是不同的。通常我们会将用户分为查询用户、报表用户、决策者、数据挖掘用户,然后分析这些用户各自的行为、职责;同时我们要注意客户中还存在这样一类人,这些人是业务系统专家或信息系统人员,他们提供业务和IT的转换支持,他们推动这个项目的进行,但他们并不是最终用户。在调研中一定要注意分清,这些人可能非常愿意帮你,给你讲解他们理解的系统应该具备哪些功能,但往往这些理解是有很大偏差的。
在做调研时,要注意适时对用户讲解数据仓库的框架,让用户了解自己系统构建完毕后,自己所处的位置和能够解决的问题。因此,不但要注意整理相关的调研单(主要是设计一些问题),更要注意准备一些合适的演示资料,帮助用户理清思路,发挥想象力,争取最大限度的获取用户的需求信息。
2、 后台的数据接口调研
对于数据接口来讲,由于我们是建立其他业务系统之上,原有的业务系统开发商对我们有一种自然的抵触,因此,在与他们打交道的时候,最好是通过客户,即便是后期的问题交流也最好通过客户,这样做有两个好处:一是通过客户,我们和对方的为客户所做的工作可以向用户表明;二是通过用户可以避免对方对我们不理睬或对我们工作的拖延。
在三方配合工作时,在适当的时候,我们要提供接口确认文挡,将各家的责任明确,并签字认可。
这两部分需求调研的开始并没有严格的先后顺序,但是最终的后台接口的需求确认必须在用户需求定义以后。
- 需求分析阶段
1、调研准备阶段
从项目有意向开始,到项目合同签定,开始实施的这一段时间,都可以认为是项目的准备阶段。在这一阶段,我们可能会根据用户的要求,配合市场人员完成售前的技术支持工作。虽然在这一阶段,我们不会对用户具体的业务细节进行询问,但项目从这个阶段就已经启动,我们必须从这个时候就开始积累与此项目相关的资料,必须从这个阶段就在可利用的各个场合了解用户的信息。
在这个阶段我们要准备以下工作:
- 用户行业的总体了解
- 技术方案准备
- 相关培训资料的准备(行业成功案例和经验总结)
- 访谈中的业务交流,在本阶段的访谈中,用户对数据仓库的理解较浅,他们往往会关注下面一些宏观问题:
- 效率,当前数据量下的所需的处理时间、响应时间(最好准备好以前项目中处理效率的实例)
- 负载能力,能支持多少用户访问(是否能支持不同区域、不同网段的用户访问),用户访问的响应能力如何
- 准确性,数据集中后是否可以准确
- 灵活性,比如有多少种图形和显示方式;是否支持复杂的报表格式
- 信息利用,能以几种格式将结果导出或以何种方式处理分析内容
- 性价比,价格永远是用户最关心的
- 压力测试(运行是否稳定、管理是否方便)
2、业务调研
在本阶段调研中,主要是了解用户当前的业务流程和系统概况,并搜集相关的资料和数据,以准备下一阶段的分析。
本阶段调研的主要内容
- 用户的组织结构和工作流程;
- 用户业务种信息流动的过程和当前的信息结构;
- 用户当前的业务系统和各系统的主要功能
- 各系统能够获取的数据内容
- 各系统相互之间的联系
- 各系统目前的数据状况
- 主要的应用报表解释;
3、系统调研
本阶段要细致的分析整理用户报表及业务系统数据,仔细揣摩决策系统各级用户关心的问题;构建分析模型原型,与用户之间互动讨论,确定分析指标、维度和组合规则及计算公式。在本阶段,我们要利用快速原型法,通过原型来引导客户和正确理解客户的需求。当然,数据仓库项目的原型与普通项目有点不同,它的原型分为两类。一部分是前端表现的原型,一部分是多维分析模型的原型。对于前端表现的原型,我们要完成一个demo项目的搭建,向用户介绍将来系统的表现形式(主要要表现的是前端产品的二次开发,二次开发要体现出用户的应用流程)。对于多维分析模型的原型,我们主要用它来完成数据仓库应收集的内容的调研。
4、整理分析模型
通过原型收集了用户需求后,讨论修改后,确认相应的数据来源,完成分析模型描述。
5、审核确认
经过对不同的访问对象进行访问后,基于访问记录对数据仓库项目所涉及到的分析主题范围、系统要求等问题进行讨论、整理,形成需求分析文档。最后提交给客户进行审核确认。
- 调研问题示例
在需求分析的访问过程中,数据仓库设计师起着整个访问的主导角色,数据仓库设计师需要弄清所要构建的对象及其存在的环境。而在数据仓库设计师初涉入到需求调研中时,有许多问题是可以直接从项目经理方面得到答案的,如客户的基本信息和客户目前使用的业务系统一些基本情况等。所以数据仓库设计师对项目经理的正式或非正式的访问也是很必要的。数据仓库设计师主要访问对象在访问客户方的高级管理层、相关终端用户和信息技术人员等,这将有助于数据仓库设计师获取更完备的系统信息。通过对高级管理层的访问,数据仓库设计师可以了解到什么是真正所希望的数据仓库;通过与其相关用户的交流可了解到用户希望最终是以一种什么样的方式提供给他们使用、解决哪些他们所希望解决的问题;而与信息技术人员的交流可以了解到客户使用中的业务系统中的数据质量等相关信息。
1.访问项目经理
对项目经理的访问是为了获得有关数据仓库项目全面的认识,数据仓库设计师可以进一步在更详细的程度上得到关于任务说明书中定义的总体目标的信息。项目经理一般可以在数据、用户和系统评估三个方面提供详细的信息。这个时候项目经理最好能将项目前期的相关方案等文档提供给数据仓库设计师阅读。
下面给出访问项目经理的问题示例。
- 关于数据的问题
- 您认为哪些方面的数据与方案或说明书中规定的业务需求有关?
- 这些数据涉及到哪些系统?
- 这个项目要分析的历史数据从哪年开始?
- 是否那些系统都能够提供这些数据?
- 关于用户的问题
- 谁是最终用户?
- 用户将以何种方式与数据仓库相互作用?
- 目前用户使用的是什么样的机器配置?常用的软件都有哪些?
- 都有哪些用户使用分析类型工具?
- 这些用户通常都进行哪些方面的分析?
- 用户希望接收静态形式的报表还是希望接收动态的在线信息?
- 系统评估
- 您认为哪些参数对数据仓库的成功实施起决定作用?
- 您认为客户建数据仓库最想解决哪五个方面的问题?
2. 访问客户高层管理部门
对客户高层管理部门的访问能够为数据仓库设计师提供管理层对数据仓库的希望和要求,使数据仓库设计师了解到管理部门的利益标准,也能了解到高层管理部门对数据仓库项目的支持态度。
下面给出访问高层管理部门的问题示例。
- 关于用户概况的问题
- 您使用的是什么样的机器配置?
- 常用的软件都有哪些?
- 关于系统看法的问题
- 您认为构建数据仓库的目的是什么?
- 您认为数据仓库达到这一目标的标准是什么?
- 数据仓库对您来说主要应用哪些方面?
- 您还需要哪些目前尚不知道的信息?
- 您是否认为数据仓库是一个个人工具?
- 系统评估
- 您认为哪些参数对数据仓库的成功实施起决定作用?
- 您最想数据仓库能解决哪五个方面的问题?
3. 访问用户
在访问用户时,数据仓库设计师可以对信息制造者和信息消费者两组用户进行访问, 数据仓库设计师可以询问用户对数据仓库的希望和要求,了解他们希望从系统中获得什么样的收益。
下面给出访问用户的问题示例。
- 关于当前信息来源的问题
- 您目前是否能收到策略性的信息?如果收到,您是否能说明该信息的来源?
- 您在企业主要负责哪方面的工作?
- 目前企业中的业务信息系统的使用情况如何?
- 您收到的是哪方面的报表?报表是以何种形式提交的?
- 关于用户概况的问题
- 您使用的是什么样的机器配置?
- 常用的软件都有哪些?
- 关于系统看法的问题
- 您认为构建数据仓库的目的是什么?
- 您认为数据仓库达到这一目标的标准是什么?
- 数据仓库对您来说主要应用哪些方面?
- 您还需要哪些目前尚不知道的信息?
- 您是否认为数据仓库是一个个人工具吗?
- 每个系统实施都会有一定挑战,您认为这个数据仓库项目所面临的最大挑战是什么?
- 系统评估
- 您认为哪些参数对数据仓库的成功实施起决定作用?
- 您最想数据仓库能解决哪五个方面的问题?
4. 访问信息技术人员
信息技术人员将为数据仓库设计师提供企业信息系统当前状态以及数据仓库构建过程中将遇到潜在障碍方面的关键信息。
- 关于当前环境的问题
- 目前企业中是否使用了DSS应用程序?
- 用户是什么级别?
- 对于用户来说,最大的支持问题是什么?
- 谁是这些系统的用户?
- 关于当前所涉及到的业务系统情况?您主要负责哪些系统?还有哪些人负责哪些系统?
- 关于系统数据结构是否可以提供给我们?数据结构字段的相关含义情况?
- 关于系统看法的问题
- 您认为构建数据仓库的目的是什么?
- 您认为数据仓库达到这一目标的标准是什么?
- 数据仓库对您的工作产生什么影响?
- 您是否以后与我们一起参加数据仓库项目实施工作?怎样与我们一起工作?
- 系统评估
- 您认为哪些参数对数据仓库的成功实施起决定作用?
- 您最想数据仓库能解决哪五个方面的问题?
- 注意的问题
1、 每次与用户交流完毕后,必须有相关的业务交流记录和调研总结。
2、 诚实原则。市场人员为了签订合同,可能用图片和演示文档为用户描述了数据仓库的美好前景,以便让用户产生兴趣。但同时这也使用户产生了对数据仓库的过高的预期,但是,我们在调研时一定要事实求是,最低要求是对当前能实现的和不能实现的要界定清楚。
3、 数据仓库是一个强调实用的平台,也是一个涉及面很广的系统,每天都有层出不穷的新技术和工具产生,作为数据人员,要关注这些新的技术和新的工具,了解它们的用处,它们能够解决的问题,从而在调研和培训时能够提出好的思路,能够非常容易的解决问题。
4、 项目需求一定条理化、清楚,不同期项目的界线要划得清楚,另外,对于需求要分优先级(好做的且对用户影响比较大的先做出来)。对于每一条需求,都应该和客户方确认
5、 数据仓库项目非常关注对数据的验证上,尤其是项目涉及到考核因素时。而数据仓库在数据采集、清洗、整理过程中出现数据偏差的可能性非常高,因此一点点的偏差对于用户会不会使用数据仓库都有可能是致命的。因此应注意同用户讨论好这个问题,讨论好能够承受的误差率。