敏捷近些年被软件行业谈论的越来越多,也有很多公司和项目正在从传统的开发模型逐渐向敏捷来转型。我们先来对比一下敏捷和瀑布模型。
敏捷模型和瀑布模型的对比图
从上面的对比图上可以看出,瀑布模型是基于一个稳定的项目范围,来进行人员和时间进度的规划。属于计划驱动型。
敏捷模型是基于稳定的团队和时间,通过迭代不断的交付可工作的软件,利用评审,回顾等方式,不断地自我提高,自我改善,来实现最终产品交付。属于价值驱动型。敏捷是以价值作为导向的,用价值来作为交付的优先级,价值作为整个项目的最终目标,所以交付的软件是不断变化的,由价值来决定的。
在2001年的时候,软件行业环境其实已经出现了许多变化,对于项目和客户来说,在项目初期的项目分析,项目规划阶段,已经越来越难地一次性的输出所有需求和确定项目范围,并且在项目执行和实施阶段,出现了越来越多的变更,使得项目团队对变更需要投入更多的资源用在变更管理和风险管理上,但是效果并不是很好。由此使得一批业内的专家研究出了一些可以让软件开发团队具有快速工作,响应变化能力的价值观和原则。并且称自己为敏捷联盟。
敏捷联盟宣言:
个体和互动高于流程和工具
工作的软件高于详尽的文档
客户合作高于合同谈判
响应变化高于遵循计划
这个联盟有一个宣言,这里需要跟大家分享的是,宣言虽然听上去有些高大上,会让人产生距离感,但是却很实际,相信有些朋友的项目环境已经开始经历从传统瀑布模型向敏捷转型的过程,那大家应该明白,转型到敏捷,不仅仅是方法论的转变,最根本的是需要公司组织架构从上到下理念的转变,不然很难成功。所以这个宣言大家一定要好好理解,才会在实际项目中所有收货。
个体和互动高于流程和工具
这里强调的是团队的成员需要更积极主动地去做事情,并且需要更积极地增加团队的沟通协作。“高于流程和工具”,这里并不是指排斥流程和工具,因为流程和工具本身是成功经验的结晶和落地,可以帮助我们规范我们项目,提高工作的效率。但是相比于传统模型,敏捷里更加希望看到团队的主动性,减少单纯对流程和工具的依赖性。
工作的软件高于详尽的文档
这里说的“工作的软件”指的是项目中每次迭代交付出的产品必须是可以独立的,完整的可工作的软件。可能在项目的前期,交付出来的产品只具备很少的几项功能,但是必须要保证每次交付都是一个完全可工作的软件,可以供用户直接使用。“高于详尽的文档”,这里同样指的并不是排斥文档。文档作为项目,乃至公司的很重要的资产,对项目和公司都有很重要的意义,比如指导性,复用性等。所以在平衡项目环境的前提下,敏捷依然需要进行规范的文档管理。
客户合作高于合同谈判
敏捷强调引导客户加入到项目中来,尽量多的参与到项目本身,增加项目的沟通,从而提高项目的效率。并且价值驱动的主导很大一部分是由客户来决定的,项目的目标就是为客户提供可工作的,有价值的软件。“高于合同谈判”指的是跟客户的交互不应该仅仅停滞与合同谈判,或者是出现问题的时候。而敏捷提倡的是让客户从始至终的尽量多的参与到项目和团队中。
响应变化高于遵循计划
在敏捷中,项目应该从始至终地拥抱变更,因为所有变更的初衷都是为了更好的做出有价值的产品。“高于遵循计划”指的是当发生变更的时候我们需要做的是对变更做出快速的响应,这一点跟传统的瀑布模型是有本质上的区别。
给大家分享一个云平台,可以在里面的项目管理模块体验一下敏捷的元素和流程。