本文将介绍一种需求规划、管理的可视化方法—用户需求地图,该方法将软件开发项目的需求变成一张二维地图,而不是传统的简单列表,只要这一张图,就可以完成全部用户需求的管理工作。
该方法有如下一些优点:
■ 让你更容易看清软件产品的全貌,了解产品功能的完整性
■ 为用户需求筛选和划定优先级提供可视化的工具,帮助你做出决策
■ 更好的进行迭代增量式开发,同时确保有计划、可控的发布产品
■ 为传统的项目计划提供了一个更好的替代工具
■ 有助于管理项目范围,避免范围的无限制蔓延
先上一个用户需求地图的样例,让读者对需求地图有个全貌,后续介绍如何创建这样的地图:
点此查看原图
一、需求的获取
常用的需求获取方法包括以下几种:
1、用户访谈
用户访谈是一种最基本的需求获取手段,它是指分析人员以个别访谈或小组会议的形式与用户进行初步的沟通。用户访谈的形式包括结构化和非结构化两种,结构化是指分析人员按照一定准则事先准备好一系列问题,通过用户对问题的回答来获取有关目标软件方面的内容;非结构化则是只列出一个粗糙的想法,根据访谈的具体情况来进行发挥。
2、用户调查
在进行用户访谈时,由于很多关键人员的时间有限,不易安排过多的时间或者项目涉及的客户面较广,不可能一一访谈。因此,就需要借助用户调查的方法,通过精心设计要问的问题,然后下发到相关的人员手中,让他们填写,再从所填写的内容中获取系统的需求信息,这样就可以克服上述的问题。
用户调查最大的不足就是缺乏灵活性,而且可能存在受调查人员不能很好表述自己想法的限制。
3、现场观摩
俗话说,百闻不如一见,对于许多较为复杂的流程和系统而言,是很难用自然语言表达清楚的。因此,为了能够对系统的需求获得全面的了解,实际观察用户的操作过程就是一种行之有效的方法。现场观摩就是走到客户的工作场所,一边观察,一边听客户讲解,甚至可以安排人员跟随客户一起工作一段时间。这样就可以使得分析人员对客户的需求有更加直观的理解。但是,在现场观摩过程中必须切记:建造软件系统不仅仅只是为了模拟客户的手工操作过程,还必须将最好的经济效益、最快的处理速度、最合理的操作流程和最友好的用户界面等作为软件设计的目标。
4、竞品分析
可以将竞品分为两大类:用与我们相同或相似的功能满足用户同样需求的产品、用与我们不同的功能满足用户同样的需求的产品。所谓竞品分析,就是寻找出有代表性的竞争产品,从多个维度对比该产品与我们的产品之间的相同之处与不同之处,从中分析出两者的优劣之处,得出结论,为产品的设计与迭代提供突破口或带来启发(这是指单次的竞品分析)。
二、需求分析
需求分析方法主要有两种:结构化分析方法和面向对象的分析方法。
1)结构化分析方法
包括面向数据流的结构化分析方法,面向数据流结构的Jackson方法和面向数据结构的结构化数据系统开发方法。
结构化分析方法的实质是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
结构化分析的步骤如下:
1.通过对用户的调查,以软件的需求为线索,获得当前系统的具体模型
2.去掉具体模型中非本质因素,抽象出当前系统的逻辑模型
3.根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型
4.完善目标系统并补充细节,写出目标系统的软件需求规格说明
5.评审直到确认完全符合用户对软件的需求面向对象的需求分析方法
2)面向对象的需求分析方法
从需求分析建立的模型的特性来分,需求分析方法又分为静态分析方法和动态分析方法。
面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。它包含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学。目前已经衍生许多种OOA方法。
每种方法都有各自的进行产品或系统分析的过程,有一组可描述过程演进的图形标识,以及能使得软件工程师以一致的方式建立模型的符号体系。现在广泛使用的OOA方法有统一的建模语言(UML)已经在企业中广泛使用,它把Booch、Rumbaugh和Jacobson等各自独立的OOA和OOD方法中最优秀的特色组合成一个统一的方法。UML允许软件工程师使用由一组语法的语义的实用的规则支配的符号来表示分析模型。
在UML中用5种不同的视图来表示一个系统,这些视图从不同的侧面描述系统。每一个视图由一组图形来定义。
三、创建需求地图
1、需求地图的组成
需求地图主要由三部分组成,由上自下分别是模块区、待排期需求区和已排期需求区,已排期需求区由多个发布计划组成,如下图所示:
点此查看大图
2、模块的分解
模块就是将待开发的产品的功能进行分解,按功能从属关系表示的树状层级视图。待开发产品的各子系统、子模块可以看作是产品目标下层的功能,对其中每项功能模块还可以继续分解为第三层、第四层……甚至更多层级的功能模块,理论上根据待开发产品的规模,可以无限极的分解产品的功能模块。
通过需求分析得到的模块形成了待开发产品的“骨骼”,把这些模块录入翼发云软件研发管理系统后,能够自动在用户需求地图中自动生成层级的、包含关系的模块关系图,显示在需求地图第一部分“模块区”中。
邮件管理系统通过需求分析得到第一层级的四个模块:邮件组织、邮件管理、日历管理、联系人管理。依次再将这些模块分解为更小、粒度更细的第二层级的模块,邮件组织分解为邮件搜索、邮件整理两个子模块;邮件管理分解为发送邮件、读取邮件、删除邮件三个子模块;联系人管理分解为创建联系人、编辑联系人、删除联系人等。(注:橙色的模块是最下层的模块)
点此查看大图
对应的树形视图如下所示:
3、需求的生成
根据用户需求调研和分析,把用户需求的基本信息如名称、需求描述、验收标准、预估工作量、优先级等录入系统。
三、需求的排期
当用户需求录入系统后,会出现在需求地图的待排期区域里,待排期区域里的需求就是还没有安排开发时间的需求,这时可以通过拖拽的方式,把需求拖到发布计划里,从而完成需求的排期工作,排期区域里的需求就是已经安排了开发的需求。是不是很简单。
通过多次拖拉用户需求后,最终完成了用户需求地图:
点此查看大图
(说明:该文产生需求地图使用了免费的工具“翼发云研发管理系统”,详见 www.effapp.com)