构建之法——读书笔记(6)

第8章 需求分析

8.1 软件需求

寻找需求:

1. 获取和引导需求(Elicitation)

软件团队需要找到软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出对软件的需求。

2. 分析和定义需求(Analysis&Specification)

这是指对从各个方面获取的需求进行规整,定义需求的内涵,从各个角度将需求量化(需求实现的最后期限,实现需求大致所需的时间和资源成本,各个不同需求的优先级,需求带来的收益,等等)。

3. 验证需求(Validation)

软件团队要跟利益相关者沟通,通过分析报告、技术原型、用户调查或演示等形式向他们验证软件团队对于这些需求的认知。

4. 在软件产品的生命周期中管理需求(Management)

在软件的生命周期中,需求在发送变化,技术在发展,团队成员的能力在提高。

对软件需求的划分:

1. 对产品功能性的需求:要求产品必须实现某些功能。

2. 对产品开发过程的需求:要求软件的开发流程必须满足某些约束条件,例如,开发过程必须产生某种类型的文档,必须在某个时间点达到某个状态,必须对源代码施以某种约束(安全性检查、代码版权核查、代码规范和支持文档的核查)。

3. 非功能性需求:例如:执行时间限制等。

4. 综合需求:可能牵涉到其他系统的情况。

8.2 软件产品的利益相关者

用户:

顾客:购买这个软件或者根据合同或规定接收软件的人。这些人不一定是软件的直接用户。

市场分析师:市场部门要代表“典型用户”的需求。

监管机构:

软件工程师:工程师也是软件需求阶段的一个重要角色,软件的各种约束、特性会影响到他们的工作效率、开发难度和软件维护的难度。他们应积极参与到软件需求阶段中来。

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

用户最需要的>

用户表达出来的>

软件团队能理解的+团队的商业目的>

软件团队成员具体表达出来的(PM写Spec)>

在各种约束条件下,具体执行表达出来的(Dev写代码)>

验证通过的(Test)>

通过各种渠道告诉用户目标(发布/推广)>

用户终于能用上了,但是他们不满意

1. 焦点小组(Focus Group)

2. 深入面谈(In-depthInterview)

一般是一对一。

3. 卡片分类(Card Sorting)

讨论->明晰定义->归类->排序

4. 用户调查问卷(User Survey)

5. 用户日志研究(User Diary Study)

6. 人类学调查(Ethnographic Study)

这种方法听起来学术味很浓,其实可以解释为——和目标用户“同吃同住同劳动”。

7. 眼动跟踪研究(Eye Tracking)

一些研究发现了F模式。

8. 快速原型调研(Quick Prototype)

9. A/B测试(A/B Testing)

8.4 竞争性需求分析的框架

大部分普通用户的需求都有好几个互相竞争的机构在提供服务,对于互联网类型的软件来说,更是如此。很多需求并不是用户提出来的,而是技术的突破让产品团队看到了可以让用户做到以前不敢想、不敢做的事情——但这个时候大多数用户并没有意识到自己有这个具体需求。

1. N(Need,需求)

2. A(Approach,做法)

3. B(Benefit,好处)

4. C(Competition,竞争)

5. D(Delivery,推广)

8.5 功能的定位和优先级

8.6 计划和估计

8.6.1 估计的练习

探询估计数值背后的假设,这是作为项目经理最重要的能力。

8.7 分而治之(Work Breakdown Structure)

做好WBS的几个要点:

1.保证所有子节点覆盖了全部父节点包含的内容。

2.保证各个子节点不要相互覆盖。

3.叶子节点要保证足够小,能在一个里程碑中完成。

4.从结果(Outcome)出发构建WBS,而不是从团队的活动(Action)出发

时间: 2024-10-06 13:42:06

构建之法——读书笔记(6)的相关文章

构建之法——读书笔记(8)

