十二个原则
我们的最高目标是,通过<b>尽早和持续地交付有价值的软件</b>来满足客户
持续尽早向客户交付软件
<b>欢迎</b>对需求提出<b>变更</b>——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势
拥抱变化
要<b>不断交付可用的软件</b>,周期从几周到几个月不等,且越短越好
频繁的发布可用软件
项目过程中,业务人员与开发人员必须<b>在一起</b>工作
客户和开发一起
要善于<b>激励</b>项目人员,给他们以所需要的环境和<b>支持</b>,并<b>相信</b>他们能够完成任务
以人为本
无论是团队内还是团队间,最有效的沟通方法是<b>面对面的交谈</b>
<b>可用的软件</b>是衡量进度的主要指标
衡量开发过程的手段是可用的软件
敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持<b>恒久稳定</b>的进展速度
稳定的开发速度
对技术的<b>精益求精</b>以及对设计的<b>不断完善</b>将提升敏捷性
敏捷高效的设计
要做到<b>简洁</b>,即尽最大可能减少不必要的工作。这是一门艺术
简单有效
最佳的架构、需求和设计出自于<b>自组织</b>的团队
重视teamwork
团队要<b>定期反省</b>如何能够做到更有效,并相应地<b>调整团队的行为</b>
积极调整
项目开发生命周期
预测型生命周期
定义:完全计划驱动的生命周期,在项目前期确定项目范围及交付时间和成本,瀑布模型
适用场景:
充分了解拟交付产品
有厚实的行业实践基础
整批一次性交付产品有利于相关方
增量型生命周期
定义:将产品分成多个模块,每次交付其中的一个模块
适用场景:
管理日常风险
应对小的需求变更,难以处理影响到架构的变更
混合型生命周期
定义:预测型+适应型<br>
适用场景:
传统到敏捷转型过度期
使用每种生命周期的优点