(工程中心 董伟锋)
1.敏捷概述
敏捷开发模式是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。
本次参加MPD北京工作坊我主要关注的是敏捷研发的管理模式,下面就把我看到的内容和展开的思考分享给大家。
当前,互联网公司都在采用敏捷研发模式,不管是巨头BAT,还是众多的创业型互联网公司,就连传统瀑布模式的领导者微软公司也在其很多产品上推行敏捷研发模式,因为只有敏捷研发管理模式才能适应快速回应客户反馈的需要。
对于传统的软件企业来说,很多也都在采用敏捷模式,海颐软件从十年前就开始推行敏捷开发模式,并成功地以敏捷SCRUM与CMMI相结合通过了CMMI5级的评估。
但是,我们也必须承认我们的敏捷研发是不完整的,我们基本只是在编码阶段才开始贯彻敏捷,采取双周Sprint冲刺迭代,在项目的其它阶段我们的敏捷做得并不好。
2.敏捷模式下的需求调研&分析
当前,我们在南网营销项目上交付能力难以满足客户的要求。表面来看目前存在的最大问题是开发质量和开发产出的问题,做不到及时响应客户需求。深层次来看,也是因为需求调研和分析与开发脱节,从而导致我们的敏捷开发模式并不敏捷。
2.1.那么目前模式下需求设计存在的主要问题是什么呢?
需求过于简单、粗糙
设计的时间太有限了
无法做全局性的思考
过于简单的文档,增加沟通成本,造成误会
无法追求完美的设计
老是变化,老是改
如何才能做出更轻更快的需求调研和分析呢?
定期组织基层使用单位的现场调研
简化文档,增加沟通
使用线上渠道,内置反馈,QQ,微信,论坛
电话、视频会议沟通访谈
定期召开用户及设计开发人员的座谈会
分析使用用户的反馈结果,当周收集的反馈增加到下周的开发计划中,根据用户反馈的需求紧急程度和重要程度择优先开发的项目
3.敏捷价值观及选型
为什么要用敏捷?
缩短获得反馈的周期
提高交付给用户的频率
与过去动辄几个月甚至一年的项目周期相比,当今社会客户对开发交付的时间要求大幅缩短,今年南网营销系统的创新需求经常被客户要求在1个月甚至半个月内完成交付。
组织架构:软件企业常见的组织架构有职能式、矩阵式、项目式,对于PM的职权也是递增的(职能式<矩阵式<项目式),对于我们南方能源事业部来说,目前项目组织的方式似乎也不是很明显。当然组织架构是服务于项目的,不同时期的项目就可以采用不同的组织架构。比如南网营销项目2014年开发的时候就是采用项目式组织架构,有些项目在特定阶段是采用矩阵式组织架构,目前进入运维期,主要是采用职能式组织架构。
敏捷选型:不同的项目类型,可以采用不同的敏捷方式,敏捷并没有固定的流程模式,兼顾大项目的风险控制,及日常运维的支持,在可以接受的风险下,最大程度的降低流程的制约,以便快速响应。甚至可以双线运作,大项目开发和运维迭代互不干扰。
大项目:对于大项目来说,总体执行和管控上接近瀑布模型,但是具体执行上往往分为多个迭代,渐进明细。比如南网营销系统2014年开发时期就是采用大项目模式。
运维迭代:对于目前南网营销系统来说,已经进入运维期,但是不断的有零零散散的需求进来,根据需求定期组织迭代计划会集中规划研发、测试、运维资源,以固定的节奏运作。
4.敏捷团队的特征
打造扁平化的组织架构,简化组织层级,提高沟通和反馈的效率,降低沟通和管理成本,加强开发和运维之间的沟通。
新的绩效考核方式,需要改变目前的绩效考核方式,缩短评估周期,根据员工所在的敏捷团队做出的成果进行评估。
团队拆分,对于过大的团队,需要根据业务线条或者模块进行拆分。
增加宣传和培训,让员工体会到工作的成果和乐趣,体会到工作的价值,而不是整天枯燥无味的编码。定期进行沟通、讨论、分享,打造敏捷文化。
注重沟通效率,让相关的人尽量坐在一起,能当面沟通的尽量当面沟通,少开会,少发邮件,工位沟通后直接开干。
团建活动,要注重团队建设活动,利用团队激励的费用和团建费用定期组织团队建设活动;注重仪式,对于一些重要里程碑和成果,要做好宣传,让团队成员体会到自己的成果。
重激励轻处罚,需要注重团队激励,根据项目成果定期对团队和成员进行激励;对于项目中出现的事故,也要进行相应的通报和处罚,通报和处罚不是目的,是为了改进工作过程,提高工作质量。