《构建之法》需求分析 读书笔记

  后悔没有早点读完这章,回想团队项目刚开始时做的需求分析,深深感到我们实在太天真、太理想。毕竟没有理论指导,按习惯做调研是容易碰钉子的,不过现在项目还未正式启动,亡羊补牢,为时未晚。

我们踩中了哪些坑?

①未能充分引导用户表达需求

  我们采用了问卷调查的方式,但没有做进一步的深入调研。问卷调查有其好处——简单方便、调查速度快、数据易统计,但也有固有的弊端,那就是容易形式化,不易让受调查者充分表达自己的观点、问题或是诉求。出于节约受调查者时间的目的,题目基本设定为多项选择,这会有什么后果呢?填问卷的人看完题目便根据自己的第一反应或最近(最近多久也无法确定)的状况作出选择;同时,我们并未进一步的询问情况,答者也就不会花更多的时间给我们建议或说明实际情况。做完这些后,我们看似获得了不少数据,作出了一些立即的结论,但这些都是肤浅的。反之,我们损失的是更深入的用户体验,而这往往决定着软件的生死。总而言之,我们把“人”想象的太简单了,只从片面去考虑问题,得到的结论也将是不完全的。

②理想化思考,调研不够严格

  在调研之前,我们确实可以提出自己的想法,畅所欲言,不过,有些决定做得太早却不是好事。结合之前的讨论,我们有不少“我觉得……,所以我们就要/不要……”的言论,可能我们是将要开发的软件的目标人群,但充其量只是其中一个渺小的子集,不能代表广大用户群体的需求,除非是一些普遍达成共识的结论,不然都需要经过充分调研才可得出,这也是需求分析的意义所在。过多的“我认为”会带来先入为主的错误,从而降低了软件功能与用户需求的覆盖率,如果因此恰巧错过了“杀手功能”那就真是追悔莫及了!

③功能分类不明确,缺乏主次

  之前我们设想了一大筐可以添加的功能/模块,仿佛吃火锅一样,食材怕少不怕多,感觉什么都能往里加,然后沉浸在头脑中建好的罗马城里,自我感觉很棒,要是真的做出来了,必定大受欢迎。不知不觉中,我们又犯了理想与乐观主义的错误,试问,这些功能全部做完需要多长时间?这些功能都能真正吸引到用户吗?我们的技术(考虑学习新技术的时间及预计的掌握程度)能完成所有模块的开发工作吗?那么,我们要怎样做?进行功能和需求的分类!书中提到的做法我觉得是可取的和行之有效的。按功能分为“杀手功能”和“外围功能”,按需求分为“必要需求”和“辅助需求”,而这些当然是要根据细致的调研结果得出的。

当然,这些“坑”只是我们前期存在的比较严重的问题,还有其他一些细小的问题就不在此一一列举了。

 

 

我们该怎么办?

  对于问题①和②,我觉得可以重新开展调查,至少应该抓住重点对象进行进一步调查。毕竟,我们的软件可能不是大众必需品,所以我们要提高对使用者的粘性。在设计问题是,我们需要充分引导答者,让他们说出心里话,表达出自己的需求,这样我们才能充分判定哪些功能是适合开发(有人会用)的。这还不够,我们还需要看出哪些用户对这款软件特别期待或感兴趣,再对他们进一步调研,要结合他们的想法来规划一个模块具体怎样设计才是令人满意的。前者,相当于在一块地上建东西,到底是建公园还是建大楼?后者,则是具体落实要怎样建,如果建公园,公园里该有什么?如果建大楼,大楼几层比较好?建成什么形状?这都是要通过调研来确定的。

  对于问题③,我认为书中提出的解决方案是比较实用的,即按功能分为“杀手功能”和“外围功能”,按需求分为“必要需求”和“辅助需求”。必要的杀手功能要投入最大的力量去开发,争取做成自己的特色,与类似软件拉开差距。必要的外围功能则可参考其他同类软件,做到差不多即可。辅助功能则抱完成就好的态度,甚至可以在时间不够时放弃,之后再陆续添加并改进。

原文地址:https://www.cnblogs.com/Laplace-s-Trap/p/8886146.html

时间: 2024-10-12 18:07:11

《构建之法》需求分析 读书笔记的相关文章

项目管理学习——《构建之法》读书笔记

最近终于有时间来读读书了.买了<构建之法>已经一年多了,这次静下心来读完了,收获很大.现在想起自己在上大学的时候学习软件工程是机械工业出版社出版的一本外国书籍的翻译版本,当时由于对于整个行业没有太大的感触,而这本书又全部由专业术语和定义组成,所以当时的课是相当痛苦.而老师通过的这门课程的方式又由各种理论知识考试为准,所以当时学习感觉相当“鸡肋”. 好的地方: 1,情景式.对话式对白,有趣易读.这点非常喜欢,很多实际中碰到的问题在这里可以重现.比如:每日构建,在实际开发中,就会由于各种原因导致不

《构建之法》读书笔记之:第一、二、十六章

