学习笔记-需求工程最佳实践

1)成立甲乙双方参与的需求控制组

项目的成功不单是乙方的成功,更是甲方的成功,甲乙双方紧密配合、互相理解、互相合作才能成功。

为避免一方具有绝对控制权的现象,成立甲乙双方参与的需求控制组是避免需求蔓延的有效手段。

该组织具有对需求的决策权,对每项需求的增删改查都是平衡了进度、质量、投入后才确定。

该组织不是一个流于形式的组织,应切实地参与需求的获取、描述、分析、确认、变更等活动。

2)识别合适的需求提供者,尤其不要遗漏最终用户 

在获取需求时首先识别谁是最可能有需求,识别出合适的需求提供者

需求的提供者包括了客户、最终用户、间接用户。客户是掏钱买软件的人;最终用户是使用软件的人;间接用户对软件有影响力,但可能不使用软件,也不掏钱买软件。三种角色可能有重合,不同的用户对需求的作用不同,必要忽略任何一种类型的需求提供者

在很多项目中往往忽略最终用户的需求,而导致操作层面的需求捕获不全,系统上线后返工很大

3)在项目初期引导客户如何实施一个软件项目

客户引导是一个大问题,尤其是一个没有IT经验的客户。如果客户缺乏正确的实施IT项目的观点,那么他就不知道如何去提出需求,如何控制需求范围,如何管理IT项目。

客户的需求是项目的输入,如果需求不明确,需求有遗漏,需求总是不切实际,需求没有划分优先级,则对整个项目的成本影响重大。因此需要在项目初期对客户实施引导,告诉客户项目成败的关键因素是什么,在项目的进展过程中客户需要注意什么

4)引导用户划分需求优先级

用户往往不关注需求的优先级,认为所有的需求都是重要的。需求工程师需要引导用户划分需求的优先级,而不是单刀直入地让用户划分优先等级。可以通过以下的启发式问题引导客户划分需求优先级。

在谈到的需求中,最重要的3项需求是什么?

这个需求比另外一个需求更重要么?

这个需求是否可以考虑采用其他的解决方案,而不是通过系统来实现?或是简单实现?

如果推迟或是不实现这个需求,是否对项目的目标有影响?

如果推迟或是不实现这个需求,会对哪些业务、哪些人员有怎样的影响?

5)采用用户故事+验收准则描述用户需求

用户故事是敏捷开发方法中描述用户需求的方法,该方法采用三段论的方式描述需求:

作为一个家庭主妇,我需要一个30平米的餐厅,以便招待10个朋友进餐

作为一个系统管理员,我希望系统能够自动备份重要的数据,以便在发生灾难时可以自动恢复。

通过这个描述,可以帮助我们确定每个需求的重要性,同时提供了一个伸缩的弹性,即这个需求的细节特征可能有比较大的协调空间,可以方便我们进行需求、质量、进度、投入的平衡。

仅仅描述了用户故事还不足以让开发人员准确了解需求,还需要描述每个故事的验收标准。通过验收标准来细化需求,在开发者与用户之间达成对需求的一致理解。比如:

餐厅要灯光明亮

餐厅要靠近厨房

餐厅面积要5米X6米;

。。。。。。

非敏捷的传统开发项目,也需要明确描述需求的验收标准。验收标准代表了客户的最低要求,通过编写验收标准可以发现需求中不明确的地方,凡是不能写出验收标准的需求通常是模糊的需求,通过编写验收标准可以起到对需求的补充完善作用。

6)需求描述中至少包括:业务流程图、用例、界面原型、非功能性需求与需求优先级。

业务流程图描述客户的业务处理流程,对于理解需求者提供了一个很好的背景信息,可以从业务流程图中提取出功能性需求与非功能性需求。

用例描述了人机交互的流程,划分了人与系统的职责,清晰刻画了正常与异常的事件流,无论是与客户还是与技术人员都很容易沟通,是描述功能需求的一种有效方式。

