`
whilew
  • 浏览: 22204 次
文章分类
社区版块
存档分类
最新评论

需求管理-浅显与深奥并重

 
阅读更多

在软件开发过程中需求的重要性无需长篇累牍来描述,可以说在软件开发过程中所有的一切都将围绕需求展开。那么在软件开发过程有效地进行需求管理,将对软件最终的成功与否起到至关重要的作用。问题的关键是:我们如何做好需求管理?

首先,让我们一起来共同认识一下“需求”。“需求”-软件开发时应满足的功能与非功能性要求(维基百科中关于软件需求的定义)。就我个人而言,我所认为的需求就是人们为了满足某种目标而产生的某种欲望或希望,有了目标就产生了需要,有了需要就提出了诸多要求来实现目标,需求就这样不断丰满起来,宛如少女成长一般逐渐丰富起来。那么需求管理则是为了更好地对需求进行规范处理,通过有意识地梳理不同组织、人物与类型的需求,从而形成完整的需求体系结构,基于体系化的管理理念实现对分散、凌乱的需求进行管理,帮助软件开发有序开展工作,最终取得软件产品或项目的成功。需求管理从理论上来讲主要分为三个层次:采集、分析与管理。其中采集阶段希望通过有效地沟通手段,了解到用户内心的想法与要求;而分析阶段则侧重对用户的要求与想法进行深层次的剖析,强调探究要求的动机与背后的故事,希望运用分析手段有效地实现对需求控制与驾奴;那么管理则强调以科学、理论及高效的管理理念,实现对需求全生命周期的控制,形成完整的需求血统分析结构,重点在对需求进行“管”,防止需求在发展过程中迷失自我以控制软件开发风险。

在业界诸多的需求管理理念与方法论层面习惯将需求划分为:业务需求、用户(产品)需求、功能需求等三大维度。业务需求强调对业务生产环境进行全面而细致的分析与理解,简而言之就是分析“做什么”阶段;产品需求则侧重于对业务需求结合实际情况总结与梳理出相应的信息化解决办法,可以理解为"怎么做"阶段;而功能需求则重在将产品需求结合具体信息化技术进行“落地”,通过将需求以形象化、立体化、真实化地功能与手段呈现在系统中,此阶段可以理解为“如何做”阶段。“做什么”侧重于对事情的前因后果分析,“怎么做”考验的是需求分析人员提炼总结能力,而“如何做”则对需求分析人员提出了更高的要求,它全面考查分析人员对信息架构、用户体验与业务流程等一系列素质及素养。所以还是那句谷话“站着说话不腰痛”,事情说说简单,做起来却未必能够如你所愿。

前面我们对需求的不同维度进行了一个简短的分析与了解,那么回到我们的核心问题上来,即“需求分析与管理,我到底该怎么来开展呢!”,其实这个问题本身就是一个伪命题,因为需求分析与管理是一门系统的学科,融合了管理、咨询、统计、数学等多方面的知识,对人员素质要求也相对较高。有人会问“这么说起来,那需求管理我们还能不能搞定它呢!”,其实个人理解事情总有它的复杂性,我们不可能将事情考虑得面面俱到,只要我们遵循2/8原则,再辅助运用好一些相应的方法与技巧,逐步、逐层地推进需求分析与管理工作,一旦事情顺畅通达起来,自然而然就会得心应手。那下面我们就一起来分享个人对需求分析与管理方面的一些浅显的看法与理解,将主要从需求方法论、需求管理理念与需求分析常见问题几个层面来进行简单地描述,与大家一起共同学习成长。具体内容如下所述

(一)需求方法论

管理学中有一种重要的观点便是"方法比什么都重要",同时在我们实际工作中无数次经历证明这一定律确实管用。在我们进行需求分析工作时产生的很多困境往往是由于我们没有通过正确的方法去做事,缺少了明确的方向指引,导致事情到最后越来越复杂,慢慢地失控了!那在需求分析与管理过程中,具体有哪些科学、先进的方法论来帮助我们,个人简单总结大概以下几种类型:

a.面向对象分析方法论(RUP)

b.面向过程分析方法论(数据流等)

c.敏捷需求分析管理

d.Zachman框架

上述方法论看起来名头都很大,让人感觉无法驾驭!不用担心,那就用我们用比较形象的语言来对它进行简单的归纳与总结吧!RUP需求方法论,我们用“五维三级法”来对它表述,此种方法强调的是从人、事、物、因、规等五个维度对需求涉及业务进行深入分析后得出系统“业务需求”,然后采用用例场景描述与细化的技术,将业务场景进行形象化表达、总结与提练,形成系统的“产品需求”,在上述二种需求分析到位后才逐渐推进“功能需求”的分析与设计,整体上分为三个阶段完成系统的需求分析工作。而敏捷需求分析则强调以“用户故事”的方式进行需求分析组织工作,配合以用例形象化、立体化、显性化的手段,以“迭代”方式分层分阶段并配合部分轻量级文档推进需求工作稳步前进。而Zachman框架大家可能比较陌生,个人对它的总结就是通过描述“什么人在什么时间、什么地点通过运用什么样的行为与数据达到什么样的动机”的方式来进行需求分析工作,从“组织、位置、时间、行为、动机、数据”等六个维度进行需求分析,并结合“系统分析师、系统客户、架构师、设计师、开发人员”等角色视图层面去形成一个立体的需求分析网络结构,全面覆盖系统需求内容。

那是不是我们在实际工作中就需要运用到上述所有的方法论来指导工作呢!不然,个人建议结合项目实际情况来选择合适的需求分析方法论来指导工作。对“业务流程贯穿建设过程、传统企业信息化”等类型项目,则建议使用"五维三级法"来指导工作。而对“咨询式、BI类”项目更多建议采用“敏捷需求分析”方法来引导。具体选择哪种方法还需要结合具体实际情况综合而定,决定权在你手中,我们只选对的,不选牛的。

(二)需求管理理念

“磨刀不误砍柴功”,前面我们选择好了合适的需求方法论来指导我们开展需求工作。但刚有方法论似乎还少点什么东西?对,我们少的就是需求管理的“理念”。在个人看来需求管理的核心信念应该是"关注细节",不论是需求前的通过“文档考古”来熟悉了解行业背景与专业术语也好,还是进行用户访谈、调查问卷、数据分析等工作来强化需求分析结果,都离不开一个“细”字,没有大量细致、认真的工作进行积累与铺垫是很难出色地完成好需求分析与管理工作。同时需求管理工作个人认为可以从“需求内容有没有、需求分析质量几何、需求结果传播控制”等三个阶段进行重点关注,我们只有先解决了“有”的问题,才能来重点关注“高质量”内容,最后只有通过强有力的手段来控制需求“不失真”地进行传播,最终才能确保系统建设达到客户的预期。

(三)需求分析常见问题

前面我们讲了一大堆的理论与看法,暂时让我们回归到现实过程中来吧! 在大家的日常需求分析过程中,常常会出现一些问题或疑惹,它们干扰我们高效、优质地完成需求分析工作内容,那我们该怎么办呢!先让我们来看看到底是何方神圣在阻止我们,具体问题如下:

a.在与客户沟通过程中存在盲点,我们该怎么解决呢?

还是那句老话,“细节决定成败”,对于此类问题我们必须从需求源头、过程管控、事后复检几个方面来强化工作内容!解决上述问题我们的建议是:



b.怎么样才能做好一次用户访谈呢? 用户访谈该注意哪些方面工作?

我们可以从以下几点开始着手解决问题

1.进行资料收集与前期研究工作,了解相关业务知识;

2.了解客户组织架构并进行用户访谈样本选择;

3.制定明确的用户访谈计划,确定用户访谈的对象、时间与地点;

4.访谈前与访谈对象进行沟通共同确定访谈问题大纲;

5.确定访谈需要达到的目标,并紧紧围绕目标进行问题设计,并对相关问题有自己的理解;

6.在访谈过程中以听为主,避免引导客户思维;

同样在进行访谈过程中,还需要注意一些事项,具体见下图:

c.在需求采集过程, 客户配合度不高,工作开展不顺利?

那么就让我们从对客户组织架构进行全面了解,对系统用户进行“画象”,对“画象”用户进行分析,获取其中部分用户支持;经过对同类解决方案的分析,提供初步的需求产出物交由客户签字确认与商务合作加大客情关系投入力度,录求客户高层领导的支持;分析客户不配合原因,有针对性地进行需求采集工作等内容上着手解决吧!

d.在需求采集过程, 客户只提意见,其它一概回答不清楚、不明白?

这种客户属于“极品”级,那么我们就以迭代的方式开展需求采集工作;适当采用敏捷方法进行需求获取;结合系统原型 法激发客户需求;以咨询方式式对客户思维与需求进行引导去开展工作,希望能够解决一些问题。

e.在需求采集过程, 客户与用户不一样,该怎么办?

很多系统都存在此类问题,个人建议对于此种情况以客户意见为主,尊重用户诉求,注重用户体验工作;在资源许可的情况下,组织用户大会,听取多方面的声音;在必要的前题条件下,对用户进行电话访谈或发放用户调查问卷。







分享到:
评论

相关推荐

    设计模式之追MM---浅显易懂

    ### 设计模式之追MM——浅显易懂 #### 1. Factory(工厂模式) **概念解释:** 工厂模式是一种创建型设计模式,其目的是为了将客户端与具体的产品类解耦。在这种模式下,客户端无需了解产品的具体创建细节,只...

    PCA--浅显易懂

    #### 一、PCA 的概念与起源 主成分分析(Principal Component Analysis,简称 PCA)是一种广泛应用于数据科学和机器学习领域的统计方法,主要用于数据降维。PCA 最初是在 20 世纪早期由卡尔·皮尔逊(Karl Pearson...

    卷积神经网络--浅显易懂的理解.pdf

    卷积神经网络浅显易懂的理解 卷积神经网络是人工神经网络中的一种,主要应用在图像识别领域。它不同于传统的神经网络,具有卷积、池化和非线性激活函数映射等操作。卷积神经网络可以直接接受多维向量,实现图像识别...

    神经网络基础辅导-浅显易懂

    3. **分类与识别**:在处理非线性问题时,神经网络展现出强大的分类与识别能力。 4. **优化计算**:神经网络可以用于解决优化问题,通过设计网络的能量函数,无需复杂的数学运算就能找到最优解。 5. **知识处理**...

    Windows编程从入门到精通(书)---浅显易懂,带代码讲解

    循序渐进的讲述了网络编程技术,很适合使用c++开发网络程序的初学者。

    Linux课程PPT-浅显易懂

    一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。 另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或...

    傅里叶变换-比较浅显.docx

    傅立叶变换是一种数学工具,用于将信号或函数从时域(或空间域)转换到频域,揭示其频率成分。它的核心概念是任何连续或离散的周期性信号都可以表示为不同频率正弦波的线性组合。这一理论起源于19世纪初法国数学家和...

    SSM学生管理系统浅显易懂

    SSM学生管理系统是一个基于Java技术栈的Web应用项目,它主要使用Spring、SpringMVC和MyBatis这三大框架构建,旨在提供一个简单易懂的学生信息管理平台。这个项目非常适合初学者作为学习Java Web开发的实践案例。下面...

    学校数据库ppt数据库原理,浅显易懂

    这个“学校数据库ppt”显然是一份专门讲解数据库原理的教学资源,旨在以浅显易懂的方式帮助学习者理解复杂的数据库概念。下面将详细阐述数据库原理的一些关键知识点。 1. **数据库定义与类型**: - 数据库是一个...

    ERP需求分析模板-快速学习掌握ERP

    快速了解ERP基本原理,掌握如何分析ERP需求,浅显易懂,深入浅出

    Qt教程及软件(超级浅显易懂-非常适合初学者).pdf

    接着,教程会深入讲解Qt Creator在界面设计方面的功能,包括创建多窗口程序、登录对话框、添加菜单图标以及使用布局管理器等。这些内容会帮助初学者掌握如何构建复杂的用户界面和管理窗口布局。 事件处理是图形界面...

    交换篇-VLAN文档(浅显易懂)

    在IT网络领域,VLAN(Virtual Local Area Network,虚拟局域网)是一种重要的网络管理技术,用于分割广播域,提高网络效率并增强安全性。VLAN划分后,同一VLAN内的用户可以进行二层通信,但不同VLAN之间的通信则需要...

    java入门,非常的浅显易懂

    5. **类与对象**: - **类**:是Java中的蓝图,描述了对象的属性和行为。 - **对象**:类的实例,具有类定义的特性和行为。 - **封装**:隐藏对象的内部实现,只暴露必要的接口。 - **继承**:一个类可以继承另...

    2021-2022年收藏的精品资料浅显的谈谈证券公司的信息化.doc

    证券公司信息化浅显谈 在当今信息化的时代,证券公司的信息化已然成为一个不可或缺的组成部分。证券公司的信息化不仅可以提高业务效率、降低成本、提高客户体验,还可以帮助证券公司更好地应对市场变化、管理风险和...

    java入门非常的浅显易懂

    "java入门非常的浅显易懂"这个标题暗示了我们将要探讨的内容是针对新手的Java基础知识,而描述中的“很好的入门书”进一步确认了这一点,意味着我们将深入浅出地讲解Java的基本概念。 1. **Java简介**:Java是由Sun...

    JSP入门经典 JSP的最浅显易懂的教程

    综上所述,这份"JSP入门经典 JSP的最浅显易懂的教程"应该包含JSP的基础语法、实用技巧、网络编程以及与JavaBean和MVC框架的整合等内容,为初学者提供了一个全面的学习路径。通过深入学习并实践压缩包中的资源,学习...

    需求调研步骤和方法

    3. 整理需求调查表与用户交流之后要迅速整理笔记得到本次需求调查表,隔得时间越长,记忆力越模糊,同时应该把中间不清楚的地方整理出来,并放到下次需求调研计划中,重复讨论。 4. 用户需求说明书,虽然最终必须要...

Global site tag (gtag.js) - Google Analytics