需求不断、问题不断、插入事件多、进度不可预期传统的软件开发模式下,交付团队总要被这样那样的问题困扰,导致项目不能按期完成;或者即便完成,也可能因为敢进度而欠下“技术债”,系统结构混乱,使后期维护成本增大。正因为一直面临这样一些问题,软件交付团队开始不断寻求更好的工作方式。而近年来,“敏捷开发”这种工作模式被慢慢的变多的团队所重视。
“敏捷”作为一种新的工作方式,与传统的工作方式有很大不同。正因如此,在初涉敏捷开发的团队当中,常会遭遇一个“水土不服”的阶段,此阶段有时还显得相当漫长。
在日前QCon北京2012的敏捷专场上,业界知名敏捷教练乔梁老师与大家伙儿一起来分享了一个敏捷团队的蜕变故事。
乔梁介绍说,他所带领的这个团队从3月份项目启动,直到11月份产品的第四次发布,期间经历了“敏捷101”、“产品化”、“服务化”三个阶段。其中,“敏捷101”阶段即为团队建立敏捷工作方式的前期阶段,这一阶段持续了17周。而在这个适应期后,团队的敏捷工作方式已完全步入正轨,项目交付周期也从3个月缩短到3周。
“你必然有这样一个阶段去练习一下”,谈到为何“敏捷101”需要如此长的周期,乔梁说,“通过这样的一个阶段,能够让所有人掌握敏捷团队是如何紧密合作的,以及它的合作流程,它所需要的基础设施是怎样的,比如持续集成,自动化测试,部署及环境管理等等”。
乔梁表示,对于尝试敏捷方法的小组成员来说,技术上的差距不是问题,因为能通过不断学习来得到提高,而小组成员是否有开放的心态,是否勇于学习,是勇于承担风险,才是至关重要的。并不是每个人刚开始都会接受敏捷开发这种方式,所以作为教练,需要针对真实的情况做不同的引导。
“对于市场来说,则是没有最快,只有更快。所以,持续交付是业务驱动的,希望可以通过一系列系统方法使交付不再成为业务发展的瓶颈。而且,任何一个交付过程都是能持续改善的”,乔梁说。
那么持续交付团队与传统开发团队究竟有何不同?其对成员的水平要求是怎样的?启动一个持续交付项目之前,项目团队需要做哪些准备?又该如何为项目需求拆分和排序估算?带着这样一些问题,51CTO独家采访了乔梁老师,请他进一步为我们阐述敏捷团队的成功秘密。
「持续集成(ContinuousIntegration)」、「持续交付(ContinuousDelivery)」和「持续部署(ContinuousDeployment)」提供了一个优秀的DevOps环境,对于整个团队来说,好处与挑战并行。无论如何,频繁部署、快速交付以及开发测试流程自动化都将成为未来软件工程的重要组成部分。