1.Scrum与传统瀑布式开发的区别:
瀑布式开发:先花几个月进行plan,然后几个月进行bulid,然后几个月进行test等等,重点是如果需求遇到改变,就需要从头开始进行一个全新的工程,因为在瀑布式开发中必须在项目实施前完全的进行项目规划,可能并没有完全理解这个项目,但已经完成这个项目了。
Scrum:将产品进行一个细分成不同的小pieces(互相独立运行也可互相联系),然后围绕最小的可能性的特征进行产品规划,然后开发出最小的产品特性的产品,然后一直循环增加特性(sprints/several increments called sprints),直到整个产品完全开发完成。三种角色:product owner(确定产品特性和产品亮点) scrum master(整个团队的负责人)scrum team(测试,开发,文案)
Scrum其实是采用了迭代的增量方法来优化可预测性和控制风险
Scrum开发的缺点:项目周期长,很难保证开发人员的不更换,但是scrum不注重文档的重要性,所以没有文档,进行人员交接很容易出现问题。
瀑布开发的缺点:各个阶段划分完全固定,产生大量文档/不能适应用户需求变化/开发模型是线性的,只有末期才能让用户看到成果。
2.敏捷开发的特点:
个体和交互胜过过程和工具
可以工作的软件胜过文档
客户合作胜过合同谈判
响应变化胜过遵循计划
3.敏捷开发的适用范围:
项目团队人数不能多/敏捷人员注重沟通大过文档,所以人员不能有太大变动
项目经常发生变更
高风险的项目
开发人员可以参与决策
4.增量模型(incremental model)和快速原型模型的区别:
增量模型是先设计出一个增量构件,接着一个构件一个构件的增加,一个构件一个构件的提交给客户进行评估,每个增量都是建立在原来的基础上,增量模型是综合了瀑布模型的顺序特征和快速原型法的迭代特征。
快速原型模型(典型的iterative方法,一直不断重复进行改变修缮)是设计出一个原型,然后进行一个test,然后进行修改/增加(不一定是原来的基础上,根据项目性质决定),最终提交给用户一个完整的工程项目,而不是一部分一部分的提供。