业务与需求、业务设计与需求设计的区别
编辑导语:业务和需求,业务设计和需求设计,这两组词我们经常能够听到,那么你了解它们的有什么区别吗?本文作者站在软件工程师的角度,为我们进行了分析和说明,搞清楚它们的区别之后,或许会对我们的工作有不小的帮助。
“业务和需求”,这两个词软件工程师们每天都会用到几次,但却不一定很清楚两者的区别:
“业务”指的是软件客户现在从事的工作,“需求”指的是客户对未来系统的期望或要求,因此业务设计与需求设计是两个不同视角的设计。
正确的顺序是:先对业务进行充分的设计,然后基于业务设计成果再进行软件的需求设计。搞清楚这两者的定义、区别、相互关系,对需求的理解、分析,并通过设计提升客户的满意度是有非常重要的指导意义的。
一、需求与业务的区别
1. 业务
站在软件公司的角度看客户的工作时,软件工程师们把未来系统所要对应的客户工作称之为“业务”。
如系统要实现的业务包括:销售工作、人资工作、采购工作、财务工作、物流工作等,在软件工程师来看,不论客户的领导、还是普通员工的工作,都是客户的“业务”(注:在客户企业内部对“业务”的定义与软件公司是不同的)。
2. 需求
“需求”是指客户根据自身的业务内容,对即将要开发的软件系统所提出来的需要、要求,当只提“需求”两个字的时候,通常默认为是指系统的“功能需求”。
但是实际上在调研分析过程中,“需求”并不仅仅指的是“功能需求”,收集到的原始客户需求来自于不同的岗位、需求表达的形式也不近相同,如:
- ①企业经营岗:用信息化手段,提升企业竞争力(目标需求);
- ②部门管理岗:在采购流程上设置审批功能,强化对生产成本的过程监控(业务需求);
- ③业务执行岗:在合同界面上增加Excel表的导入功能,提高合同编制效率(功能需求)等。
从上面的三个例子可以看出:③直接给出了对系统的具体“功能”需求,而①、②则不能直接看出来对应什么样的系统功能。因此,需要通过分析①和②的需求,并将它们转换为具体的系统功能需求③,交付给后续的软件设计师和开发工程师。
可以从上述定义看出来,“业务”和“需求”不是一回事:
- 业务:指的是客户现在从事的“工作”;
- 需求:指的是对客户现在从事的工作在引入到信息系统中时所提的“需要、要求”。
二、需求设计与业务设计区别
清楚了需求与业务的区分,下面探讨一下“需求设计”和“业务设计”的不同,各自的目的、作用、价值以及相互作用。
1. 需求设计
有些软件公司常常使用“需求设计”一词,需求设计一般指的就是对收集到的功能需求,按照系统实现的要求进行的功能设计,需求设计的主要目的是给出对系统实现的“功能”描述。
2. 业务设计
业务设计,主要内容是对客户的工作现状按照未来的信息化标准要求进行梳理、优化、完善,如:物资采购流程的优化设计、组织管理结构的扁平化设计、成本过程管理设计等。
为什么需要有业务设计呢?
因为客户提出的需求大都是根据既有的工作现状提出来的,这些工作现状不一定是符合信息化要求的,管理方式甚至是落后、不科学的,按照这个工作现状提出的需求去开发系统,其结果可能是用先进的信息化手段、模拟了落后的工作方式。
这样做的结果客户最终不能获得信息化带来的价值,只有充分地理解业务、并对既有的工作现状按照信息化的标准进行优化、完善设计,在这个业务优化设计的基础上,才能确定需要什么功能、并依据业务设计结果判断客户提出的需求是否正确。
业务设计是需求设计的基础,顺便说一句,前面的①和②的需求,只有通过业务设计,才能找出来需要的是什么系统功能。
业务设计主要包括三个层面的内容,即:架构层、功能层和数据层,包括:
- 架构层:首先,从整体上对客户工作现状用架构图(分解图、流程图等)的形式进行梳理、优化、完善;
- 功能层:其次,对客户的每个工作(界面的原型)的具体操作内容进行梳理、定义、优化,制定操作层面的标准、规则等;
- 数据层:最后,对每个工作产生的数据建立标准、定义、采集规则等。
3. 两种设计的相互作用
两个设计的理念和目的是不同的:
- 业务设计:关注的是对工作现状如何用信息化的标准进行梳理、优化、再定义;
- 需求设计:关注的是系统功能该怎么实现。
软件工程师获得了功能需求,但如果不熟悉业务背景,直接去设计功能需求,就是“知其然,不知其所以然”。在充分地理解了业务、优化了业务、并在确定了未来信息化环境下业务处理最佳方式的基础上,再去确定功能需求、设计功能需求,才是做到了“知其然、也知其所以然”。
由于客户不是信息化专家,往往提的需求不一定正确,软件工程师通过对客户业务的设计,就可以正确地理解客户需求,并且可以识别出需求的真伪(同时,软件工程师也会根据自己的经验提出建议)。
也就是说,只有将“需求”放在“业务”的背景中去思考、设计,才能做出优秀、实用、客户价值高的系统功能。
总结,“需求设计”不是“业务设计”,也不能替代“业务设计”,业务设计有业务设计所需要的知识和方法。业务设计的水平高,完成后的系统带来的客户价值就高。
要想获得高水平、高价值的软件系统,就一定要先进行业务设计(业务优化),再进行需求设计。
本文由 @李鸿君 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
受益匪浅。不知是否了解过需求层次分业务需求层次、用户需求层次、产品需求层次这种划分方式。您文章说的业务设计是否可以理解成业务需求设计呢
1.感觉你说的应该类似于UML中的业务用例、概念用例、系统用例,这是需求分析的一种方法。
2.文中的业务设计应该是更偏向于单纯的业务设计,这种业务设计强依赖于软件系统而存在,是业务本身的逻辑。但是业务设计与需求设计可以相互影响,更准确的说是业务设计指导需求设计,需求设计反馈优化业务设计。
业务设计由业务部门负责,产品经理作为信息化方面的专业人士配合工作。这个职责划分准确吗?
外包公司经常遇到客户直接提出需求的情况,很多时候一些不负责任的外包公司,就会客户说什么做什么,完全不考虑能不能实现业务目的。做出来的东西常常是被搁置,因为它无法提高效率,但因为这是客户自己说的,所以客户常常也有苦难言。这样就会驱使客户去寻找更好的外包公司,寻求更好的解决方案。
只有将“需求”放在“业务”的背景中去思考、设计,才能做出优秀、实用、客户价值高的系统功能
很好了
受教了!
可以 有点东西