1. 敏捷是“一个”过程
?敏捷不是一个过程,是一类过程的统称,它们有一个共性,就是符合敏捷价值观,遵循敏捷的原则。
?敏捷的价值观如下:
?个体和交互 胜过 过程和工具
?可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
?响应变化 胜过 遵循计划
?由价值观引出的12条敏捷原则:
?我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
?即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
?经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。
?在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
?围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。
?在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。
?工作的软件是首要的进度度量标准。
?敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
?不断地关注优秀的技能和好的设计会增强敏捷能力。
?简单——使未完成的工作最大化的艺术——是根本的。
?最好的构架、需求和设计出自于自组织的团队。
?每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。
?建立敏捷联盟的17位大师所创立的敏捷方法包括:极限编程,Scrum,特征驱动开发,动态系统开发方法,自适应软件开发,水晶方法,实用编程方法。这些方法统称为敏捷方法。
?其实每个人都可以从敏捷宣言和原则出发,明确问题,找出一些解决方法,形成自己的过程。我觉得国内的软件环境这么复杂,程序员的自主精神又这么强,敏捷方法应该是在中国首先提出才对,只是国人都有唯标准唯规范至上的心理定式,即使找出好办法,也觉得不规范,没有深入形成理论,无法提升高度,始终是跟着鬼子屁股后面走,我想这也是国外软件行业不成熟的表现之一吧。
?2. 敏捷仅仅是一个软件过程
?如果仅仅从软件过程的角度去认识敏捷实施敏捷,效果不会太好。敏捷相对以前的软件工程最大的革新之处在于把人的作用提高到了过程至上,正如敏捷宣言的第一条“个体和交互胜过过程和工具”所说的。
?涉及到人的问题,就已经不再是过程所能覆盖的了,就到了企业管理的层面上了,包括企业的价值观和文化。这也是敏捷在国内实施的最大障碍:
?把客户当作合作伙伴而不是对手,从客户角度出发去想问题,充分的跟客户沟通,而不是出了问题推诿责任。目标是让软件实现客户的价值,而不是收钱就完事儿。
?把人的能动性调动起来,给动力而不是给压力。
?要实用而不是要规范。让开发人员理解并实施,体验到敏捷的好处,而不是盲目机械地实施规范。
?没有绝对的权威,每个人都有可取之处。