软件工程:提问回顾
提问回顾
提问链接
http://www.cnblogs.com/wzjb/p/7596315.html
解答
1.结对编程一开始必然有一个磨合熟悉的过程,在这个过程中可能有人会不习惯时刻在对方视线下工作的情况,也可能两个人水平有差距,会出现一个人一直在听另一个人的意见的情况,我想问如何能让这种磨合过程的时间尽量缩短呢,有没有什么可行的策略?
没有捷径,在我的结对编程体验中,主要还是在于双方多交流,多了解对方的想法,而不是分工完成后就闷头做,才能使得结对编程的过程和结果变得令人满意。
2.可否理解为敏捷流程的开发在很多情况下会和其他开发方式相结合以达到提高产品可靠性的要求?如果是,那么敏捷开发和那种流程结合的最多也最好呢?
当然可以这么理解,软件工程没有标准答案,也没有完美解答,一切基于实践,至于敏捷开发可以和那些开发方式结合,由于本人经历有限,因此暂时无法解答。
3.十一章提到了小强地狱,在开发人员的bug达到一个限定值时,可以采用限制其工作,将所有时间用于解决BUG到限定值以下,这样的方法会不会挫败该开发人员的积极性,导致其在后续的开发过程中无法跟上进度,陷入恶性循环?
这其实是一个两害相权取其轻的过程,如果放任这个开发人员继续写充斥着BUG的代码,必然会导致项目出现大问题,相对的该开发人员限制解决BUG的方式也许会影响他的心态,但是对于项目的结局造成的影响较小。
4.在一个创新产品的设计开发过程中,如何定义用户需求是很困难的事情,很多情况下只能由团队成员臆想得到,因为这样一个产品本身也是没有原型的,在这种情况下,似乎只有调查问卷才能给出部分答案,但以我自己的经历来说,我基本都不会认真看这样的调查问卷,那我想问是否有更可行的收集用户需求的方式?
在产品未形成的时候,基本只有这一种方法吧,或是类似的方法。
5.MVP方法开发出来的软件是不是就是相当于每一个周期都在不断地打补丁,没有系统化的设计实现,是否会导致软件的臃肿化,可维护性变差?
大多数情况下是的,当然这也取决于软件初始的设计情况。
在项目中学到的知识点
- 需求:学到了NABCD需求分析模型。
- 设计:设计阶段需要确定各种需求功能的优先级,保证投入的资源得到最大的回报。
- 实现:了解并体验了敏捷开发流程,同时学习了新技术。
- 测试:了解了单元测试,代码覆盖率测试,兼容性测试等内容。
- 发布:产品发布不意味着结束,需要实时接收用户反馈以发现软件未稳定时存在的问题。
- 维护:及时修复BUG,将产品带入稳定期。