如何向敏捷开发团队转型
转向敏捷开发的理由大同小异:不断后延的发布日期,不断扩大的项目范围,占领市场的有利时机...但是如何向敏捷的开发团队转型,方法却大不相同。
敏捷转型的第一步
对于一些企业,提供敏捷训练是转型的第一步,例如Vignette公司。这是一家位于得克萨斯州的Web内容管理公司。Vishal Sheth是该公司的内部敏捷教练。据他介绍,公司首先在管理人员中展开敏捷训练。除了内部教练以外,公司还向咨询公司Valtech邀请外部教练帮助训练和管理团队。这种自上而下的方式为其他团队成员转向敏捷带来推动力。很显然,一旦管理层接受了敏捷方法,其转型面临的障碍将减少很多。
接着,Vignette公司的下一步是准实时(just-in-time)训练。首先,当团队准备开始一个新项目时,由资讯公司Valtech组织一个为期两天的Scrum训练会议,训练内容包括理论和实践、发布计划和sprint计划。Vignette公司则派出Sheth参加Scrum教练会议,由他对公司其他团队成员进行训练。
担任Vignette公司外部教练的Subramanian认为,在团队正式开始敏捷开发前,训练确实非常重要;能有一位称职的敏捷教练普及敏捷开发理论,带领团队开始早期的sprint和release训练同样大有裨益。
Intuit公司Basab Dattaray表示,他的团队同样聘请外部Scrum教练。他认为,训练本身是不够的,必须与实践相结合,训练才会真正对团队的敏捷转型有所帮助。
同样聘请外部教练进行敏捷训练的还有AMS公司。所不同的是,AMS公司首先成立了一个敏捷指导委员会,按照整个软件开发生命周期的不同阶段抽取负责不同任务的角色代表,作为委员会成员。先对委员会进行Scrum教练的训练,并由他们制定出让整个团队接受Scrum方法的计划。
何时开始敏捷转型?
当然,并非每个团队都会采用正式训练作为转型的开始。Ajira公司的Kannan就通过工作中的训练来培训员工。Kannan曾在以前的工作中应用极限编程实践,因此他训练自己的开发团队混合使用XP和Scrum实践来满足实际需要。加入团队的新员工,更多地是在工作中潜移默化地接受训练。Kannan认为,对于无力负担那种坐在教室里进行正规培训的团队,这是目前发现的最好方法。
那么,在开发生命周期的哪个阶段转向敏捷开发实践更加适合呢?例如Vignette,就是在每个开发团队开始一个新项目时转向采用敏捷方法。这个转型的过程持续了大约一年时间。
相反地,AMS恰好从开发周期的中间开始它的全面转型。AMS的Kinsman回忆道,“这是一个艰难的过程,但是大多数人很快掌握了方法。我们制定了一份3个月的sprint计划,但是当开发接近尾声时,我们才发现还是有小部分人没有适应Scrum方法,产品发布工作阻塞在质量保证这里。于是,整个开发团队都投入到帮助进行回归测试的工作中。这段小插曲反而真正擦亮了开发人员的眼睛。经过初次的尝试,AMS的开发团队在此后的开发中完全地转向敏捷开发方法。”
如何建立敏捷团队?
转型过程中,需要确定的还包括开发团队的规模和构成。Intuit公司的开发团队是跨部门的,其中包括远程开发成员。整个团队使用ScrumWorks,Portland公司的一个敏捷项目管理工具。根据Dattaray的的介绍,开发团队从6周的sprint计划开始,逐步缩减为4周,最终达到2周一个sprint计划。Dattaray认为,市场变化风云莫测,对于软件开发最重要的便是迅速跟上变化,尽快发布产品,这就需要各相关部门在一开始就都加入进来。以Dattaray的团队为例,去年他们共交付6个不同产品,其中规模最小的产品由2个开发人员在两周内完成;规模最大的产品则由一个15人的项目组用了一年时间完成。
AMS同样建立的是跨部门开发团队。在此之前,AMS整个开发团队的状态是相当分散的。AMS首先将开发团队分为4个Scrum组,平均每组由8位成员组成。Scrum组的目标是在每个sprint周期结束,按时交付功能齐全的软件产品。由于此前,开发人员习惯了各自独立展开工作,这一变化对他们来说是巨大的考验。而最大的挑战就是让每个成员学会将用例分解成更小单元。Kinsman表示,AMS一直在为准时交付实际可用的产品价值而努力。
对于Vignette公司,最大的挑战则来自于分布式的开发团队。一般来说,团队成员在一起工作会更加高效。但是对于某些企业,必须面对开发人员分布各地的现状。例如,开发团队并不总是需要配备专人负责性能分析或者用户体验,不同团队可以共享一个负责此项工作的成员。这样,为了这些“共享成员”能够随时掌握团队动向并融入其中,Vignette的开发团队使用了信息共享工具,如Wiki。Subramanian的经验是,如果身处一个分布式的大开发团队,我们就必须适应它的工作方式。不同的产品需要不同规模的开发队伍。具体地,团队如何组织和协作,就由他们自己来决定。
自我管理增强主动性
在Vignette公司,向敏捷转型的最初目标还包括加强团队成员的主人翁意识。公司也一直在跟踪调查开发部门员工在转型过程中的感受到底如何?Sheth认为,自从转向敏捷开发方法,各开发团队之间一直在共享如何更好工作的经验和收获,并逐渐成为首选的方法。