5.2 需求分类
需求通常分为两大类,即功能性需求和非功能性需求。一般来说,这两类需求都是通过需求工程的需求调研工作完成的,但是售前咨询工作也带来了非常重要的需求信息。
5.2.1 功能性需求
功能性需求是系统必须要提供的业务处理功能,也是软件需求的主体。通常所说的需求前面没有形容词时指的都是功能性需求。获取的需求可以分为三类,它们之间存在着转换关系,按照转换的顺序分为:目标需求、业务需求以及功能需求。
目标需求:客户提出的信息化的目标、理念、希望、价值。
业务需求:客户提出的系统要对应业务的内容、过程、规则等。
功能需求:确定系统必须提供的处理业务需求的功能及功能的具体描述。
5.2.2 非功能性需求
软件需求的内容中还包括不是直接用来处理业务而是对功能需求运行效果提出的需求。非功能性需求是指建立一些指标性的条件来判断系统运行情况,而不是针对某个业务处理的具体功能需求,它们被用来判断运行的系统是否可以满足以下的条件:安全性、可靠性、互操作性、健壮性、易使用性、可维护性、可移植性、可重用性、可扩充性等。
非功能性需求及技术设计需求在应用设计中会谈到,但不是本书的重点内容。
5.2.3 关于售前咨询
售前咨询工作的理论和方法虽然不属于本书的内容,但是售前咨询的结果中包含着很多对需求分析、业务设计而言非常重要的输入,特别是很多的“目标需求”来源于此,目标需求对后续信息系统整体规划、顶层设计有着非常重要的影响,有鉴于此,这里简单地对售前咨询做一些讨论和说明。
1.售前咨询的内容
在进入到设计工程之前的阶段,与客户的所有交流和沟通的目的都是在获取需求,特别是对大型项目来说,签订合同之前通常会有一个售前咨询阶段,在这个阶段一般软件商会派出经验比较丰富的咨询师(如专家型咨询师)来与客户进行交流,探讨根据客户的需求可以提供什么样的解决方案,这个阶段的咨询具有以下几个特点。
● 合同尚未签订,具体信息系统做什么内容尚未确定,能否签约取决于咨询的结果。
● 此时客户方面的参与者多为企业高层,如经营者、高级管理者以及信息化主管等。
● 客户的需求多为目标需求、业务需求甚至是难度痛点等内容,较少谈及功能需求。
● 需求会涉及企业的发展战略、现存的主要问题及公司对信息化的期待等内容。
● 交流中谈到的内容可能会比较抽象,需求也多为隐性需求,是否能够成为真实需求需要咨询师去引导、判别、确认等。
售前咨询通常谈到的都是相对高端的需求,它们是后续需求分析中“目标需求”的主要来源,是企业经营管理者对信息系统的价值期望(尽管可能是用隐性方式提出的),在后续所谓的“需求调研”阶段中,往往可能就没有机会再去直接听取企业高管的需求了,所以这个部分的内容要作为非常重要的需求记录下来,作为后续需求分析的重要参考素材。
2.售前咨询与需求工程
售前咨询的方式非常依赖于咨询师个人的能力和魅力,它并没有特别规范和标准的交付物以及模板,因此没有将咨询工作明确地列入到需求工程中(软件商不同可能划分方法不一样),这两者的重点不同。
(1)售前咨询:重点是通过售前咨询活动,提出解决方案,协助销售部门签下合同。
(2)需求工程:重点是进入客户现场,对已经确定的合同内容进行详细的调研。
虽然咨询的主要目的是促成签订合同,但是咨询阶段收集到的信息是非常重要的需求工程分析对象,尤其是“目标需求”,详见第7章。
3.咨询师的作用
(1)咨询师,代表的是软件企业的最高专业水准,他应该是软件商的名片。
(2)咨询师是全面阐释软件商的理念与主张的传道士。
(3)咨询师建立的起点高,则整个项目的起点高,总价值也会高(对软件商与客户双方)。
(4)咨询师要能够利用储备的知识和经验,为客户的决策者充当顾问、参谋。
(5)咨询师的工作重点是要与客户项目的决策人进行沟通,获取客户的目的、期望等目标需求。
4.咨询师的能力要求
对于从事售前咨询的专家型咨询师来说,对他的要求就比较高了,主要体现在以下几个方面(不限于此)。
1)沟通能力
沟通的对象有客户的决策层,生产、财务等中间管理层,对能力的要求较高,例如,
● 理解:是否能够理解高层的谈话要旨、隐含的需求?
● 展示:能否充分地展示出软件企业的服务能力、产品能力?
● 说服:能否说服客户,例如,导入系统后要在组织或管理制度上做相应的改变?等等。
2)专业能力
对咨询师而言,对他的专业能力要求是综合的。
● 是否掌握行业咨询的基本知识?
● 是否熟悉客户的主营业务和辅营业务知识?
● 是否基本清楚软件行业的最新技术、匹配的案例、解决方案等。
注:咨询师与需求分析师的区别
咨询师的主要任务是通过咨询工作,让客户与软件商相互理解并确定是否能够为客户提供服务(如签订合同);而需求分析师是在确定提供服务之后,进入客户现场进行具体的需求调研和分析。两者的工作在不同的阶段,一般来说,咨询师在前,需求分析师在后。