敏捷运动(精致工艺)理论的悲剧

马丁·福勒( Martin Fowler)在2018年敏捷论坛上发表了The State of Agile in 2018的主题演讲。讲述了敏捷运动当前所面临的局面。

软件敏捷开发宣言(Manifesto for Agile Software Development)

出众的人才及高效的沟通比流程和工具重要

Individuals and interactions over processes and tools

运行良好的软件比详实的文档重要

Working software over comprehensive documentation

与客户通力协作比按合同行事重要

Customer collaboration over contract negotiation

积极响应变动比按部就班重要

Responding to change over following a plan

原文:

http://blog.cleancoder.com/uncle-bob/2018/08/28/CraftsmanshipMovement.html

你的样子很忧虑

是。我刚刚阅读了Martin Fowler在2018年Agile Australia的主题演讲稿。他将其称为The State of Agile in 2018。

啊,是的,这是一次精彩的演讲。

谨防敏捷 - 工业 - 复合体。
保持技术卓越。
产品超过项目。
好东西!那么困扰你的是什么?

在那次演讲中,他说软件工艺运动的形成是个悲剧。

是。他是对的。

他是?怎么会这样?我认为软件工艺是一件好事。

哦,是的。这是一件非常好的事情。

但那为什么......?

悲剧在于敏捷运动原本是想促进工艺; 它失败了。

我不明白。

敏捷运动只是推动了会议,促进了Scrum Masters和项目经理的认证,他们放弃了程序员,以及工艺的价值观和纪律(disciplines )。

但我认为敏捷运动是始于程序员。

是,这是个大讽刺。 开始敏捷运动的程序员是这样说:“嘿看! 团队很重要。 代码应该干净。 我们希望与客户合作。 我们希望尽早交付。“

敏捷运动是由程序员和软件专业人士发起的,他们拥有精进工艺的理想。 但随后项目经理冲进去说:“哇! 敏捷是一个很酷的如何管理项目的新变种。“

有一首来自艾伦·谢尔曼(Alan Sherman)的老歌叫J. C. Cohen。 
里面说到一位地铁指挥员在推动人们进入火车车厢方面做得非常出色,他把工程师推了出去。 
这就是敏捷运动的结果。 他们推动了这么多项目经理,却把程序员推了出去。

这不是Martin Fowler所描述的那种方式。 他说工艺运动的开始是因为一群程序员说:“哦,我们需要为自己创造一个全新的世界,我们可以离开,远离所有这些商业专家,项目经理和业务分析师 ,并谈谈我们的技术问题。“

不好了,马丁完全错了。从“ 软件工艺宣言”中可以清楚地看出,“ 精湛工艺”的目标是继续并扩展敏捷信息。软件工艺不是某种Techie Nocturnal Emission。软件工艺只是敏捷原始目标的延续。

精湛技艺就是敏捷,但只有敏捷运动被留下了。

被留下来?留下来做什么?

促进会议,认证和新的项目管理策略。

认证有什么问题?

让我这样说吧:任何建议参加工艺认证和认证的人都会被嘲笑出房间,笑出镇,并笑出州。这个想法很荒谬。

好吧,但是如果没有炒作,认证,培训,会议,你怎么能有一个运动?你不需要那些东西引起人们的注意吗?

也许吧,但我希望精湛工艺运动不会让它的原始目的落后于敏捷运动的表面形式。

那是什么意思?

最初的敏捷目的。你知道,精湛的工艺与新事物无关。手工艺是关于旧东西。这是关于运作良好,增加价值,做好工作。
它涉及交互,沟通和协作。它是关于有效地适应和响应变化。这是关于职业化和道德规范的。这是肯特贝克对敏捷的目标。

那个目标是什么?

在雪鸟会议上,2001年编写了敏捷宣言,肯特贝克说,我们的目标之一是治愈程序员和管理层之间的鸿沟。

敏捷运动通过将敏捷转变为一种促进“新的和更好的”管理方式,从而放弃了这一目标。
敏捷运动几乎完全集中在项目管理上,而不是让管理人员和程序员更紧密地联系在一起,而且几乎完全排除了程序员。

为什么程序员会被分开呢?

没有!程序员没有分开。程序员坚持到底!程序员继续追求最初构想的敏捷。
阅读敏捷宣言的开篇:“我们正在通过这样做并帮助其他人来开发更好的软件开发方式。”
它不是敏捷运动中的项目经理。他们正在追求其他东西?

他们追求的是什么?

新奇与新鲜。如今,敏捷运动是关于“下一件大事”和“大胆创新”。他们需要新颖性来保持高热情和高能量。他们需要这样才能让人们报名参加会议和认证。
他们需要被视为制造 - “进步”。敏捷已成为一项业务,而业务需要增长。

