
为什么 Scrum 让你感到压力很大?
作为一种敏捷开发框架(Agile framework),Scrum 主要用于管理复杂的产品开发。它不是一种特定的软件开发方法,而是一种帮助团队以更有效的方式运作的方法论。Scrum 通过将工作分解成小块并在短周期内完成(称为 Sprint),从而允许团队定期评估进度并调整方向。Scrum 本身是灵活的,然而在某些组织中实施时可能会变得僵化,甚至有时候,团队可能过于关注速度(Velocity)等指标
作为一种敏捷开发框架(Agile framework),Scrum 主要用于管理复杂的产品开发。它不是一种特定的软件开发方法,而是一种帮助团队以更有效的方式运作的方法论。Scrum 通过将工作分解成小块并在短周期内完成(称为 Sprint),从而允许团队定期评估进度并调整方向。Scrum 本身是灵活的,然而在某些组织中实施时可能会变得僵化,甚至有时候,团队可能过于关注速度(Velocity)等指标,而忽视了质量或其他重要的项目目标。
在种种因素之下,很多人追捧的 Scrum 似乎不是那么受欢迎了。本文作者分享了他的最新使用感受。
原文:https://rethinkingsoftware.substack.com/p/why-scrum-is-stressing-you-out
声明:本文为 CSDN 翻译,未经允许禁止转载。
作者 | ADAM ARD 责编 | 苏宓
出品 | CSDN(ID:CSDNnews)
这个时代从事编程的人,压力都很大——总之要比我在 20 世纪 90 年代以及 21 世纪初刚开始编程时的压力要大得多。回忆我们曾经编程的日子,只有在项目 Deadline 临近时,才会有些手忙脚乱,但在其他时候,我记得自己还算平静。
然而,如今,压力似乎无处不在了。
为了健康和工作效率,我尝试摆脱这些压力。于是也开始思考,为什么过去几十年里,编程的感觉变得越来越糟糕了(至少对我来说如此,对其他人而言其实未必)。
最终,我认为这并不是由于激烈的竞争、不断变化的市场、甚至是紧迫的 Deadline 导致的,因为这些因素过去也一直存在。在我的日常工作方式中有一个重大的变化:我被迫开始以冲刺(Sprint)的方式工作(通常 1-2 周),而不是将大量时间花在更大的项目上。这种转变带来了一些不幸的后果。
为什么冲刺(Sprint)会更有压力?按理来说,冲刺是将项目分割成一小块一小块任务,这样通过更频繁、更短的截止日期来完成一个个小目标,避免在项目末期时再拼命赶工。
事实上,这种推理看起来是有逻辑的,但它忽略了一些在今天软件开发者的真实体验中重要的细节。我认为冲刺对我们不利的地方如下:
冲刺永不停歇
冲刺(Sprint)之所以成问题,是因为它永远不停止。冲刺不仅仅是项目向前推进中所有人会遇到的较短的截止日期。更不容忽视的是,这些 Deadline 是永远重复的、连续不断。
瀑布模型是围绕真实的截止日期和需要集中注意力的现实事件构建的。你会努力工作以完成某个任务,然后就可以结束了。高压之后会有低压期。相反,冲刺是为了一种过程而人为设置的截止日期。因为它们是人为制造的,所以没有自然的休息或间歇期。没有时间喘息,没有时间整理思绪。
如果你绘制程序员在传统瀑布模型与基于冲刺的 Scrum 模型中的压力水平随时间变化的图,可能会是这样的:
虽然软件所遵循的瀑布模型会导致更高的压力峰值,但冲刺这种方式会带来更持续的中等压力。两种的区别在于更高的短期压力和中长期的持续压力,虽然任何压力都不完全让人舒适,但是我们的身体更能应对短期的压力。事实上,短期的压力甚至是健康的,能让我们变得更强大。就像去健身房锻炼肌肉一两个小时,会让肌肉变得更强壮——前提是给它们足够的时间休息。然而,人在受到长期压力下,会对身体造成巨大的损害。
……在这些情况下,压力之所以可能是积极的,是因为它是短期的,并且它帮助你克服你知道自己能够应对的挑战。
然而,长期承受压力会对你的健康产生真正的身心影响。研究表明,压力与高血压、肥胖、抑郁等问题之间存在联系。
——《压力对身体有什么影响?》WebMD
冲刺是强制性的
如果一个开发团队商议最终决定每两周交付一次代码,这是基于他们自己设计的流程来得出的,那么,这无疑对他们非常有意义并且适合他们的情况,这种就另当别论了。
但是在类似 Scrum 的流程中,冲刺并不是这样运作的。冲刺的每一个方面都是被规定好的:它持续的时间、会议、任务,甚至参与者的角色。这种方式和上面自主性规划有着明显不同。
举个例子,在一项研究中,让一些雄性小鼠进行同等距离的赛跑。其中将雄性小鼠分为几组:一些被迫在跑步机上进行不定期的跑步,而另一些则拥有控制自己运动的自主权。尽管两组小鼠跑的距离相同(跑步量相匹配),但那些被迫跑步的小鼠表现出明显的压力、恐惧和不适。
我们发现,在自愿轮跑和跑步机跑步之间共有 140 个受调控的大脑区域,而 32 个大脑区域仅由轮跑调控,83 个大脑区域仅由跑步机跑步调控。与自愿轮跑不同,强迫跑步机跑步触发了与压力、恐惧和疼痛相关的大脑区域活动。
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10943479/
这很有道理,不是吗?没有人喜欢被告知该做什么——这破坏了体验。它剥夺了你的内在动力,更糟糕的是,它阻碍了你的调整、实验和改进的能力。即使在最艰难的情况下,只要有希望改变,也可以忍受,但强制性的遵从剥夺了所有的控制权,并夺走了你的希望。在 Scrum 中,程序员就像是那些被迫努力的小鼠,被迫在老板制定的跑步机上奔跑——一个冲刺接一个冲刺。
关于工作中自主权的好处,我推荐大家有空可以看看 Daniel H. Pink 的《驱动力》这本书。
冲刺会忽视关键的支持性活动
在类似 Scrum 的环境中,冲刺的另一个令人压力倍增的方面是它们常常让你对下一个任务毫无准备。这种情况的发生是因为没有预留时间来进行适当的工程准备工作。一个任务不仅仅是敲代码那么简单。正如 DeMarco 和 Lister 观察到的:
“如果你负责完成一个任务,你应该有多少时间真正用来做这个任务?不是100%。应该留出一些时间用于头脑风暴、研究新方法、找出如何避免做一些子任务、阅读、培训,甚至仅仅是放松一下。”
——《Peopleware》,Tom DeMarco 和 Timothy Lister
当一个 Sprint 开始时,预期是你已经完成了准备阶段,只剩下实施阶段。Scrum 似乎假定你可以像组装一件宜家家具一样简单地“搞定”——只需从待办事项列表中拉出下一个说明书并按照步骤操作即可。而在现实中,这更像是被丢进丛林里,没有地图也没有补给,只有两周时间找到出路。每次你都是从零开始,时间一分一秒地流逝。
你可能会希望在 Scrum 的计划会议或梳理会议上得到一些有用的提示来帮助你开展工作,但即使是在最好的计划环境中,这些讨论也很少能提供超过表面性的指导。真正实质性的洞察只有在实际工作开始后才会出现。准备和执行是不可分割的——思考和行动是交织在一起的。当我们试图将它们分开时,就会产生压力。
Scrumfall:更真实(且更糟糕)的画面
正如你们许多人所了解的那样,大多数 Scrum 的实施实际上是瀑布模型和 Scrum 的混合体。因此,总有一个像瀑布模型那样的大爆炸式的截止日期悄悄地潜伏在背后。业务方面总是不由自主地这样做。(“我们必须做市场推广!”“我们需要告知客户即将推出的东西!”“我们必须在展会上做出承诺!”“这就是现实!”)
而当那个大的截止日期不可避免地到来时,之前冲刺的工作往往不足以兑现承诺。压力随之增加,看起来大概是这样的:
在这种情况下,你两头不讨好。压力水平一开始就很髙,并且随着重大版本发布的临近而逐渐加剧。
结论
在冲刺中,没有休息时间,几乎没有自主权,也没有足够的时间来做准备。难怪今天的开发者们显得更加焦虑!
这一过程与他们的工作性质不相符,而他们又无力改变它。
唯一的解决办法是恢复开发者的自主性和专业性。让开发者掌控他们的工艺和技术过程。把他们当作受尊敬的同行对待,而不是机器中可以替换的齿轮。然而,实现这些条件可能需要工程师们从基层做出努力,无论是通过建立更有道德的组织还是转向自由职业。
更多推荐
所有评论(0)