阅读构建之法有感

利用这一周的时间,我大致了解构建之法一书,这本书带我走进了一个全新的领域。它让我以一种新的视角去了解软件产业的发展和工作,领略软件工程的独特魅力,更给出了简单易懂的方式去理解何为软件工程,软件工程要做什么,它要达到的目标是什么?

笔者站在一个从业者的角度,以其对软件发展无比的热情,去指导学校中未曾有实践经历的在校学生,或是已有工作经验的社会人员实现软件工程的真正有效流程。该书将软件工程的各个步骤进行分章节讲述,叙述清晰,脉络清楚,向我们大家讲述笔者多年对软件开发的心得体会,同时邀请广大的同学积极参与进来,一同探讨软件工程这一学科。

对于笔者的软件工程理念,我感到耳目一新,这是一场以实际经验为基础的勇敢实践。作者的能力值得我钦佩,这本书也值得学习。

在阅读的过程中,我对其中的部分内容表示疑惑,因此提出以下几点问题,和大家一起探讨:

1、书中说很多非常成功的软件都是赢在用户体验,后面的第12章也专门提到了用户体验,说软件开发时可以使用5W1H的方法来判断用户的体验,而需求分析需要获取用户需求,进行用户调研,那么用户体验与需求分析又有什么区别呢?为什么二者要但单拿出来作为两个步骤?

2、在需求分析一章中,提到要在软件产品的生命周期中管理需求,那么当一款软件开发出来,是否能够根据一定的指标来判断软件的生命周期长短?在整个软件生命周期中又需要做那些工作来延长软件的生命周期(管理需求除外)?

3、书中提到两人合作时,以跳舞作为类比,提出了5个阶段,然而结对的合作编程真的是只有这样的5个过程而已吗?我感觉两个人合作编程的磨合其实是一个长久的过程,一个暂时性的组合,几乎不可能达到真正意义上的默契,而且同时在不断了解对方、认识对方的同时还要进行合作完成任务,我感觉两人合作完成一个暂时性任务应该是从矛盾——磨合——合作三者中间一个循环往复,并且不断发现自身与伙伴之间的矛盾,不断完善的一个过程。

4、书中对团队和流程的介绍中,谈及何为团队、团队的分类,以及团队的开发流程,但却不曾提及如何进行团队分工?但在我看来,团队合作的分工是一个很慎重的问题,如果分工不合理,后续的任务就会一塌糊涂,这个程序陷入瘫痪状态,这显然不是我们所期望的。所以,当一个团队已经组建成功且确定了选题,如何分工会让我们的合作效率最高呢?

5、书中介绍了敏捷编程,讲述了敏捷编程的原则等一系列的问题,但敏捷流程相比于传统编程又有什么优势呢?为什么我们要选择敏捷编程去实现软件开发呢?

2nd 阅读构建之法有感的更多相关文章

  1. SE_Work1_阅读构建之法&项目管理实践

    项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求:阅读<构建之法>并回答问题 个人博客作业 我在这个课程的目标是 提升团队管理及合作能力,开发一项满意的工程项目 这个作 ...

  2. 学习JAVAWEB第三十七天(读构建之法有感)

    读<构建之法>有感 我今年暑假回去就要升入大二了,在今年的专业分流时,我选择了软件工程专业,起初的想法很简单,做一款优秀的,能拥有大量用户的软件,甚至还想通过自己的软件改变人们的生活.读了 ...

  3. 阅读<构建之法>第三10、11、12章并提出问题

    <构建之法>第10.11.12章 第10章: 问题:对我们了解了用户的需求后,但是我们想法和做出来的软件会和用户的需求有偏差,比如风格.界面的修饰等等,那么我们程序猿怎样才能让自己的想法更 ...

  4. 8th 对软件工程的理解(读构建之法有感)

    对于任何一个学计算机的人来说,软件都不陌生,甚至于一个普通的朝九晚五的上班族,他的每日生活工作也都与软件有着密不可分的关系.然而,程序又是如何从一行行指尖留下的代码,机器存储的数据变成快捷高效的软件的 ...

  5. 阅读<构建之法>第13、14、15、16、17章 与 《一个程序员的生命周期》读后感

    第十三章   软件测试 这一章介绍了很多关于测试的方法,比如说单元测试,代码覆盖率测试,构建验证测试,验收测试等,我有一个很纠结的问题,如果我开发软件,是把这么多测试全做完,还是挑一些测试来进行呢?如 ...

  6. 阅读<构建之法>10、11、12章

    第十章: 典型用户和场景对后面工作有什么帮助吗? 第十一章: 每日构建的目的是什么呢?有没有具体说明? 第十二章: 产品定位人群是否也局限了产品的可拓展性?

  7. 阅读<构建之法>第三10、11、12章

    第10章:典型用户和场景 阅读了第10章之后,我知道典型用户很重要,典型用户是某类群体的代表,他们的观点能够反映一类人的观点与对产品的要求,那么要怎么样才能够从一类群体里,选择正确的典型用户反映我们研 ...

  8. 阅读<构建之法>13、14、15、16、17章

    13章 这么多测试为什么不能整理出一个包括所有功能的测试呢?看着那么多测试都感觉奇怪了. 14章 怎样才能体现一个测试人员的工作价值呢?这样的判断又是否会太独断了? 15章 在时间上,会不会因不同功能 ...

  9. 阅读<构建之法>第10、11、12章

    第10章 典型用户和场景 10.2 规格说明书 10.3 功能驱动的设计 问题:怎样写好spec?功能驱动设计的功能设计阶段怎样实现一个具体的功能? 第11章 软件设计与实现 11.2开发阶段的日常管 ...

随机推荐

  1. git提交代码速度过慢解决方法(macos)

    iterm2中ping下github.com和github.global.ssl.fastly.net $ ping github.com 得到以下 PING github.com (192.30.2 ...

  2. (数据科学学习手札49)Scala中的模式匹配

    一.简介 Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala中模式匹配的一些基本实例进行介绍: 二.Scala中的模式匹配 2.1 基本格式 Scala中模式匹 ...

  3. <c:out />的理解

    <c:out value="<string>" default="<string>" escapeXml="<tr ...

  4. IDEA常见错误解决

    tomcat控制台乱码 在tomcat的edit configurations里加入参数:-Dfile.encoding=UTF-8   导入的项目在重写时报 @Override is not all ...

  5. 20155207王雪纯 2006-2007-2 《Java程序设计》第1 周学习总结

    20155207王雪纯 2006-2007-2 <Java程序设计>第1 周学习总结 教材学习内容总结 第一周重点学习第一章和第二章. 第一章总的来讲,我认为可以称之为本书的绪论,介绍了包 ...

  6. SQL SERVER 无法正常连接的那些事

    1.确保sqlserver服务正常运行. >一般可以从两个地方控制服务,一是系统自带的服务管理器,最快捷的方式是运行“services.msc”,二是使用sqlserver自带的“SQL Ser ...

  7. Linux 下 的 Oracle,如何安装 tnsname

    运行 netca 即可:

  8. KDTable如何添加合计行?

    /** * 功能:添加合计行 * * @param table * 指定的KDTable * @param fields * 需要合计的列 */ public static void apendFoo ...

  9. 【SDOI2014】数表

    题面 题解 不管$a$的限制 我们要求的东西是:($\sigma(x)$是$x$的约数个数和) $ \sum_{i=1}^n\sum_{j=1}^m\sigma(gcd(i,j)) $ 设$f(x)= ...

  10. P3368 【模板】树状数组 2(区间增减,单点查询)

    P3368 [模板]树状数组 2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表 ...