这周看了邹欣老师<构建之法>的1,2,16章,获益匪浅.这本书写得妙趣横生,用阿超小飞几个人的生活场景和幽默的比喻帮我理解着软件工程的相关概念,让我对软件工程有了初步的了解:原来开发软件并不是我们想的那样简单:上手直接敲代码就可以了,而是会有一套详细的流程规范.下面是我看书时的一些心得笔记,和一些无法自己解答的疑惑,烦请各位老师批评指教. 第一章: 笔记: 软件=程序+软件工程,是否可以通俗地理解为,程序只是死的机器的东西,为什么做(需求分析),做什么(软件设计),做完后这东西是否可行(软件测

《构建之法》读书笔记01

今天阅读了邹欣老师的<构建之法:现代软件工程>的第一章,也回想起了我之前对于软件和硬件的一些思考,在这里一并总结. 首先谈软件工程,在计算机技术刚刚发明的时候,跟其他的行业一样,肯定是没有工程这个概念的.肯特.柯西做热气球的时候如果还要想想这个热气球除了飞上天,还要不要能在上面做个饭睡个觉啥的(需求分析),要不要绘制模型,然后规范加工生产(构建管理),进而涉及到热气球的版本--什么时候发布热气球2.0(版本控制),然后怎么把我的热气球推广出去(推广),除非他对飞上天特别狂热,不然面对这么多繁杂

记软件构建之法的读书笔记

什么是软件工程? 软件工程与计算机科学有什么关系? <构建之法:现代软件工程>这本书的绪论主要就是讲解这两个问题.软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护的过程.它包括:软件需求分析.软件构建.软件测试和软件维护等多个领域.做一个合格的软件工程师,并不仅仅局限于你会多少种语言,是否会用C++写“Hello World”的程序,你还要清楚软件如何构建以及在软件构建之中不厌其烦的去做那些用户使用率为百万分之一,但却不可或缺的功能.程序是基本功,但是在算法和数据结构之上,

《构建之法》读书笔记二

这周读了<构建之法>的第二章.第二章主要讲到了个人技术和流程. 软件是由多人合作完成的,不同人员的工作相互有依赖关系.一个团队需要一定的流程来管理开发活动,每个工程师在软件生命周期所做的工作也应该有一个流程.所以就引进了一个新的名词叫做PSP--个人软件开发流程.但是要做到每个人的模块的质量得到稳定.量化的保证,单元测试就是一个很有效的解决方案.我们可以用vsts写单元测试,这是一个新的软件,我从来没有接触过,所以也不会用.只看了一下代码. 好的单元测试应该准确.快速地保证程序基本模块的正确性

《构建之法》读书笔记

这次个人阅读选择的书籍为<构建之法:现代软件工程>(邹欣 著).我们这门课程也参考了很多这本书的结构.内容与方法,读这本书,既是对学过知识的复习和细化,也是对以后课程的预习. 下面总结了几个阅读过程中理解有困难或疑问的point,有的是细节,有的是大的方法.然后在网上查找学习了相关内容,与大家分享. 1.  第4章 两人合作 —— 4.3 代码设计规范 —— 4.3.3 错误处理 此处提到了“断言”的概念,但着墨不多,介绍简略. 那么问题来了,挖掘机……不是,断言是什么? 编写代码时,如果程序

《构建之法》读书笔记一

本周先看了<构建之法>的第一章. 这一章介绍的理论和知识点有计算机科学的领域.软件的特性.软件工程.软件工程与计算机科学的关系,还向我们详细介绍了软件工程的定义与组成部分. 其中有三个推论: 程序=数据结构+算法 软件=程序+软件工程 软件企业=软件+商业模式 由此可知,程序(算法.数据结构)是基本功,但是在算法和数据结构之上,软件工程决定了软件的质量. 而后课本又讲到了"软件是什么"这一个问题上. 通过阅读我了解到了软件的特殊性,它的开发过程的难点就是在复杂性.不可见性.

软件开发之需求分析(《构建之法》读书笔记3)

在软件开发的过程中,我们事先需要对需求进行详细的分析.软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素.需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整.准确.清晰.具体的要求. 需求分析有以下几个步骤: 1:获取和引导需求 2:分析和定义需求 3:验证需求 4:在软件产品的生命周期中管理需求 因为人们为了解决现实社会和生活中的各种问题,要求助于软件.人们的需求五花八门,那么软件如何才能准确而全面地找

《构建之法》读书笔记2

[2.1] 单元测试的重要性和必要性以前并没有注意到,大部分测试是由手动遍历测试,这就导致了代码漏洞百出.一不够全面,二没有逻辑性.这部分内容给了我很好的警醒.单元化测试以及测试代码自动化都是在完成一部分新代码之后必须马上完成的事情.虽然繁琐.复杂,但是绝对不能跳过这一步.另外,回归测试中提到的问题,在以前也非常经常的遇到过,总算系统的学习到了科学性.理论性的解释和解决方法. [2.2] 效能分析.很多情况下对我来说就是一句空话,用来撑场面的花架子,细数下来,竟然很少真正的通过数据来说明程序效能

《构建之法》读书笔记4

[4.2] 代码风格非常重要.我自己写时会严格注意这一方面.阅读他人代码时也是同样.里面提到了一些规范,可以此为范本.代码可读性太重要了. [4.3] 摘:关于函数,最重要的原则是:只做一件事,并且要做好. 关于4.3.4中“如何处理C++中的类”这一部分没太读懂,有一些概念还不太清楚,这里先留下疑问,等全书读完再来释疑. [4.4] 代码复审的目的之一,查错是必然的,但是如果编译通过,想要发现逻辑错误.算法错误就会相对比较困难,也很容易被忽视.针对此处,结对编程的优势就体现出来了.或者在做项目