准时聚到每天上午九点十五就地召开的站立晨会,华润通营促销项目敏捷开发团队成员便开始了新一天的工作,周遭其他的兄弟开发团队亦如此,不过时段稍有先后。
在每日站会中,团队每位成员会向全员简要通报前一天的工作、当天的计划、遇到的项目阻碍……从而彼此跟进团队的整体进展,暴露风险,扫除障碍,这是敏捷开发中非常简单有效的一项实践,占时不多,受益不浅。
敏捷开发,已经成为倍受互联网业内推崇的研发方法体系,其中所蕴含的充分沟通、拥抱变化、价值优先、高频交付等基本原则,也被证明是一个互联网产品成功的关键要素。
华润通作为集团向“+互联网”和“互联网+”转型的关键项目,开发过程正是基于敏捷开发的方法体系,其核心是:定期的基于价值优先的需求评审机制,有较固定工作日历的一至三周的冲刺迭代交付,以及在技术层面追求微服务化和功能模块间的解耦(注一)。
以价值优先这一基本原则为例,经常及时的需求评审使产品及研发人员对产品规划的近期需求有一致的认识;基于产品价值变化来调整开发优先级,可以及时响应产品、市场的变化需要;研发团队的工作容量有限,选择价值最大的事情(做对的事情),能够让研发团队更好地聚焦于带来最大价值的需求。
而以高频交付为主的冲刺迭代,则是通过固定工作日历和周期,约定基本工作规则和要求,形成有效团队协同工作的节奏,从而将项目的长期产品目标按价值拆解为一至三周相对可控的短期目标并实施交付,缩短最小化可行产品(MVP,注二)的上线周期;通过尽早交付的内容获取用户实际反馈,以收集市场反响,及时调整产品方向。
微服务化是互联网应用实践敏捷开发成功的必要条件。使用微服务式架构,方便多团队按服务解耦交付。同时按服务独立部署,部署过程更为灵活,可用性更高,且方便配置适合服务资源需求的硬件。
敏捷开发方式在华润通10月28日试运行的交付中发挥了关键作用,正如合作方IBM的项目总监侯学明先生感叹的,正是由于华润通运用了敏捷开发方法,才能够以比IBM的其他类似客户更短的时间,完成一个看似不可能的任务。
注一:
解耦:就是将程序积木化。各个积木块都是独立的,只要它们之间的接口(形状)匹配,就可以灵活地拆分、替换、组合。解耦是一种降低各模块的依赖,提高重用的理想状态。
注二:
MVP:开发产品时先做出一个简单的原型——最小化可行产品(Minimum Viable Product),然后通过测试并收集用户的反馈,快速迭代,不断修正产品,最终适应市场的需求。