敏捷对我来说是认知升级

敏捷思想深刻地改变了我,对我的影响远远超过软件开发本身,升级了我在项目管理、团队管理甚至待人处事各方面的认知。

0
131

本文作者:肯尼兹刘

文章转自:敏捷对我来说是认知升级

2008年一个偶然的机会,我突然对“敏捷开发”产生了浓厚的兴趣,花了一个周末的时间啃完了“极限编程(XP,其中一种敏捷方法论)”提出者Kent Beck的著作《解析极限编程》(Extreme Programming Explained)200多页的文字(这也是我第一次把一本英文书全看完,可见是真爱!)。我被这本书里提出的理念和实践完全震撼到了。

当时从事软件开发已经有8个年头,我从来没有想过这件事情还可以这样玩!就是在那个时候,我刚刚完成一个让我备受打击的项目,非常沮丧。遇见敏捷开发简直是打了一剂强心针,让我恢复了对软件项目管理的信心。结合刚学到的新思想,复盘那个项目,发现在瀑布模式里的很多矛盾甚至是打不开的死结,通过极限编程都可以迎刃而解。比如我们一直要等需求全部明晰了才开始设计和开发,因为在瀑布模式下需求变更导致的返工成本高昂,但是在死线(Deadline)不变的情况下,花在需求上的时间越长,后面的设计、开发和测试的时间就会被压缩,这是一对矛盾。而在极限编程中,由于所有需求都被拆分成独立的用户故事并根据业务价值进行了优先级排序,可以对业务价值大而且需求已经明晰的用户故事立即进行开发和交付,同时对其他用户故事进行需求澄清。另外一个例子是编程完成后,到底是应该先测试还是先评审。先测试的话,评审后如果发现问题,修改后还要重新测试,手工测试每次执行都是劳心劳力的过程;先评审的话,评审的代码是没有经过测试的,这又是一个死结。通过极限编程的测试驱动开发(含自动化测试)和结对编程,完美地化解了这个矛盾,等等。

在随后一个新项目中我们实践了极限编程,比原计划提早了1/4的时间完成项目(不可思议!),并获得了客户的高度评价:

1、  持续的沟通以及整个交付过程的完全透明化,客户可以清楚地感知交付进程;

2、  客户的所有需求变更都得到及时的满足。

敏捷提出的很多理念,彻底颠覆了多年来在瀑布模式下形成的很多思维模式。它对我来说是一次改变三观的认知升级。

当然,敏捷并非银弹,多年的实践表明,敏捷转型本身就很不容易,即使实施了敏捷,每个项目依然困难重重,但它打开了另外一扇窗,在我们的思维武器库中增添了许多强有力的新武器。这也是为什么我在早期的敏捷培训中,标题取为《有没有另外一种方法开发软件呢?》,我不想Hard Sell敏捷,只是想告诉大家原来软件开发不是只有瀑布模型这样一条路。如果你的武器库里只有瀑布模型,那么面对各种问题或困境,你就只能在这个模型内找方法,这大大限制了你解决问题的能力。而且如果解决问题的方向错了,再努力也是白搭。瀑布模式追求的是确定性,然而,软件开发充满了不确定性,特别对于互联网产品,其用户和需求都是不确定的,敏捷就是在这样的背景下应运而生的。适应不确定性,提高响应能力,是敏捷的核心。与敏捷相通的精益思想、看板方法,则进一步丰富了我的武器库。

最近十年,敏捷与精益已不再仅仅是软件开发方法和生产管理方法,它们已经成为一种思想,甚至是新的企业生存方式,以适应越来越不确定的市场环境。这是一个VUCA(Volatility易变、Uncertainty不确定、Complexity复杂、Ambiguity模糊)的时代。快速反馈、去中心化、协作、集体决策、信息共享、灵活、透明、可视化等价值观正在成为共识。组织形式也在深刻变革,越来越多企业由原来的层级式过渡到扁平化,决策方式也由自上而下的层层转达变成各个自治小组在企业的框架和服务下实现“内部创业”,快速决策、自担风险。制衣行业的“韩都衣舍”就是一个典型的例子。从一个淘宝网货品牌起家,短短几年间,韩都衣舍的销售额从20万快速发展到15亿。它也曾经是一家传统形式的服装企业,采用金字塔控制型管理模式,决策需要层层批复,发展很快遇到了瓶颈。后来它发展出了“以产品小组为核心的单品全程运营体系”的模式。每个产品小组由1到3个人组成,3个人中有一个设计师,一个负责销售的导购,和一个负责供应链的裁缝。小组可以自行决定款式、价格、数量、打折、促销,甚至是内部分配等决策。公司提供公共资源与服务给各小组和考核每个小组核心指标,形成内部竞争,也是一种内部创业的模式。这种去中心化的网络状组织形式大大提升了决策速度,更适应当前快速变化和高度不确定的市场环境。这也是很多互联网企业的生存之道。传统金融业正在受到互联网金融的冲击,也许正是两个时代不同企业组织形式的对垒。

在产品设计理念上,也从过去在一开始追求完美的计划与设计过渡到以最小可用产品(Minimal Viable Product, MVP)为起点,然后快速交付出来给用户体验,收集反馈,持续改进,螺旋式演进的过程。大家可以回忆一下2011年腾讯刚推出微信时,它有多简单,但正是这一简单的版本(MVP),由于已经实现了最核心的语言聊天功能,大大拉近了人与人的距离,迅速得到了市场的认可,经过多年的演进,今天它才成为移动端最重要的平台级产品。但是当初谁也无法预测这样一款产品到底市场会否接受,主要受众会是谁,有没有竞争对手在开发同样的产品。以最小成本和最快速度向市场推出成品(MVP),在这个阶段,是个验证想法(idea)的过程,如果市场反应并没有预期的好,要么及时通过收集到的真实的产品反馈进行调整,要么放弃掉这个产品止损。唯快不破,快速试错,是这个时代企业和产品的生存法则。

无疑,敏捷思想深刻地改变了我,对我的影响远远超过软件开发本身,升级了我在项目管理、团队管理甚至待人处事各方面的认知。虽然我未必已经做得很好,但我相信没有这样的认知升级,我不会做得更好。敏捷对你的影响是什么?


请关注微信公众号 【devopshub】,获取更多关于DevOps研发运维一体化的信息

 

- leansoftx.com -