<构建之法>第十&十一章 主要讲述了在软件设计前期的需求分析问题上的方法和实践经验,分为"典型用户和场景"以及"软件设计与实现". 其中第十章大部分内容包含: 用户的分类(典型用户可以包括以下内容: 1. 名字(越自然越好) 2. 年龄(不同年龄和收入的用户有不同的需求) 3. 收入 4. 代表的用户在市场上的比例和重要性(比例大不等同于重要性高,如付费的用户比例较少,但是影响大,所以更重要 5. 使用这个软件的典型场景 6. 使用本软件/服务的

构建之法读书笔记之五

今天我学习了构建之法的第五章——典型用户与典型场景.我们都知道,软件开发最终都是服务于用户,所以用户主导着我们的开发方向.软件开发离不开用户,所以能够搞清楚用户隐藏的要求也是软件开发过程中的的一个重要的课题,这就涉及到了典型用户. 典型用户,顾名思义,能够代表大部分用户的用户.很多时候,不考虑典型用户的话,软件的开发不可能把所有的方面都做的尽善尽美,开发人员不可能把所有的方面都能考虑到.这时候,典型用户就站了出来.但同时,典型用户也有两面性——受欢迎的与不受欢迎的.那些能够按照开发者期望进行操作

软件 = 程序 + 软件工程(构建之法读书笔记一)

在我正式开始阅读这本书之前,我对于软件工程这个词汇的概念还是模糊的,认为它只是停留在是一门学科,一个专业,或者是一大堆硬生生的理论知识,然而当我读完构建之法这本书的推荐序和第一,第二版前言开始,我就深刻意识到我之前对于软件工程的肤浅认识是多么错误. 我看书一般喜欢从从书的封面开始看起,或许这也是大多数人看书的习惯,·在本书的封面素描着一副鲁班锁,刚开始让人感觉有点奇怪,明明是一本讲软件工程的书,为什么要用鲁班锁做为封面图案呢?原来玄机深藏于鲁班锁的内部,这鲁班锁从外部看,是严丝合缝的十字立方体,

构建之法读书笔记

周末我抽空将<构建之法>第一章读完,感觉对软件工程又有了新的认识. <构建之法>开篇便写到:软件=程序+软件工程.我认为这是对软件的一种及其精炼的解释.程序即是指一行行代码,软件工程则包含了各种软件开发活动,包括构建管理.源代码管理.软件设计.软件测试.项目管理等等,是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程. 作为一名机械专业的学生,我认为软件设计是我们必须掌握的一门技能.机械行业,除了大家普遍所能看到的机械结构,每一个设备还包含有控制.软件等部分,一个

构建之法读书笔记_1

本周我快速地阅读了一遍<构建之法>,提出以下几个问题: 1在满足客户需要的同时,我们有些什么原则需要坚持. 2软件测试方法有什么?做软件测试只是找BUG吗? 3什么是敏捷流程?怎样去根据自己的项目选择开发方法? 4第三章中有提及考级的相关内容,但是在社会工作中,实践经验比证书更重要,我们应该如何平衡理论知识与实践之间的关系? 5当今市场对软件有哪些主要需求,安全软件并不能填满所有的漏洞,它的发展前景真的有那么好吗?

构建之法读书笔记之三

在学习了构建之法第四章,第五章之后,写一下我的感想. 代码规范一直是我们在学习过程中一个老生常谈的话题.专业技能过硬与否只是一方面,代码规范同样也是一个举足轻重的方面.比如最开始的注释,在我们写一些很短的代码十几行,几十行代码的时候,如果不写注释,说白了,那么短的代码,谁都能找得到.但是,万一代码量上了三位数呢.几百行的代码,找那么一个错误,难度可是不小.再加点难度,四位数,五位数,甚至做项目的时候呢.没有注释,八成项目经理都不要你了. 代码规范有很多方面,处了注释,还有缩进,行宽,括号,分行,

构建之法读书笔记之二

由于近几周进行构建之法的学习很少,所以这周一下子看了三个周期的内容. 既然选择了软件工程专业,就决定了我们将来要朝着软件工程师的方向发展.那么,问题来了,如何成为一名合格的软件工程师,在成为一名软件工程师的过程中,我们又有那些需要注意和学习的地方呢. 软件工程师的成长道路上,首先对我们自己的专业技能有很高的要求.所以第一步,我们要丰富自己的专业技能,并奇瑞要很好的衡量自己的能力.这样一来,就有涉及到了衡量我们能力的标准.这里又有一个问题,对于这些衡量标准,我们不能抱着仅仅不被OUT的态度,不能只

构建之法读书笔记3

软件开发流程: 写了再改模式:适合只用一次的小程序 RUP统一流程:将不同类型的工作划分为规程和工作流. 老板驱动的流程:老板在整个流程中占据领导地位. 渐进交付的流程:现发布一个版本,然后根据反馈进行修改然后再发布,不断反复直到用户满意或无法进行下去时停止.MVP:最小可行产品,即先做出一个实现了关键功能的很小的软件供用户使用体验,然后根据用户反馈继续开发.MBP:最强最美产品,即等到产品做得完美了后再进行发布. TSP原则:优秀的模式和流程的共同点的总结. 瀑布模型以及瀑布模型的各种变形:适

构建之法读书笔记01

第一章讲述了学生与老师的关系,很多内容都是老师上课所涉及到的,那就是如何让我们学好软件工程,在很多时候我们都是有惰性的,需要老师给与压力,也就是老师说的要想让我们真的学会游泳,就要下水,同时老师还需要踹我们一脚,不仅是在学士或者在游泳的过程中,都要让我们感到压力,那样才能激发我们求生的本能,同时能够让我们创造奇迹. 软件工程融汇了很多技术,书中更是列出了十多种相关科目,在感觉到博大精深的同时,有深深的感觉学习这门的压力,看到了软件工程的目标,就是创造“足够好”的软件,而足够好也是给我们纠正了,不