阅读构建之法有感

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

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

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

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

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. python IO模式(多路复用和异步IO深入理解)

    1.事件渠道模型.事件渠道为异步IO的原型. 2.IO模式,一次IO调用会经历两个阶段.一.等待数据阶段,将数据从网络或者是磁盘读取到系统内核(kennel) 二.将数据从内核拷贝到进程中. 基于这两 ...

  2. 手搓一个兔子问题(分享一个C语言问题,持续更新...)

    大家好,我是小七夜,今天就不分享C语言的基础知识了,分享一个比较好玩的C语言经典例题:兔子问题 题目是这样的:说有一个穷苦人这天捉到了一只公兔子,为了能繁衍后代他又买了一只母兔子,后来兔子开始生小兔子 ...

  3. 解决$ go get google.golang.org/grpc上的包被墙的问题

    今天get grpc包的时候 $ go get google.golang.org/grpc 发现拉不下来被墙了,在github.com上搜索grpc,clone到工程目录中,运行命令 go inst ...

  4. 05-基础widgets

    05-基础widgets 介绍 Widget的功能是"描述一个UI元素的配置数据",Widget并不是表示最终绘制在设备屏幕上的显示元素,而只是显示元素的一个配置数据.Flutte ...

  5. 海面波浪模拟 MATLAB

    数学建模美赛集训的时候要用到一个海面模拟,分享一下海面模拟的MATLAB代码 先贴一下结果图: 下面是源代码~~~ function waterwave n = 64; % grid size g = ...

  6. IDL返回众数(数组中出现次数最多的值)

    对于整型数组,可以直接利用histogram函数可以实现,示例如下: IDL>array = [1, 1, 2 , 4, 1, 3, 3, 2, 4, 5, 3, 2, 2, 1, 2, 6, ...

  7. m2eclipse安装遇到的问题——备忘

    手贱把m2eclipse给卸载了,结果重新安装的时候,发现原来的网址不好用了,去官网查了发现改成了http://download.eclipse.org/technology/m2e/releases ...

  8. pycharm设置github

    1.打开file,选择settings,找到Version Contorl,打开找到GitHub ,HOST填github.com,用户名,密码,test,稍等一会,会提示成功 2. 设置好以后 打开 ...

  9. equals和==方法比较(三)--Long中LongCache源码分析

    下面我们来分析,上篇博客中遗留的问题,为什么下方的两个一个是true,两一个是false那? //true Long l1=123l; Long l2=123l; System.out.println ...

  10. activeX 开发

    转自 (http://www.cnblogs.com/chinadhf/archive/2010/09/03/1817336.html),并且在开发过程中遇到的问题进行了补充说明,让新手少走弯路 本文 ...