在我看来,他们正在取得成功。

是的。他们只是没有成功实现敏捷的最初目标。他们脱离了这些目标,以满足新奇和新鲜的需求。
不幸的是,如Fowler和Jeffries所说的:“Faux Agile”,“Dark Scrum”和“Flaccid SCRUM”。

这对我来说有点难以置信。

让我向你证明一下。福勒谈到他的第一点是什么 - 关于敏捷工业综合体的观点?

他说了一些事情,即当人们选择他们想要的工作方式时,他们的工作效果最好。

对!在软件开发团队中,谁负责大部分工作?

那当然是程序员。

有多少程序员参加福勒的演讲?

嗯,他说这是“很小的一部分”,“很少”,“非常少数”。

QED。谁去参加敏捷会议?不是程序员。不是做大部分工作的人。程序员开始了这些会议。程序员开始运动。程序员不再去了。不是程序员改变了。
正是这些会议,以及运动,已经发生了变化。敏捷运动远离程序员 - 从敏捷。QED

但…

看。敏捷从未涉及项目管理; 但这就是他们把它变成了什么。敏捷和项目管理是完全正交的事情。
敏捷不是管理项目的更好方法。敏捷与管理项目无关。
敏捷是一套价值观和纪律,可以帮助一个相对较小的软件工艺团队 - 男人和女人建立中小型产品。

但那管理不是吗?

没有!上帝不!项目管理涉及日期,预算,截止日期和里程碑。这是关于人事管理和动力。良好的管理是绝对必要的; 但它与敏捷毫无关系。

这里。看看敏捷宣言。注意这四个陈述,以及它们如何在左右分开。
左右分开的东西是什么?右边的东西是管理层。左边的东西是敏捷。
经理调用流程和工具。敏捷团队的个人互动。经理们推动全面的文档。敏捷团队构建工作软件。经理谈判和管理合同。敏捷团队与客户协作。
经理确保遵循计划。敏捷团队应对变化。

但Scrum Masters有点像项目经理吗?

天不!Scrum Masters是教练,而不是经理。他们的作用是捍卫价值观和纪律。他们的作用是提醒团队他们如何承诺自己会工作。该角色应该由团队共享,而不是由经理篡夺。每隔几周,一名新的团队成员将自愿担任教练 - 如果需要的话。这个角色应该是暂时的。一个成熟的团队不需要长期教练。

哇,这肯定不是他们现在教的东西。所以我猜你认为敏捷只是毁了。

没有!敏捷是活生生的,并且在精湛的工艺思维中茁壮成长。当项目经理入侵并采取敏捷运动时,这就是敏捷搬迁的地方。

那么,敏捷运动是什么?

如今,敏捷运动可能也是PMI的非官方分支。这是一项为项目经理推广会议,培训和认证的企业。因此,它已经成为贝克最初目标的对立面。敏捷运动并没有治愈程序员和管理者之间的鸿沟; 它加剧了它。

好像你说敏捷运动不是敏捷的。

不是。它很久以前就提出了这个问题。如今,敏捷运动是关于项目管理使团队变得敏捷的可怕缺陷。

好吧,不是吗?

不,不,一点也不。你看,敏捷团队是一群拥有敏捷价值观和纪律的工匠和女人。无论项目如何管理,敏捷团队都将变得敏捷。另一方面,一个不敏捷的团队不会因为一个新的和花哨的项目管理策略而变得敏捷。这样的团队将是Faux Agile。

你是说一个好的经理不能带领一个团队变得敏捷?

这是一位罕见的经理,可以灌输手工艺的价值观和纪律。这不是不可能的; 但这并不常见。敏捷团队通常由已经分享敏捷 - 工艺的价值观和学科的人组成。认为团队可以因为认证Scrum Master是项目经理而变得敏捷是一个白日梦。

那么未来是什么?

未来就是它一直以来的。敏捷的价值观和纪律将继续帮助相对较小的软件团队构建中小型产品,并有助于弥合程序员和管理层之间的鸿沟。今天,这些价值观和纪律是由人们掌握的,无论他们是否了解,都符合软件工艺的理想。

我认为我们不需要一个组织来推广手工艺。我认为我们不需要“手工艺联盟”。我认为我们所需要的只是善意的人 - 互动和合作的人 - 通过稳步增加价值来促进变革的专业人士社区。我认为敏捷的想法 - 手工艺的想法 - 足够强大,可以在没有组织推动它们的情况下成长和传播。

那么软件工艺并不是一个悲剧?

工艺的理想怎么会被认为是悲剧性的?它们是人类一直渴望的永恒理想,只要它们是人类。悲剧在于,敏捷运动成为了一项让敏捷的原始价值观和纪律落后的企业。