敏捷已死

2014-03-16   出处: PragDave  作/译者:Dave Thomas /紫晴

      13年前,我与十七个中年白人聚集在Snowbird,Utah(犹他州)。我们之所以在那里,是因为我们对软件开发共同的信仰,我们想知道有没有一种方法能够用来描述我们共同的信仰。

      我们用了还不到一天的时间,就列出了它的价值。我们将这些价值,以及一系列的实践发表出来,作为Manifesto for Agile Software Development(敏捷开发宣言):

  ·个人和互动高于流程和工具

  ·工作软件高于理解文档

  ·客户协作高于合同协商

  ·变化响应高于计划遵循


      我为我们所做的感到骄傲,包括我们遵循的过程和取得的成果。我认为,宣言的存在已经帮助开发人员摆脱了一些八九十年代的浪费和枯燥的流程。

      然而,由于Snowbird meeting后,我没有参加任何关于敏捷的议程,没有加入敏捷开发协会,没有做任何“敏捷”的相关顾问,所以我也没有参加十周年庆典活动。

       为什么?因为我认为这不符合我们的敏捷开发宣言的精神。举办敏捷会议越来越像是举办芭蕾舞会,践行这四个敏捷核心精神的行业团体在我看来更像是组建了一个贸易联盟。不幸的是,我认为时间已经证明了我的观点是正确的。“敏捷”这个词被完全颠覆了,实际上它就是一个毫无意义的词语。敏捷社区似乎是咨询师和供应商兜售服务和产品的竞技场。是该让敏捷寿终正寝的时候啦!” 十几年的敏捷似乎已到尽头?

       所以,我认为“敏捷”这个词是时候退休了。

       我相信没有人会介意 禁掉这个名词,因为这就是错的。“Do Agile Right” 和“Agile for Dummies”  只是无数英文语法错误中的两个。他们是没有意义的。敏捷不是一个名词,而是一个形容词,它必须用来修饰其他东西时才有意义。“Do Agile Right”就像是在说“Do Orange Right”(雪城篮球队的队服是橙色的,有时候美国新闻会把他们叫做orange)。

      但是,除了语法问题,还有一个更大的问题。一旦宣言开始流行,敏捷一词成为其它东西的宣传点,或为了支持某个论点,或为了宣传,或为了出售产品。它已经成为一个营销术语,成为改善销售方式(如“生态”、“自然”)等的新成员,。这个被滥用的词已变得不再有意义,因为它转换成了一个品牌。

      这伤害了所有人,但我对于它对开发人员造成的伤害感到特别敏感。编写代码并非易事,开发人员自然是在寻找帮助他们更有效地实现交付价值的东西。我仍然坚信, 坚持实践我们的敏捷宣言,将帮助他们在开发方面有帮助。

      但是,一旦敏捷一词变得毫无意义, 开发人员就不能再认为它是一个有价值的实践。我们不妨简单地在全球范围内将敏捷一词抹去。


回到正轨

       敏捷宣言强调的敏捷软件开发的四个核心价值是:

   ·个人和互动高于流程和工具

   ·工作软件高于理解文档

   ·客户协作高于合同协商

   ·变化响应高于计划遵循


      左边的短语代表着理念,如果在左和右之间选择的话,那些想要敏捷开发软件的人更倾向于左边的理念。

      现在回想一下,那些说会让你开始“敏捷”的顾问和小商贩。问问你自己,在他们那里是被定位为左边还是右边的位置。我的猜测是,你会发现他们推广繁琐的过程和工具,因为有许多交付物(或是为了取悦管理者)、一些随便的工作和贴满便签纸的白板(体现出相当丰富的迭代计划)。

     如果你也看到这些情况,那么说“敏捷”这个词已经贬值就有了更多支撑的证据了。

     (当然,这些顾问可能只凭两天的培训课程就可以赚很多钱。而我不行,所以他们是大师,我不是,这意味着从某种角度讲,我可能是错的。)


回归本质

下面是如何用敏捷方式来做事:

做什么:

                 ·找到你的位置

                 ·向你的目标迈出一小步

                 ·基于你所学来调整你的认知

                 ·重复以上步骤

怎么做:

       当面对两个以上提供大致相同价值的选择时,采取使得未来的变化变得更加容易的路径。

       这就是你仅仅需要做的。这四行字和一个实践包含一切已知有效软件的开发。当然,这需要大量的思考,并需要将整个流程重复无数次,很多时候,你所需要关注的甚至包括了从变量命名到交付这个过程中的所有事情。但任何想出更大或更复杂的东西的人都只是试图把东西卖给你而已。

      这篇文章所说的都是当务之急,是势在必行的,它们都是在通过一些动词告诉我们该做什么和怎么做。

下面让我提出我的建议。

      让我们放弃用那些不做实事的人所用的词“敏捷”。

      相反,让我们用一个词来描述我们所做的事。


让我们开发敏捷

      ·你不是一个敏捷程序员——你是一个设计程序很敏捷的程序员。

      ·你不是在一个敏捷团队工作——而是你的团队表现得很敏捷。

      ·你不使用敏捷工具,而是你运用的工具让你更敏捷。

      “敏捷”一词很容易运用于任何东西,但敏捷性是很难挪用的。

       这是很重要的——标签可以进行买卖。通过参加一个短期课程,可以突然添加一个敏捷的标签和头衔,但是你不能买经验,你只能通过努力来拥有它。


让我们保护我们的付出

      最终,事实胜于雄辩。但是好的词语可以帮助我们有效地沟通。

      我们已经失去了“敏捷”这个词,让我们试着坚持敏捷性。让我们保持它的意义, 让我们保护它免受“那些拿着我们思想的精髓然后又卖回给我们的”伤害。




更新3/11:感谢大家指出我错误把“敏捷性”作为副词。同时,也修复了敏捷宣言的超链接。




       1.当我去参观印度2014敏捷,我唯一一个关于敏捷的会议,我开始思考这篇文章。我去了,不是因为这个话题,而是因为我尊重的组织者,Naresh Jain。

       2.是的,我自己已经落入了陷阱。当Ruby on Rails出现时,我对他当时给我的关于敏捷性的项目印象深刻,所以我称我写的这本书为“Agile Web Development with Rails”。如果今天我再写那本书,书名可能就会不同了。

{Dave Thomas 发表于2014年3月4日}

【英文原文:Agile Is Dead(Long Live Agility)

{测试窝原创译文,作者:紫晴}


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
591° /5916 人阅读/0 条评论 发表评论

登录 后发表评论