深入浅出软件开发-----(二)需求游戏

(多年前的读书笔记,从ITEYE迁移过来)

在选择“需求游戏”这个标题名称的时候,我犹豫再三,但还是用了这么一个标题。这并不是说在做需求捕获和分析时持有游戏的态度(当然这也是很不应该的),而是说我们在做需求捕获和分析时用到的一些方法很像是在做游戏,形式轻松,效果也不错。

在上一篇文章里我们提到过“一个软件或项目起源于用户的一个主意”,在多数时候用户的主意是笼统的、模糊不清的、不完整的。那么,我们作为软件开发者就有义务帮助用户挖掘所有关注点、细化他们的主意、弄清细节、评估需求并排列优先级。

首先我们要在项目开始的时候最大限度的挖掘出客户的需求,当然我们不可能获取全部的需求,也不可能完全正确的获取每一个需求。但是随着迭代开发持续进行,我们会从用户那里得到反馈,并根据用户的反馈信息来调整我们的需求列表,所以 这些问题都会被慢慢解决掉 。我们有三种方法可以获取需求: Bluesky brainstorming,Roleplay ,Observation .

  • Bluesky brainstorming ----无限制头脑风暴,对软件有需求的所有人员都开动脑筋,去想我需要软件为我做什么?希望软件能满足我什么样的功能?每个人都应该有平等的发言权,都能说出自己的想法。而作为开发人员的我们,则记录所有能收集的想法,不管想法是不是切合实际。因为我们在开始的时候需要了解所有的潜在需求,而我们的项目或软件依然会基于最核心的需求进行开发。什么需求最核心?这将由我们的客户自己来决定!然而,有时候头脑风暴的效果不是很理想时怎么办。比如,用户不愿意去想自己需要软件来做什么?或者不习惯这种方式,或者确实想不出来....那么这就是下边这两种方法登场的时候了!
  •        Roleplay------ 角色扮演,如果你的用户觉的很难去描述“他需要软件做什么、如何去做”.那么就用角色扮演把它演出来吧,你扮演软件的角色,而用户就试着命令你做他们想要做的事情。通过这种更形象、直观的方法,获取到用户的需求。
  • Observation -----实地观察,有时候了解用户将如何使用你的软件的最好方法就是观察他们的日常工作,找出来在什么地方软件可以切入。第一手的资料是最真是、最准确的,而通过实地观察我们可以获取详细的第一手资料。对于同一个活动我们要多观察几个不同的人,来获取通用的信息,而不受个人的行事风格的影响。同时我们也能通过”实地观察“,获取在头脑风暴或角色扮演中遗漏的细节或约束。

然后我们就需要把获取的需求整理一下,为什么这些需求还需要整理呢?这是因为我们获取到需求是客户的简单描述,可能不完整或者不是很准确。另外我们也需要一种技术来对所有的需求按统一的格式进行编写和命名,这也有利于我们对需求的管理,这就是User Story显身手的时候了:User Story(由两部分组成标题和描述)

关于User Story有很多的书籍和资料可以参考,我在这里就不详述了。只列出书写User Story时有需要遵守的一些准则。

  • 每一个User Story只描述一件软件为用户做的事情.
  • 使用用户可以理解的语言,不要使用专业的技术词汇.
  • 由户书写或以用户的视角书写.
  • 简短明了,不要用太长的文字描述。如果不能用简短的文字描述的话,就是这将其进一步的拆分.

总之,User Story应该从用户的视角描述,使用户和开发者都能很好理解。User Story定义了“What  the customer need?”,而需求评估则定义了“When we can deliver them?”.关于如何做需求评估将在下一篇文章中说明。

时间: 2024-10-11 17:00:04

深入浅出软件开发-----(二)需求游戏的相关文章

程序设计C语言二级考试教程 Java基础视频教程 安卓软件开发教程 Unity3D游戏制作入门教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

深入浅出软件开发-----(一)超越过程的迭代式开发

(多年前的读书笔记,从ITEYE迁移过来) 近日正在研读<Head First Software Development>一书,很喜欢深入浅出系列的书籍,语言流畅.行文活泼又不失风趣.同时又可以顺便学习一下英文,其实该系列书籍都挺流畅,只要英文不是特别差读起来就不费任何力气. 其实本书根据软件开发的整个流程,讲了很多的切实可行.可用的实践来帮助我们开发出伟大的软件----(Deliver what the customer want,  on time ,on buget!) Greate s

深入浅出软件开发----(四)计划迭代开发

