总结
这个作业属于哪个课程 | <课程的链接> |
这个作业要求在哪里 | <作业要求的链接> |
团队名称 | <软件梦之队> |
这个作业的目标 | <对本次课程进行总结> |
一、第一次个人作业
姓名:杨梦欣
学号:201731062304
作业链接:https://www.cnblogs.com/3451ymx/p/10541519.html
二、解答问题
- 问题一:
代码复审 4.4
文中提到代码复审有三种形式:自我复审、同伴复审和团队复审。
我的疑问:最好是有经验、熟悉代码的人来复审,而代码作者一定是最熟悉自己代码的,但他自己复审,会有思维的局限性;如果同伴复审,就不存在思维的局限性,那么是选择一个同伴复审,还是两个同伴复审,甚至更多呢?如果是团队复审,最大的局限是效率不高。那么三种方式该如何抉择?
答:经过个人项目、结对编程和团队项目的实践,本人认为主要根据项目的大小来选择代码复审的形式。像个人项目就是自我复审;结对编程就是同伴复审;而团队项目,一般来说,同伴复审就足够了,若是项目比较大,又是特别核心的部分建议团队复审。
- 问题二:
结对编程 4.52
书中举有例子:越野赛车和驾驶飞机,两者共同特点是在高速度中完成任务,任务有较高的技术要求,任务失败的代价很高。
我的疑问是,开发程序时,什么样的情况是类似于文中举的例子,需要进行结对编程?是否有公司实行过结对编程?效果如何?对于合作的两人,是两人水平相当,还是一高一低?有什么特别的具体的要求吗?合作两人的适应期一般是多长时间呢?
答:看了书本,我想应该是时间紧张的情况下需要结对编程。确实有公司进行过结对编程,如Microsoft(Bill Gates, Paul Allen),Apple(Steve Jobs, Steve Wozniak),Yahoo(Jerry Yang, David Filo),Google(Sergei Brin, Lawrence Page),效果都不错。对于两人的水平没有什么要求。他们的适应期需要经历四个阶段:萌芽——磨合——规范——创造。最重要的是如何磨合:向同伴提供容易接受的反馈意见时,采用三明治法。
- 问题三:
与顾客合作 7.2.9
文中提到MSF强调产品团队与顾客的交流合作,因为“我觉得”和“用户觉得”是两码事。
我的疑问:那么遇到哪种类型的问题需要与顾客交流?大概多久进行一次呢?若是交流时遇到“对牛弹琴”的情况该如何处理、如何交流?
答:本人认为遇到业务领域的问题,需要与顾客多次且深度交流。交流频率主要视实际情况而定。若交流有障碍,可以进行一些调查方法:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写等,再设计出原型图与顾客沟通交流。
- 问题四:
目标、估计和决心 8.6.1
文中提到如果我们混淆了目标估计和决心,那就会犯错。其中软件时间的估计是多个估计值的乘除法(估计的需求、估计的复杂度等等)。
我的疑问:那么,究竟每一项估计该怎么估计才比较准确呢?
答:上课时老师有提到项目做多了,自然而然就估计误差就越小。每一项的估计还是得看经验吧。
参考文章:https://blog.csdn.net/qiansg123/article/details/80130444
- 问题五:
PM做开发测试外的所有事情 9.3
文中提到微软公司有好几类PM,以及一名优秀的PM应有的能力。
我的疑问:无论是哪一类PM,是都必须要拥有文中所列举的那些能力吗?还是说负责内容不同,有不一样的要求?
答:书本中提到三类PM,分别是:Product Manager(产品经理),Project Manager(项目经理),Program Manager(微软的职位名称)。成为 一个合格的PM必须要拥有以下能力观察、理解和快速学习能力;分析管理能力;一定的专业能力。因此对于负责内容不同的PM,他们需必备的专业能力是不同的。
三、总结
经过本次课程的学习及项目实践,了解了软件工程的原理,确确实实体验了一次软件开发。最大的收获不是在课堂上学习的,也不是最终答辩所展现的,而在于整个软件开发过程所经历的,学习到的知识。