第八章:需求分析

软件需求

人们(用户)的需求五花八门,作为一个软件团队要准确而全面地获取这些需求主要有以下四个步骤:

  1. 获取和引导需求。这一步骤也被叫做“需求捕捉”。软件团队需要为用户着想,设身处地,为用户引导出需求。
  2. 分析和定义需求。从各个方面获取的需求进行规整,定义需求的内涵从各个角度将需求量化。
  3. 验证需求。软件团队要跟利益相关者沟通,通过分析报告、技术原型、用户调查或演示等形式向他们验证软件团队对于这些需求的认知。
  4. 在软件产品的生命周期中管理需求。

对软件的需求,也可以从不同角度做以下的划分:

  1. 对产品功能性的需求
  2. 对产品开发过程的需求
  3. 非功能性需求
  4. 综合需求

软件产品的利益相关者

很多人或机构都是某个软件的利益相关者,软件团队在分析软件需求时要考虑如下这些利益相关者:

  1. 用户(或称最终用户)
  2. 顾客(或称客户)
  3. 市场分析师
  4. 监管机构
  5. 软件工程师

获取用户需求——用户调查

以下是几种常用的用户调研方法:

1.焦点小组

2.深入面谈

3.卡片分类

4.用户调查问卷

5.用户日志研究

6.人类学调查

7.眼动跟踪研究

8.快速原型调研

9.A/B测试

竞争性需求分析的框架:1.N(需求) 2.A(做法) 3.B(好处) 4.C(竞争) 5.D(推广)

第九章:项目经理

PM指的是项目经理

Product Manager:产品经理——正确地做产品。

Project Manager:项目经理——正确地做流程。

Program Manager:微软职位名称。

微软PM的来历

大部分公司的项目经理叫Project Manager,微软的经理叫做Program Manager。微软曾经是一个创业公司,两个创始人都是开发人员,招聘的新成员也大多是像他们一样的开发人员。查尔斯.西蒙尼超级程序员于1981年加入微软公司,并实施MP和SP改革,目的在于减少交流成本,实际上由于没有人想做SP,所以这次改革不了了之。后来,贾伯.布鲁门萨尔的程序员提出了Program Manager(PM)这一头衔,并成为了微软第一个PM。PM的出现让负责一个功能的开发/测试人员和相关的PM紧密合作,再有PM代表这一小组去和别的小组或客户打交道,大大降低了交流的成本,有专人负责开发/测试以外的许多事务和项目进行管理,让开发人员专注于技术方面的工作,实践也证明了这种改革利大于弊。

PM做开发和测试之外的所有事情

PM最大、最独特的贡献是带领团队达成最重要的目标,并保持团队的平衡。

牛人主导的项目,往往会大起大落;PM主导的产品中,"不犯大错“成了一个特点。

PM的能力要求和任务

  1. 观察、理解和快速学习能力
  2. 分析管理能力
  3. 一定的专业能力
  4. 自省的能力

第十章:典型用户和场景

典型用户可包括以下内容:

  1. 名字(越自然越好)
  2. 年龄(不同年龄和收入的用户有不同的需求)
  3. 收入
  4. 代表的用户在市场上的比例和重要性(比例大不等同于重要性高,如付费的用户比例较少,但是影响大,所以更重要)
  5. 使用这个软件的典型场景
  6. 使用本软件/服务的环境
  7. 生活/工作情况
  8. 知识层次和能力
  9. 用户的动机、目的和困难
  10. 用户的偏好

注意:团队做出来的软件不是为所有人服务的,要非常明确地定义谁是我们的用户

定义了最初的典型用户后,我们还要和这些典型的用户代表交流,理解用户,理解他们的工作方式和需要,然后再修改,细化典型用户。

用例:(很常用的需求分析工具)

使用用例的原则:

  1. 通过讲简单故事来传递信息
  2. 保持对全系统的理解
  3. 关注用户的价值
  4. 逐步构建整个系统,一次完成一个用例
  5. 增量开发,逐步构建整个系统
  6. 适应团队不断变化的需求

总结:读完这几章内容,发现软件需求分析很关键,它指引着团队要开发怎样的软件,如果分析错误将会花费工程人员大量的时间纠正项目,并重新工作,加大开发的难度。因此要把握好、准确而全面地获取用户的需求信息。PM做开发和测试之外的所有事情,带领团队达成最重要的目标,并保持团队的平衡,让开发人员专注于技术方面的工作。所以,我觉得PM的改革措施具有历史性意义,值得去借鉴。

Sprint1总结

在这次sprint阶段一中,自己自主地学习了android数据库的操作,我们用的工具是AS2.0,说实话,虚拟机运行真的很慢,并且耗费了大量运行内存,电脑也是卡卡的。用数据库存储数据时,它不会检验里面的语句是否有错,而是当你运行后直接报异常,这就花费了大量时间做修复异常的工作。同时,自己也学到了更多的课外知识,还蛮不错的。我们团队基本按照sprint计划比较顺利的完成任务,小组成员通过发表各自意见,提出反馈问题,我们逐一想办法去解决。由于最近各种大作业需要我们去完成,比较忙,可是我们也要在软件工程这门课花费时间去做,毕竟每一门课都是平等的,至少我这样认为。所以我们还是要把精力放在我们正在做的项目中去,逐步完善我们的APP。虽然每个人的能力不一样,但是我们团队可以互帮互助,各自发挥每个人擅长的那一方面,那么我相信接下来我们的合作会越来越顺利,越干越有劲!所以,我们遇到困难,不要放弃,我们要相信我们可以解决这些问题,我们需要在完成项目的过程中一边做一边学。至少我们不要放弃,不要把”放弃“这个词语放在我们的字典里。

