29 3月

敏捷已死,敏捷性万岁

文 / Dave Thomas:敏捷软件开发宣言创始人之一,《程序员修炼之道》与《Programming Ruby》的作者。

译 / 白云鹏

原文链接:http://pragdave.me/blog/2014/03/04/time-to-kill-agile/

十三年前,为了分享共同的软件开发理念,我们十七位中年人聚集在犹他州的滑雪胜地雪鸟(Snowbird)雪场。我们想知道是否能把这些理念描述出来。

用了不到一天的时间,我们将这些理念简单罗列,作为敏捷软件开发宣言(Manifesto for Agile Software Development)将其公布:

个体与交互胜于流程和工具

可用的软件胜于详尽的文档

客户合作胜于合同谈判

响应变化胜于遵循计划

我为我们的所作所为感到自豪。我想这个宣言可以帮助开发者摆脱一些八九十年代出现的不良做法。

这次会议以后,我就再也没参加过任何关于敏捷的活动,也不是敏捷联盟的成员,也不做任何“敏捷”咨询业务。也没有参加宣言发表10周年庆祝活动。

这是为什么呢?因为我觉得任何这些事情都不符合我们所发表宣言的精神,有关敏捷的会议与芭蕾舞会没什么两样,并且让我吃惊的是,围绕宣言的四点形成了一个产业群。

遗憾的是,事实证明了我是对的。“敏捷”这个词已经到了被颠覆的地步,敏捷社区看起来像是顾问和商家兜售服务和产品的大舞台。

所以“敏捷”这个词该下课了。

“敏捷”不应该是名词,而应该是一个形容词,它有其相应的含义。

一旦宣言走红,就像环保和天然一样,敏捷这个词就会变成营销术语。因为它变成了一种品牌,会被滥用而失去原有的含义。

这伤害的是每个人,我则对开发者的伤害尤其敏感。敏捷不是简单地编写代码,而是开发者本能地寻求可以帮助他们更有效创造价值的方法。我则仍然坚信,信守这个宣言会有意于开发者。

而一旦敏捷这个词变了味儿,开发者就不会再用它作为实践中的有效指南了。

转向右边

我们再来看看宣言中的四项理念:

个体与交互胜于流程和工具

可用的软件胜于详尽的文档

客户合作胜于合同谈判

响应变化胜于遵循计划

左边的短语代表理想,左右之间选择,敏捷软件开发者则偏爱左边。

从顾问和商家那里看到的则是“敏捷”这个词的贬值和滥用。当然,对于一些顾问,事实可能也不尽然。

回归根本

下面是敏捷方法应该做的事情:

做什么?

  • 找到问题
  • 朝着自己的目标迈出一小步
  • 基于获取的信息,调整自己的认识
  • 重复上述步骤

如何做?

当面对两个类似的选项时,选择容易修改的那个。

上面的四条准则和一项实践原则概括了高效的软件开发方法。

这些准则和原则都是动词短语,它们告诉了我们做什么,如何做。

我也要说两句。让我们摒弃没有敏捷精神的说法,换成一个描述我们应该做哪些事情的词语。

让开发带有敏捷性

你不是一位敏捷程序员,而你是一位具有敏捷性的程序员。 你所在的团队不是敏捷团队,而你的团队显露出敏捷性。 你不使用敏捷工具,而你使用工具增强自己的敏捷性

敏捷这个词很容易联系任何事物,而敏捷性则不容易被挪用。

你不能购买经验,只能自己去实践。

让付出得到保护

总之,行胜于言,但好的称谓有助于高效沟通。

我们已经失去了敏捷。让我们守住敏捷性,让它保持原本的含义。