软件开发行业中需求与设计的管理 – DevSpec
需求,简言之就是客户需要的软件所应当具备的功能。
设计,是经过一系列的思考,最终形成的脑力劳动的成果。
需求分析与产品设计到最终产品实现,是紧密结合在一起的。
在现实生活中,大家一定遇到过许多成品需要返工的事情,这就是典型的交付的产品不满足客户需求的体现。
软件,在没有形成成品之前,是看不到摸不着的,比实物更具有不可控性。客户只有看到的做好的软件,进行验收之后才能知道是否满足自己的需求。
如何保证我们做出来的产品就是满足客户的需求呢,我为你介绍一款好的管理软件– DevSpec。
需求
我们从客户提供需求的方式来看,一般有口头(包括电话以及面对面交流),Email信件,传真,合同等。最终我们拿到的需求,大多都是白话方式的功能描述,并不是直接可用的。
所以我们在DevSpec中给item(条目)分三大类:Specification (规范点),Epic(需求), Epic Document(需求文档)。把直接从客户那拿到的需求录入DevSpec 系统,也就是新建一个条目:
比如说外包公司接到的对日项目,日方给的一般都是比较规范的,很多项目都是日方事先将各种框架写好,将底层最基本的编码工作外包过来,甚至写代码的时候都有框架和模板。这类需求,我们新建的时候可以选Specification作为Type。程序员直接根据日方给的程序说明书,可以直接进行项目编写。
如果是一个需求文档,里面写了详细的软件项目需求功能说明。DevSpec有一个office addin 插件,可以跟office 集成。打开项目需求功能说明书,在word里直接选中项目功能说明书中的功能点,在Add-Ins的tool bar上选Add Spec,然后Save to Spec会新建生成Epic Document 条目,同时会把该文档作为附件,上传到我们的Document server上。
如果只是一个描述简单的需求,比如说客户打电话给我们说,现有的考勤系统,需要增加一个查询功能。我们就新建一个Epic如下图:
具体是怎样的一个查询功能,客户那时候可能没说。然后需要跟客户预约一个meeting进行进一步的沟通–在该条目的event页面| 新建一个event。
会议结束后,得到的具体的查询功能要求,把它添加到该条目的Note页面下 ---新建Note。
设计人员设计出具体的程序界面后,可以添加附件到note中。
用户的需求是动态变化的
DevSpec 有Change Request View 来管理需求的变化。
提出一个需求的变化,然后在change request view里添加对应的需求条目相关联起来。
关联的时候,可以新建change flag event, 通知有关开发,测试人员。说明该需求有可能要变化,请暂停目前的工作等等作用。
需求变化需要走一个审核流程(在Admin设置我们的change request workflow),只有commit的需求变化(同时修改change flag event 的状态),对应的需求条目内容才会显示在requirement view 中,进入下一个阶段。
需求分析和产品设计
需求分析和产品设计是基于现有需求而开展的一系列行为。需求分析的任务就是解决"做什么"的问题,就是要全面地理解用户的各项要求,并准确地表达所接受的用户需求.
一、需求分析的步骤
⑴首先调查组织机构情况
包括了解该组织的部门组成情况,各部门的职能等,为分析信息流程作准备。
⑵然后调查各部门的业务活动情况
包括了解各个部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么。
⑶协助用户明确对新系统的各种要求
包括信息要求、处理要求、完全性与完整性要求。
⑷确定新系统的边界
确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功能就是新系统应该实现的功能。
二、常用的调查方法
⑴跟班作业
通过亲身参加业务工作来了解业务活动的情况。这种方法可以比较准确地理解用户的需求,但比较耗费时间。
⑵开调查会
通过与用户座谈来了解业务活动情况及用户需求。座谈时,参加者之间可以相互启发。
⑶请专人介绍。
⑷询问
对某些调查中的问题,可以找专人询问。
⑸设计调查表请用户填写
如果调查表设计得合理,这种方法是很有效,也很易于为用户接受的。
⑹查阅记录
即查阅与原系统有关的数据记录,包括原始单据、账簿、报表等。
通过调查了解了用户需求后,还需要进一步分析和表达用户的需求,以及设计产品实现。
具体到软件中,就涉及到设计数据库的表结构,程序界面的GUI等等细节。这些过程我们都可以录制到DevSpec对应条目的Note/Event中去。每次的修改,DevSpec可以自动生成版本,也可以添加基线(Baseline),必要的时候可以进行比对。
当然对于不同的项目,我们采用的调查方法和步骤都会有所不同,DevSpec产品可以自定义工作流:
在ready to implement之前,都是需求分析和产品设计阶段。接下来进入到coding,testing,以及最后的交付。
总之TechExcel DevSpec 是一款需求定义与需求管理工具,基于预定义的流程规则,团队可以使用DevSpec全程跟踪每一个产品功能和特性的开发过程,通过需求管理来驱动研发与测试流程,最终达到实现的产品就是客户想要的产品。