这个作业的要求是:https://bbs.csdn.net/topics/608340750
问题1
【内容】书P102-105关于瀑布模式的部分
【问题】温斯顿提出在设计大型系统时,要做相邻步骤的回溯,解决上一阶段未能解决的问题;那为什么是相邻步骤?回溯的意义就是解决之前未能解决的问题,会不会也应该包括下一阶段工作时导致之前阶段出现的问题?
【经验】回溯主要是为了解决在之后过程发现之前过程出现的问题,是一种思想,不是一种固定的定义,可以比较灵活去理解。
【困惑】通过这样不停的修修补补会不会产生新的问题,且是否会降低工程实现的效率?
问题2
【内容】书P102-105关于瀑布模型的部分
【问题】瀑布模型和提到过的V模型有什么区别?
【经验】V模式开发流程将代码实现放在最后一步,即使客户需求发生变更也能很快做出修改,相比瀑布模型减少了回溯的成本和时间,提高了开发效率、降低了开发成本。
【困惑】那瀑布模型相比于V模型有什么优点?
问题3
【内容】P122-123关于敏捷团队的部分
【问题】书中介绍的敏捷特点的团队在真正公司/组织里实现的时候是什么样子的?
【经验】通常会有一个大方向,包括目标是什么以及如果判断研发流程的进度,而在各部分也会有专门的人员通过类似书中方法把握。
【困惑】如何更加灵活的,非教条主义地运用敏捷原则?
问题4
【内容】P146-148关于msf的部分
【问题】msf运用的主要场合和在项目中运用的情况如何?
【经验】MSF负责指导计划阶段的中期和后期、软件构造阶段、部署阶段前期和中期的任务。而软件项目生命周期的其余阶段,即部署阶段的后期、运营期、计划期的前期均是在微软运营框架负责。
【困惑】msf概括了项目所有可能出现的问题方面吗?msf是否将每个问题的责任归属划分清楚了?
问题5
【内容】P159-160关于软件产品的利益相关者的部分
【问题】不同用户之间的需求可能会产生冲突,这时应该如何权衡这些需求?
【经验】 可以通过以下4点抓住重点需求进行重点对待和处理
· 核心功能。
· 必做功能。
· 高风险功能。
· 独特功能
【困惑】对于那些非重点需求该如何灵活处理?
我试着回答问题1的困惑:我认为回溯是有可能降低效率的,因为不停回溯可能导致当时解决的问题反而在之后产生新的问题,或下一阶段的操作导致前阶段再次出现问题,从而反反复复,降低开发的效率。相关的例子:比如V模型通过把代码实现放在最后来降低回溯带来的效率降低的风险