《构建之法》第8、9、10章读书笔记、读后感以及Sprint1总结的更多相关文章

  1. 《构建之法》第四&十七章读书笔记

     <构建之法>第四&十七章读书笔记 一.         前言 再次阅读<构建之法>,愈发被其中生动有趣的举例吸引.作为一本给予软件工程学生的书籍,其不以枯燥的理论知识 ...

  2. 《构建之法》IT行业的创新 读书笔记 WEEK 5

    本周选读邹欣老师的<构建之法>第16章——IT行业的创新. 邹欣老师将本章话题分成五个部分来阐述:创新的迷思.创新的时机.创新的招数.魔方的创新.创新和作坊,博主认为时机和招数这两个部分在 ...

  3. 《构建之法》第8、9、10章 读书笔记和Sprint总结

    第八章:需求分析 这章主要解析了需求的多面方面,不同的项目需要不同的手段,真正的需求稍纵即逝,需要靠火眼金睛和敏捷的身手来发现并抓住它们.另外,很多时候用户并不知道自己确切的需求,或者不愿意表达完整的 ...

  4. Linux内核分析第四章 读书笔记

    Linux内核分析第四章 读书笔记 第一部分--进程调度 进程调度:操作系统规定下的进程选取模式 面临问题:多任务选择问题 多任务操作系统就是能同时并发地交互执行多个进程的操作系统,在单处理器机器上这 ...

  5. 《Linux内核设计与分析》第四章读书笔记

    <内核设计与实现>第四章读书笔记 第四章:进程调度 进程(操作系统)程序的运行态表现形式. 进程调度程序,它是确保进程能有效工作的一个内核子系统. 调度程序负责决定将哪个进程投入运行,何时 ...

  6. <深入理解计算机系统>第七章读书笔记

    第七章读书笔记 链接 链接:将各种代码和数据部分收集起来并组合成为一个单一文件的过程.(这个文件可被加载或拷贝到存储器并执行) 链接可以执行于编译,加载或运行时. 静态链接: 两个主要任务: 1 符号 ...

  7. linux内核分析第3章&第18章读书笔记

    linux内核分析第3章&第18章读书笔记 第三章 进程管理 进程:处于执行期的程序(目标码存放在某种存储介质上) 包含资源:可执行程序代码,打开的文件,挂起的信号,内核内部数据,处理器状态, ...

  8. Android驱动开发5-8章读书笔记

    Android驱动开发读书笔记                                                              第五章 S5PV210是一款32位处理器,具有 ...

  9. 【Tools】Pro Git 一二章读书笔记

    记得知乎以前有个问题说:如果用一天的时间学习一门技能,选什么好?里面有个说学会Git是个很不错选择,今天就抽时间感受下Git的魅力吧.   Pro Git (Scott Chacon) 读书笔记:   ...

随机推荐

  1. android studio svn不显示问题

    今天更新android studio SDK 重启后发现SVN功能没有了,工具栏也没有了更新提交按钮,刚开始以后是SVN程序可以不行了(在我的电脑提交更新没问题)我在官网下了最新1.9.4 打开and ...

  2. python数据结构之二叉树遍历的实现

    本篇是实现二叉树的三种遍历,先序遍历,中序遍历,后序遍历 #!/usr/bin/python # -*- coding: utf-8 -*- class TreeNode(object): def _ ...

  3. WinDbg使用介绍

    Windbg工作空间 WinDbg使用工作空间来描述和存储调试项目的属性.参数及调试器设置等信息.工作空间与vc中的项目文件很相似.WinDbg定义了两种工作空间,一种为默认工作空间,另一种为命名的工 ...

  4. Oracle 11g RAC环境下Private IP修改方法及异常处理

    Oracle 11g RAC环境下Private IP修改方法及异常处理 Oracle 11g RAC环境下Private IP修改方法及异常处理 一. 修改方法 1. 确认所有节点CRS服务以启动 ...

  5. Make it run, make it right, make it fast

    如果问我工作十多年后相比刚毕业参加的时候,学到了哪些重要的经验,那么"Make it work, make it right, make it fast"一定是其中最重要的经验之一 ...

  6. Navi.Soft30.产品.阅读导航

    Navi.Soft30.Core类库.开发手册 Navi.Soft30.框架.WinForm开发手册 Navi.Soft30.框架.WebMVC开发手册 Navi.Soft30.框架.Mobile.开 ...

  7. Apache Internal Server Error

    当使用 Apache 作为服务器,使用 cgi 程序接收来自 web 端的访问时,出现如下错误: Internal Server Error The server encountered an int ...

  8. spring mvc jsp运行不起来的问题

    spring mvc已经处理成让jsp运行,即: <bean class="org.springframework.web.servlet.view.InternalResourceV ...

  9. Eclipse无法启动报An internal error occurred during: "reload maven project". java.lang.NullPointerException

    由于没有正常关机导致eclipse无法将数据正常写入配置文件导致无法启动.报这样一个异常 An internal error occurred during: "reload maven p ...

  10. C# WinForm程序打印条码 Code39码1

    做WinForm程序需要打印条码,为了偷懒不想自己写生成条码的程序在网上下载一个标准的39码的字体,在程序里面换上这个条码字体即可打印条码了. 最重要的一点作为记录: 如果想把“123456789”转 ...