软工网络15我的阅读做业2(201521123007谭燕)

提出问题

快速通读教材《构建之法》,并参照提问模板,提出5个问题。
如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互联网时代如何提问题。 还有这些要点:html

  • 在每一个问题后面,请说明哪一章节的什么内容引发了你的提问,提供一些上下文
  • 列出一些事例或资料,支持你的提问。
  • 说说你提问题的缘由,你说由于本身的假设和书中的不一样而提问,仍是不懂书中的术语,仍是对推理过程有疑问,仍是书中的描述和你的经验(直接经验或间接经验)矛盾?
    一个模板能够是这样:

我看了这一段文字 (引用文字),有这个问题(提出问题)。 我查了资料,有这些说法(引用说法),根据个人实践,我获得这些经验(描述本身的经验)。 可是我仍是不太懂,个人困惑是(说明困惑)。程序员

或者这样:编程

我反对做者的观点(提出做者的观点,本身的观点,以及理由)。架构

大学生应该能写出本身的思考, 而不是摘抄书本内容。学习

提示:编程经验很少的同窗,建议看16章 “创新”, 提出本身的问题。测试


读《构建之法》的的问题:

Q1:在《第3章 软件工程师的成长》中第P49页提到:

初级软件工程师如何成长呢?我认为有下面集中成长。
3.对通用的软件设计思想和软件工程思想的理解。
这一方面就比较虚,什么是好的软件设计思想?什么是好的软件工程思想?一个工程师开了博客,转发了不少别人的文章,这算有思想吗?另外一个工程师坚持作任何设计都要画UML图,这算有思想吗?架构设计

可是没有说明做者认为的好的软件设计思想和软件工程思想究竟是什么。我网上百度了一下,有人提到:
IBM 提出了软件开发思想的4项要点——迭代开发、以系统架构为中心、持续的质量保证以及管理变动和资产。设计

  这四项要点稍微理解一下就是说,迭代开发,开发工做能够在需求被完整地肯定以前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发工做。再经过客户的反馈来细化需求,并开始新一轮的迭代。优势是能够下降风险,获得早期用户反馈,持续的测试和集成,使用变动,提升复用性。以架构设计为中心,体现设计为重的思想。持续集成、持续构建、全程测试,有效的持续改进过程,验证和确认缺一不可,质量保证和测试融为一体。围绕项目管理开展工做,包括风险预防、里程碑控制和关键路径法等。
  书中提到的还有两个反问,我认为第一个问题的答案是一个工程师开博客却只是转发别人的文章,这样的工程师没有本身的思想,他只是别人思想的传播者。第二个问题我认为这个工程师作任何设计都画UML图,是一个有思想的人。code

Q2:在《第4章 两人合做》中P85页提到:

在结对编程中,由于有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。这样,程序中的错误就会少得多,程序的初始质量会高不少,这样会省下不少之后修改、测试的时间。htm

  我认为,上面提到的结对编程的好处是创建在结对编程的双方水平相差不大的基础上。若是结对双方的水平相差太大,则编程工做会极大地推向能力高的那位,另外一位可能不只跟不上他的编程进度,可能还没法完成复审的工做,这样结对编程将毫无心义。有时候工做中结对编程对象没法更改且一方水平实在有限,这时候该怎么办呢?在学习过程当中也可能出现这样的状况,老师让学生结对编程,关系好的两个同窗结对了,一个能力很强而另外一个不好,水平高的那个同窗不忍放弃水平差的同窗,这时候要怎么办呢?

Q3:在《第7章 实战中的软件工程》中P136页提到:

在一个高效的团队中,全部成员都应该能获得充分的受权,他们有权在职权范围内按照本身的承诺完成任务,同时,他们也充分信任其余同事能实现各自的承诺。

  充分受权后,每一个人都是按照本身的时间完成任务,那么假如一我的的任务是要在另外一我的的任务完成后才能开始,且若是按照那我的本身的时间,这个任务会比较迟完成,这时该怎么办呢?另外充分受权以后,好像无需领导的存在,由于团队中每一个人都有本身的角色,完成本身的任务且彻底相信其余人能很好的完成任务,这时领导就是开会?

Q4:在《第16章 IT行业的创新》中P347页提到:

不但大众不喜欢创新,甚至连创新者本身都不例外,有些创新者甚至恨创新。

  这段话的小标题叫作“迷思之二:你们都喜欢创新”,但是看彻底篇,都是在说你们都不喜欢创新,若是都不喜欢创新,那为何还有那么多人在坚持着创新呢?

肩负鼓励创新责任的科学期刊审稿人都未必真的鼓励创新。

  人们讨厌颠覆式创新,但是却能接受创建在前人基础上的“线性扩展”,若是是这样咱们只能被迫选择“创新”?或者不创新?

Q5:在《第15章 稳定和发布阶段》中P329页提到:

全部软件公司都但愿在修正全部的缺陷以后才发布软件。可是,第一,什么叫“缺陷”?若是只是一些无关大局的问题,用户能够绕过去的,咱们非得立刻解决么?第二,什么叫“改正”?若是修正方案中又有“缺陷”怎么办?作商用软件的人都在为此苦恼,只有优秀的软件公司能找到一个平衡点,及时发布可以解决用户问题的软件,而且能及时修改软件中的问题——注意,这两个“及时”并不必定是同一时间。

  若是在正式发布以前发现很严重的缺陷,还要按计划发布软件吗?文中又举了苹果公司的一个例子说明就算世界著名公司发布的软件都不是最完美的,但仍是发布了软件,是说就算有缺陷仍是要发布软件吗?发布过程当中会刻意避免缺陷吗,就算这个缺陷关系了用户需求?

相关文章
相关标签/搜索