(多年前的笔记,从ITEYE迁移过来的) 在获取到用户的需求并编写成User Stories,并且通过Playing Poker Game 估算出每一个User Story开发所需的时间后.我们得到了要开发所有的User Stories需要的时间,大多数情况都是客户对新软件的要求都相当的迫切.很少有项目是不受时间的制约的.而成功的软件开发就是在规定的时间,规定的预算开发出来用户需要的软件.所以我们需要根据我们的可用时间来进行软件开发. 计算实际可用的开发时间(以人天为单位): 每一个项目都会有一

一种软件开发的需求优先级评估算法

软件项目一般经过需求分析.概要设计.详细设计.软件开发.测试与部署.培训与维护等阶段,其中需求分析阶段,项目经理在面对诸多收集来的需求如何确定哪些做哪些不做,哪些先做哪些放在项目二期去做?笔者认为应该根据需求的可行性.重要性.工作量进行量化评估,业务.开发.生产.维护等相关部门都参与评估,确定需求优先级,按优先级分批次迭代开发,做到公开.合理,为保障成果及时交付奠定基础. 那么如何根据需求的可行性.重要性.工作量确定需求的优先级指标呢?笔者给出以下具体算法: 可行性:1=可实现:0=无法实现 重

深入浅出软件开发----(三)Playing Poker Game

(多年前的笔记,从ITEYE迁移过来) 通过无限制头脑风暴.角色扮演.实地观察等需求获取手段得到了一系列定义良好的User Story之后,我们就要根据需求来评估整个开发过程需要的工作量了. 在这里我们用到了一个有意思的方法----Playing Poker Game,游戏是这样进行的 : 将一个定义良好.描述清晰的User Story放到桌子中间 参与估算的每一个成员给出一个完成User Story开发的估算时间,具体的可选时间可以预先定义一些常用的时间写到卡片 上,每一个人从自己的一套定义好

EOSBet软件开发游戏

EOSBet系统开发,EOSBet模式开发,EOSBet游戏app开发,EOSBet软件开发,EOSBet游戏软件开发,EOSBet游戏系统开发,EOSBet开发陈昊185-8894-8755 目前EOSBet上线的游戏仅有一款,即掷骰子.而仅这款游戏,公测五天,便吸入了10万EOS,换算过来,盈利近3500万元.而平台收益为1.5%,这意味着其流水达到了两亿元以上. ①长效推广收益.绑定钱包参与游戏, ②自动获得推广链接. ③推广成功,可获得其推广玩家每笔投注的0.5%. ④未来该玩家的每笔投

直播APP软件开发

直播视频系统开发,专业开发视频系统,找[吴经理199电7854话2982][wuyh微010203信]业务范围 政府网站研发. 功能APP开发. 慈善会软件支持. 企业公众号开发. 软件开发. 农场游戏开发运维 专业服务 专卖店贵在一个“专”字:产品专业.经营专业.技术专业.服务专业:专业可以缔造权威,专业就是核心竞争力.在医药零售市场竞争越来越激烈的当下,专卖店实际上是一个服务终端.体验终端.立足细分市场,以个性化.差异化的专业服务来争取顾客的支持,更容易形成顾客忠诚度.比如北京同仁堂的中医馆

软件开发一般分为五个阶段

软件开发一般分为五个阶段:1.问题的定义及规划此阶段是软件开发与需求放共同讨论,主要确定软件的开发目标及其可行性.2.需求分析在确定软件开发可行性的情况下,对软件需要实现的各个功能进行详细需求分析.需求分析阶段是一个很重要的阶段,这一阶段做的好,将为整个软件项目的开发打下良好的基础.“唯一不变的是变化本身”,同样软件需求也是在软件爱你开发过程中不断变化和深入的,因此,我们必须定制需求变更计划来应付这种变化,以保护整个项目的正常进行.3.软件设计此阶段中偶要根据需求分析的结果,对整个软件系统进行设

敏捷软件开发与传统软件工程——因果篇

因--差异之源 近来秋将尽,京中阴霾好几日不见好转,更有几天雨水扰人心烦.幸得一日周末,又逢雨过天晴,秋高气爽,捡得几番文笔来细述敏捷软件开发与传统软件工程之异同. 从字面看来,二者无非是"敏捷"与"传统"一词之差.然而这两个词又同属修饰之词,因此就这两个词之差自然就是两种开发方法的差别所在. 敏捷一词,自然是好理解.正如众人所云如游侠身手之敏捷,为称赞游侠反映之迅速,应对变化之机敏.此处用以修饰软件开发,我们亦可套用迅速应变之意,也就是在软件开发过程中能迅速应对需