界面原型将软件的功能直观地展示出来。一图胜千言,便于引导客户提出更细致、更准确的需求,也便于与技术人员沟通。在需求获取与分析时,应该尽早构造出界面原型。并非需要针对所有的需求构造原型,只是核心的,难以理解的需求需要构造原型。

非功能性需求是用户容易忽略的需求,需求分析人员需要引导客户提出客户提出非功能需求,如果客户不能提出,需求分析人员要根据历史的经验定义出非功能性需求并和客户确认。非功能性需求一定要描述出来,不能想当然地认为应该如何如何,而没有文档化。非功能性需求能量化则量化,不能量化可采用原型描述。

需求的优先级一般最多划分为3级,优先级最高的最先实现。需求的优先级为采用迭代方法提供了一个基础,也为平衡进度、质量、需求、投入提供了决策。

在描述需求时,不仅仅局限这5个方面,还有项目的目标,涉及的用户角色、系统的运行环境、处理数据等等,但是上面的5个方面往往是最容易出问题的地方。

7)测试人员参与需求评审,确保需求的可测试性

需求的描述详细到可测试的程度。所谓的测试,即测试人员阅读了需求以后可以编写出测试用例,能够识别出输入、操作流程、处理逻辑,以及预期的输出。测试人员参与需求的评审,关注的就是需求的可测试性,如果一个需求不可测试,则说明该需求描述地不够明确

8)采用功能点方法度量软件规模,确保需求描述的明确性

功能点方法不仅仅是一种规模度量模型,还是一种需求验证的方法,如果存在两位功能点分析师对同一需求计算出的功能点不一致,往往是由于需求的描述不够明确而导致的。在需求的阶段,通过度量软件的规模可以促进对需求的沟通和理解,从而发现需求中模糊、有争议的地方。

9)通过给客户讲解需求及演示界面原型的方式让客户确认需求

需求每经过一次传递,就会发生一次误传,要么信息有遗漏,要么信息有错误。通过需求的确认,可以及时发现这些错误。开发人员给客户讲解需求的理解,给客户演示界面原型,以及在开发过程中阶段性演示半成品,都是需求确认方式。人们只有看到实际的软件才能提出更多的需求,这是客观现实,因此应该多用原型法来确认需求,这也是敏捷方法中频繁交付这条实践的来源。

 对客户的需求可以确认多次。比如,首先是初步的需求访谈记录确认,然后是界面原型的确认,再进行高保真的界面原型确认。在项目开发过程中,可以不断地对软件半成品进行确认,指导最后的验收确认。

10)无论大小需求的变更都应纳入变更控制的流程

需求总是渐变的,对于大变更、小变更都应纳入需求变更流程。很多项目往往忽略了对晓变更的控制,积少成多,最终导致需求、设计、代码的不一样。需求的变更可以分级控制,明确划分不同级别的需求变更,级别不同,审批的流程与权限可以不同。

11)针对非功能性需求执行QFD(质量功能部署)

针对非功能性需求执行QFD,即建立非功能性需求与设计方案之间的映射关系、非功能性需求与测试用例之间的映射关系。在实际项中,项目组往往只会关注功能性需求的实现与测试,而忽略非功能性需求的实现与测试,通过该实践可以规避对非功能性需求的实现风险。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容

  • 自序 1. 不是每个人都能以产品经理为业,但在我看来,产品经理是一类人,他的做事思路与方法可以解决很多实际的生活问...
    沉沦2014阅读 4,327评论 1 19
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,365评论 25 707
  • 1****、问:你在测试中发现了一个bug****,但是开发经理认为这不是一个bug****,你应该怎样解决? 首...
    蛋炒饭_By阅读 5,289评论 1 94
  • BFC全称Block Formatting Context。每个渲染区域使用formatting context表...
    生锈的螺丝钉阿门阅读 221评论 0 0
  • 吃了天杞园减肥特膳半个月后的坑爹后果,不看后悔! 一个有着亲身经历的男人吃完天杞园特膳后讲述的辛酸泪,请花2分钟认...
    天杞园特膳阅读 192评论 0 0