[摘抄拼凑]系统架构师修炼之开发模式(模型)

典型的开发模型有:

1. 边做边改模型(Build-and-Fix Model);

2. 瀑布模型(Waterfall Model);

3. 快速原型模型(Rapid Prototype Model);

4. 增量模型(Incremental Model);

5.螺旋模型(Spiral Model);

6.演化模型(evolution model);

7.喷泉模型(fountain model);

8.智能模型(四代技术(4GL));

9.混合模型(hybrid model);

10.RAD模型;

11.敏捷开发模式(Scrum/Agile)


敏捷开发(Scrum/Agile)

1,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

2,相对于"非敏捷",更强调开发团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重做为软件开发中人的作用。

3,敏捷开发,作为CMM神话崩溃后被引入的一套新的软件开发模式,这几年来被广泛引起关注,并被寄予厚望。
敏捷开发宣言:个体和交互 胜过 过程和工具;可以工作的软件 胜过 面面俱到的文档;客户合作 胜过 合同谈判;响应变化 胜过 遵循计划。

虽然右项也有价值,但是我们认为左项具有更大的价值。
敏捷开发核心:团队合作、可工作的软件、快速响应变化。

4,敏捷开发的价值观包括了XP(Extreme Programming:极限编程)的四个价值观:沟通、简单、反馈、勇气,此外,还扩展了第五个价值观:谦逊。
敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力。除了原则和实践,模式也是很重要的,多研究模式及其应用可以使你更深层次的理解敏捷开发。

5,如果要实行一个很好的scrum,通常要满足两点:一、团队有三名或以上的研发工程师;二、团队内有一名合适的Scrum Master。

当团队内无法找到合适的Scrum Master时,不要轻易推行敏捷。

如果你的团队是由新人组成,或者即使有资深员工但是他并不了解或认同敏捷开发的话,那么你需要等待合适的Scrum Master出现。
当你真正实行敏捷开发时,要注意量化衡量团队的执行力的指标:完成度、评估准确度、计划合理度。这是评定整个进度的很重要的指标,也是让迭代更好的进行下去的准则。

6,敏捷开发适用性:从产品角度看,敏捷方法适用于需求萌动并且快速改变的情况,如系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合。

◆组织文化必须支持人员彼此信任,人少但是精干,开发人员所作决定得到认可,环境设施满足成员间快速沟通之需要。最重要的因素恐怕是项目的规模。规模增长,面对面的沟通就愈加困难,因此敏捷方法更适用于较小的队伍,20、40人或者更少。大规模的敏捷软件开发尚处于积极研究的阶段。

◆另外的问题是项目初期的大量设想或快速的需求收集可能导致项目走入误区,特别是客户对其自身需要毫无概念的情况下。与之类似,人之天性很容易造成某个人成为主导并将项目目标和设计引入错误方向的境况。开发者经常会把不恰当的方案授予客户,而直到最后出问题前都能获得客户认同。虽然理论上快速交互的过程可以限制这些错误的发生,但前提是有效的负反馈,否则错误会迅速膨胀。

7,敏捷开发基于的前提:

◆团队认可敏捷的价值,遵循敏捷提出的价值观和基本原则。如果没有这个前提,用所谓的敏捷开发无疑是纸上谈兵。

敏捷开发就是在一个高度协作的环境中,不断地使用反馈进行自我调整和完善。

态度决定一切,敏捷依赖人。

敏捷开发简单说就是用有效的办法去做有用的事情,过程的目的是让项目做得更好,不是为了过程而过程,不是用过程来“框死”项目,过程是为项目服务的。

敏捷过程:明确的项目目标;有利于实现项目目标的事情,一定要做;对项目目标没有帮助的事情,一律不做;有效和高效是最重要的项目管理原则;敏捷的过程是让人愉快、工作起来有战斗力的过程。

8,敏捷开发:。。。

[摘抄拼凑]系统架构师修炼之开发模式(模型)_第1张图片


瀑布模型(Waterfall Model)

[摘抄拼凑]系统架构师修炼之开发模式(模型)_第2张图片



你可能感兴趣的:([摘抄拼凑]系统架构师修炼之开发模式(模型))