技术开发 频道

敏捷开发的灵魂—小跑精神

敏捷开发“小跑精神”的管理方式

    精神,是一个艺术性的事物,无法像科学一样定量衡量。敏捷开发的精神,是随着团队文化和管理方式孕育而生。软件开发的团队文化,大体可以分为下面这两个维度。一个是自上而下的计划与控制,一个是自下而上的灵活与主动。他们二者的关系如下:

    计划、控制意味着从需求,到架构,到设计,到开发,测试的完全的控制和计划,代表就是传统的瀑布开发了。在软件开发管理中,总是喜欢把软件工程和另一个领域做比较:建筑工程。而且最早的软件工程的思想来源就是受到了建筑领域的深刻影响,《建筑的永恒之道》一书估计是软件从业者人尽皆知了。这对计算机软件工程的发展起到了很大的积极作用。因为软件和建筑有很多的相似性,如组件,设计,分工,计划等等。所以,早期的软件工程,强调“瀑布”开发,需求、架构、设计、开发,规划和设计好一切。这在软件出现的最初的一段时间,是被很好的应用并推广,为软件行业起到了很大的促进作用。

    但随着社会的发展,企业信息技术的成熟,以及越来越变化的客户需求,建筑式的瀑布开发,已经不能符合软件团队的需求。以前,企业只要能有个网站可能就很满足,也没有太多的需求诉求,现在就不一样了,每个企业的各个部门都有信息化的需求,而且需求不断变化,不同部门之间需求有时还有冲突。这时完全计划、控制式的软件开发方式,就不能满足商业发展需求了。

    此外,软件研发是管人,是管理人脑力创造性的产出,是知识密集型产业管理。管死物,可以规划计划的很详细,然后根据规划优化资源,因为事物是死的,不会产生波动和变化。犹如,泰勒用秒表对的生产的每个操作步骤进行了精密监测之后,才有了精确的工作度量方法,才能衍生大规模流水线生产,因为只有绝对的稳定,才能有绝对的控制和规划,才有了流水线的批量大规模生产和资源优化,这在管理高度劳动密集型工作时是常见的。所以,泰勒的秒表试验,量化的工作时间是是福特流水线的基础。而软件行业,是一个创造力的脑力活动过程,人的产出是波动的,变化的,很难用秒表精确(大家应该都认识到一个现象:即高产出的研发人员是一般产出研发人员的好几倍),所以知识密集型行业和人的积极性和主动性等精神方面是紧密相关。所以试图用管死物优化控制的方法去管人的大脑,是会出问题的。现在的软件行业,许多的经理和企业,都有把人当作机器般对待的倾向,大量的控制与规划,规章制度,汇报会议,审核流程,这样的企业文化和团队中,是很难出现员工的主动创造,主动贡献,更不可能出现“小跑精神”的企业文化和好员工,不钻流程的空子偷工减料就算不错了。所以敏捷开发是在计划控制的基础上,把上图的中间线向右边移动的过程。敏捷开发注重灵活主动,更加注重人的作用,而不是以控制、流程管死物的方法来限定人的积极性,这样的管理方式更容易产生精神产物,也就是敏捷开发“小跑精神”的基础。

    中国人向以以德服人、无为而治的管理方式而著称,这是上图中偏右的管理方式,而西方则擅长量化的科学管理方式,是偏向左边的管理方式。而敏捷开发则是一个中间的一个平衡。计划和控制,是科学;灵活、主动是艺术,敏捷开发是科学与艺术的统一。

    计划和控制是冰冷的,没有情感的,没有活力的;灵活主动是火热的,是洋溢热情的,是突出主动贡献的。绝对的灵活,也是要出大问题的,组织会变得失控,失去章法,最后慢慢衰退。很多国内的小型软件公司,很多就是过度灵活,软件生命周期没有良好的定义和流程,没有良好的质量控制,也没有开发流程和测试流程,如此企业规模一大,就很容易出现问题。所以一些民营企业软件公司,想要做大做强,就必须要有章法,要有控制和规划,引进科学的管理方法来管理软件研发过程。绝对的计划和控制,组织就会僵化,没有创新力,失去激情,如一些大型的国企,过度的规章制度和控制,使得组织缺乏激情和创造力。所以,这二者,没有绝对的好,也没有绝对的坏。上图中,中间的虚线是软件管理的方式,那么敏捷开发,是从以往的绝对控制的科学管理开发方式,逐渐向右移动。当然,这就导致敏捷开发中控制和规划的元素少了一些,艺术管理的意味大了一些,但艺术这东西,说不清道不明,这也难怪大家用方法来衡量敏捷开发。

    敏捷开发更加注重管理艺术的成分,而不是把软件工程当作绝对的科学。强调灵活、主动、热情的“小跑精神”。融合了人性化的管理和科学的方法,这不能不说是软件业管理方法的一大改进。

敏捷开发的“阴阳之道”

    前不久,和一位资深的架构师谈天,他说了一个形象的比喻来形容组织中的“老化现象”,他说道;组织就像一棵树,组织变得越来越大,树干、树枝就越多,而树枝和树干逐渐失去活力,而最新加入公司的员工,就犹如一颗大树上的新叶,迸发着青春和激情,但随着工作时间增长,也就慢慢的老化,失去往日的激情,慢慢成为组织的“朽木”。任何组织和团队,如果这样的朽木越来越多,终有一天会枯竭。

    敏捷开发正是这样一种软件管理方法,崇尚组织和人的精神,它的灵魂是灵活、热情、主动的“小跑精神”。敏捷开发是计划控制到以人为中心的一个转变,是“中间线”向右一直移动的过程。至于那根线该移到哪个位置,应该灵活到什么程度,就没有绝对定量的衡量。管死物还可以是科学方法,用Project工具、甘特图等方法规划,加以定量;而精神层次则带有艺术成分,是难以科学量化,而敏捷开发就是这样科学与艺术的结合管理方法。它们二者之间难以去量化,你无法去确定他们的比例是什么样的,也无法量化哪个多、哪个少。所以,用下面这张图来描述敏捷开发我觉得更为合适。

    上图是中国古代的太极阴阳鱼,形象化地表达了阴阳轮转,相反相成是万物生成变化根源的哲理。对敏捷开发而言,也正适合深刻表达出计划控制和灵活主动,科学管理与艺术管理之间的互相转化,相对统一的关系,所谓动极而静,静极复动,一动一静,互为其根,而这就是敏捷开发的管理之道。

    精神是艺术层面的产物,比较困难去定量的衡量和引导。如何去建立和加强敏捷开发团队的“小跑精神”,又如何去衡量团队成员的绩效评估呢?下一篇文章,我们将继续这个话题。

0
相关文章