敏捷现在是个很火的运动,IT技术媒体和软件企业都对它给予了高度的关注。
企业、组织、团队和个人都对敏捷有着不同的理解,同时也存在着各种各样的误解。企业组织来讲更关注的是Be Agile,而团队和个人更关注Do Agile。
什么是敏捷?
敏捷是多种轻量软件开发方法的集合;就软件工业来看,Lean 是思想理论,Scrum是项目管理方法,XP是软件开发的具体实践。
Lean :源于精益生产,有4个基本原则:
1> 降低流程和库存的工作量(减少详细需求和文档设计的投资;减少流程负担、兼容性检查、审计等;)
2> 降低周期时间(以更小的环节(块、故事、用例)构建所有的软件;给客户交付较小的和更频繁的发布(可实际工作的代码))
3> 交叉培训和基于单元的生产(利用结对编程和共享代码加强交叉培训;让开发者编写测试代码;使曾个团队趋向于测试和测试自动化;充分实际地配置所有团队成员)
4> 持续的改进流程(持续反映和调整;自组织、自管理软件开发团队)
使用4个基本生产方法降低生产周期和降低生产成本。
Scrum :一种轻量级敏捷项目管理方法,是依据经验进行软件开发过程控制的项目管理方法。也是唯一关注企业管理和组织方面的方法。
Scrum管理方法特点是简化了项目利益相关者的关系:客户或项目所有者PO,利益相关者与开发团队之间的协调者ScrumMaster,可以使用任何方法保质保量的完成开发任务的自我组织和自我管理的开发团队。
XP :极限编程为软件开发带来了好的具体实践,结对编程、TDD、自动化测试等。
Be Agile VS Do Agile:
Be Agile :可持续的改进现有企业组织行为的流程,提高工作效率,降低生产成本。
现今成功公司的CEO都具备敏捷的思想和理念,可以说是Be Agile的。
Do Agile: 实践敏捷方法,Scrum、XP 或其中一些好的实践方法。这当然不是为了敏捷而做敏捷。而是积累Scrum或XP其他敏捷方法的经验,适应敏捷方法带来的软件开发思想和工作方式的转变。
我了解过一些企业实施Scrum实践的经验,成功的都是自下而上的项目实践;失败的都是自上而下推行敏捷方法的项目实践。(infoq 有相关Scrum实施情况的调查)
Why?