软工网络15个人阅读作业2(201521123007谭燕)

提出问题

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

  • 在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文
  • 列出一些事例或资料,支持你的提问。
  • 说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?
    一个模板可以是这样:

我看了这一段文字 (引用文字),有这个问题(提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。

或者这样:

我反对作者的观点(提出作者的观点,自己的观点,以及理由)。

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

提示:编程经验不多的同学,建议看16章 “创新”, 提出自己的问题。


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

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

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

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

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

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

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

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

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

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

  充分授权后,每个人都是按照自己的时间完成任务,那么假如一个人的任务是要在另一个人的任务完成后才能开始,且如果按照那个人自己的时间,这个任务会比较迟完成,这时该怎么办呢?另外充分授权之后,好像无需领导的存在,因为团队中每个人都有自己的角色,完成自己的任务且完全相信其他人能很好的完成任务,这时领导就是开会?

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

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

  这段话的小标题叫做“迷思之二:大家都喜欢创新”,可是看完全篇,都是在说大家都不喜欢创新,如果都不喜欢创新,那为什么还有那么多人在坚持着创新呢?

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

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

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

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

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

转载于:https://www.cnblogs.com/ty1213/p/8593017.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值