构建之法阅读笔记
下面是有关需求分析方面的笔记。
一. 软件需求
软件需求获取有以下几个步骤
1. 获取和引导需求:团队要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出对软件的需求。
2. 分析和定义需求:团队需要从各个方面获取需求并进行规整,定义需求的内涵,从各个角度叫需求量化。
3. 验证需求:团队要跟利益相关者沟通,通过有效的方式向他们验证团队对于这些需求的认知。
4. 在软件产品的生命周期中管理需求:在软件生命周期中,需求是会发生变化的,因此要多做调整。
而软件需求可以从不同角度进行如下划分:
1. 产品功能性需求:要求产品必须实现某些功能。
2. 产品开发过程需求:要求软件的开发流程必须满足某些约束条件。
3. 非功能性需求:又称“服务质量需求”。例如某网站需要支持一定数量的用户同时访问。
4. 综合需求:有些需求并不是一个软件模块能满足的,需要多个模块。
前面提到了“软件的利益相关者”,下面使其定义。
1. 用户:直接使用软件系统的人。
2. 顾客:购买这个软件或根据合同接受软件的人。
3. 市场分析师
4. 监管机构
5. 软件工程师
二. 用户需求
如何才能调查好用户想要啥?可以通过一下方法调研。
1. 焦点小组:找到一群目标用户的代表,加上项目的利益相关者来讨论用户想要什么,用户对软件的评价等。
2. 深入面谈:通过详细的面谈,管反而深入地了解用户的背景、心理、需求等。这通常是一对一的。
3. 卡片分类:团队在收集需求的时候可以利用“卡片分类”的方法,把各种需求做成便于规整的小卡片,然后反复进行下列活动:讨论->明细定义->归类->排序。这一方法可以帮助团队更好地统一大家对软件需求的认识,量化各种特性,更好定义架构、流程等关系。
4. 用户调查问卷
6. 用户日志研究:要求用户记录自己日常工作或生活终于所用软件相关的行为。
7. 人类调查学:体验目标用户的生活。
7. 眼动跟踪研究:追踪用户的眼部运动,便于设计界面。
8. 快速原型调研:做一些半成品模型,供用户使用,可快速获得反馈。
9. A/B测试:设计方案A/B,共两组用户使用,收集数据。但成本会随着项目的发展而变高。