关于敏捷开发的认知框架:特征、价值观与原则
什么是敏捷开发
敏捷开发(Agile Development)不是指某一种具体的方法论、过程或框架,而是一组价值观和原则,可以指导我们更加高效的开发。
敏捷开发的特征:
-迭代式开发
-增量交付
-开发团队和用户反馈推动产品开发
-持续集成
-开发团队自我管理
具体方式
上面说了敏捷是一种指导思想或开发方式,但是它没有明确告诉我们到底采用什么样的流程进行开发,而具体的开发方式有哪些呢?
Scrum,极限编程(XP),精益软件开发(Lean Software Development),动态系统开发方法(DSDM),特征驱动开发(Feature Driver Development),水晶开发(Crystal Clear)等等。
敏捷开发宣言
“我们通过身体力行和帮助他人来揭示更好的软件开发方式。经由这项工作,我们形成了如下价值观:
个体与交互 重于 过程和工具
可用的软件 重于 完备的文档
客户协作 重于 合同谈判
响应变化 重于 遵循计划
在每对比对中,后者并非全无价值,但我们更看重前者”
敏捷开发十二原则
在敏捷开发中,我们遵循以下准则:
-我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户;
-欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势;
-要不断交付可用的软件,周期从几周到几个月不等,且越短越好;
-项目过程中,业务人员与开发人员必须在一起工作;
-要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务;
-无论是团队内还是团队间,最有效的沟通方法是面对面的交谈;
-可用的软件是衡量进度的主要指标;
-敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度;
-对技术的精益求精以及对设计的不断完善将提升敏捷性;
-要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术;
-最佳的架构、需求和设计出自于自组织的团队;
-团队要定期反省如何能够做到更有效,并相应地调整团队的行为。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~