在选择“需求游戏”这个标题名称的时候,我犹豫再三,但还是用了这么一个标题。这并不是说在做需求捕获和分析时持有游戏的态度(当然这也是很不应该的),而是说我们在做需求捕获和分析时用到的一些方法很像是在做游戏,形式轻松,效果也不错。
在上一篇文章里我们提到过“一个软件或项目起源于用户的一个主意”,在多数时候用户的主意是笼统的、模糊不清的、不完整的。那么,我们作为软件开发者就有义务帮助用户挖掘所有关注点、细化他们的主意、弄清细节、评估需求并排列优先级。
首先我们要在项目开始的时候最大限度的挖掘出客户的需求,当然我们不可能获取全部的需求,也不可能完全正确的获取每一个需求。但是随着迭代开发持续进行,我们会从用户那里得到反馈,并根据用户的反馈信息来调整我们的需求列表,所以
这些问题都会被慢慢解决掉
。我们有三种方法可以获取需求:
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?”.关于如何做需求评估将在下一篇文章中说明。
分享到:
相关推荐
《深入浅出程序设计》是一本面向初学者和进阶者的编程教材,旨在帮助读者全面理解编程基础,尤其是针对C#、ASP.NET以及MVC框架的运用...通过阅读和实践,你将能够构建功能丰富的应用程序,应对不断变化的软件开发需求。
《深入浅出设计模式》是基于《Head First Design Patterns》的经典中文译本,这是一本深受程序员喜爱的设计模式教程。本书以独特的学习方式,通过生动的图像、故事和游戏,帮助读者深入理解并掌握设计模式。设计模式...
根据提供的信息来看,标题与描述均为“深入浅出 Head First C# (第二版)part3中文版”,这表明文档的主要内容是关于C#编程语言的学习资料。然而,具体的内容部分并未给出,仅提及了一个名为“最值得程序员珍藏的200...
C#是一种广泛应用于开发Windows应用程序、Web应用程序以及游戏开发的强大编程语言,由微软公司推出并不断更新以适应现代软件开发的需求。 第三章:C#基础与语法强化 在这一章中,我们将深入学习C#的基础语法和关键...
- **系统软件**:由于其高效性和控制能力,C++常用于操作系统、编译器等底层系统软件的开发。 - **游戏开发**:许多游戏引擎(如Unreal Engine)都是用C++编写的,因为它能够提供高性能的游戏体验。 - **嵌入式系统*...
### 设计模式:深入浅出理解与应用 #### 引言:从代码复用到经验复用 在软件工程领域,随着项目的复杂度增加,如何有效地管理代码、提高开发效率和减少错误成为开发者关注的核心议题。传统的代码复用虽然能够解决...
### 深入浅出设计模式培训课件_2 #### 一、设计模式概述 设计模式是在软件设计和开发过程中不断总结出的、反映某一类设计问题的解决方案。它们通过对现实生活中某些常见问题的抽象,提供了一套成熟且经过验证的...
### C#深入浅出全接触:初学者必备的C#宝典 #### 一、C#:Microsoft的革新之作 C#(发音为"C Sharp")是由Microsoft开发的一款现代编程语言,它融合了C和C++的强大功能,同时借鉴了Visual Basic的易用性,使其在...
从给定的文件信息中,我们可以提炼出关于C#编程语言的多...综上所述,C#作为一种现代化的编程语言,不仅吸收了多种语言的精华,还在.NET框架的支撑下展现出独特的魅力和广泛的适用性,成为了软件开发领域的强有力工具。
1. **系统编程**:在操作系统、设备驱动和其他底层软件开发中,汇编语言被广泛采用,因为它们需要对硬件进行精确控制,以实现高效的资源管理和优化性能。 2. **效率需求**:在需要执行速度非常快或者内存使用极低的...
《Java软件工程开发的思想》一书,由林锐撰写,是一部深入浅出、生动活泼地阐述软件工程原理与实践的作品。该书不仅是一本技术指南,更是一部充满个人感悟与经验分享的心血之作,旨在引领读者理解软件工程的核心思想...
这本书深入浅出地介绍了敏捷开发的核心理念、实践方法以及相关模式,对提升软件开发效率和质量有着显著作用。 一、敏捷开发 敏捷开发是一种以人为核心、迭代、逐步交付的开发方法论,强调适应变化、快速响应需求。...
本文通过一个具体的案例——华容道游戏的开发,深入浅出地介绍了J2ME游戏开发的基本流程和技术要点。通过本篇文章的学习,读者不仅可以了解J2ME的技术架构和发展趋势,还能掌握如何搭建J2ME开发环境、进行基本的游戏...
计算机软件教案是教育领域中针对高中信息技术课程设计...通过这份教案,教师可以深入浅出地讲解计算机软件的相关知识,结合实际案例,让学生不仅能理解理论,还能动手实践,从而提高他们的信息技术素养和问题解决能力。
《跟我学敏捷开发》一书,由蔡煜著,版本1.1.0,深入浅出地介绍了敏捷开发的基本概念、核心原则及实践技巧,适合企业新人和技术经理阅读。 #### 敏捷开发的核心原则 1. **重视个体和交互**:相比过程和工具,敏捷...
- 《深入浅出MFC》第二版,候俊杰,华中科技大学出版社 - 《Visual C++从入门到实践》,葛亮,清华大学出版社 通过这个课程设计,学生不仅可以掌握MFC编程的基础,还能了解到游戏开发的流程、数据结构的应用、...
书中深入浅出地介绍了向量的基本概念,如向量加减、标量乘法、向量点积和叉积,以及它们在游戏开发中的应用。了解向量数学对于实现精确的物理效果、角色动画和用户界面操作至关重要。 ### 6. 高级碰撞检测策略 ...