Scrum可以使用产品待办事项列表中的技术规范而不是用户案例吗?


14

在我目前在公司工作的我们开始进行Scrum项目。说服经理们从瀑布式迁移到Scrum并不难。我们正在做一个从头开始重建平台的项目。因此,(大多数)功能是已知的,大多数改进都是技术性的。

在这种情况下,拥有技术任务而非用户故事是合理的。我们的积压工作涉及各种技术任务,例如:

  • 将数据库类从MySQL重写为PostgreSQL。
  • 实施系统日志记录。
  • 重写对象缓存。

站立时出现的事情包括需要长时间的“研究任务”,但它们从未完成。此外,团队成员在冲刺中声称需要添加计划外任务。

Scrum Master应该如何处理?难道对于这样的项目来说,Scrum不是要走的路吗?

Answers:


10

TL; DR

Scrum并不要求使用用户故事。它们只是一种有用的敏捷实践。尽管产品负责人当然可以使用技术规范而不是用户故事来构建产品待办事项列表,但您的其他大多数流程问题都源自未能接受有效的Scrum和敏捷实践。

过程中的各种问题

您的Scrum似乎以多种方式被破坏,包括:

  1. 您的规格缺乏明确的观点或价值主张。
  2. 您的积压项目与Sprint目标无关。
  3. 您的待办事项整理流程完全缺失或无法为产品待办事项创建案例峰值。
  4. 您的Sprint计划过程没有将产品待办事项充分分解为Sprint待办事项。
  5. 您的团队没有适当地在Sprint计划估算中包括积压项目的不确定性。
  6. 您的团队不尊重时间基础或Sprint的完整性。

尽管Scrum 并非总是适合每个项目,但在这种情况下,说Scrum不能正常工作是更准确的,因为团队实际上并未在做Scrum。您关于用户故事的问题只是团队所面临的较大流程问题的一小部分。

为什么敏捷程序员会拥抱用户故事

技术规范从根本上打破了传达要求的方式。从观点来看,不受限制的需求不会为开发人员提供任何有用的指导。使用您发布的示例:

  • 重写对象缓存。为什么?目的是什么?谁得到好处?谁可以提供有关任务的说明?如果这与非功能性需求相关,那么该目标是什么?
  • 实施系统日志记录。为什么?谁去看日志?日志需要包含哪些信息?您如何知道日志格式或日志数据是否有用?

从开发人员的角度来看,无法回答此类问题会导致您所描述的确切类型的过程问题。这就是用户故事的用途:它们提供了急需的上下文,并充当占位符,用于与利益相关者或最终用户就特定功能进行其他对话。

您不应该使用用户故事,因为您认为这是框架要求,或者是广泛接受的敏捷实践。相反,您应该有效地创建和使用它们,因为它使编程任务变得更容易,并使编程职业变得更加有趣。当然,您的里程可能会有所不同。


您不必以TL; DR开头每个答案,开始时没有标题就可以进行摘要!:P
Dave Hillier

9

我不认为这里的问题就是Scrum这样的问题,我认为问题在于没有明确定义的项目可交付成果,并且(我已经经历了很多次)没有明确的方向。

我认为您的技术任务很好,可能在很大的方面,但是可测量和可定义的,因此对于故事来说绝对合适。

在Scrum中,研究任务对我来说是一个巨大的危险信号,因为它们几乎没有带来明显的收益,并且会造成巨大的范围爬行。我主张在冲刺中限制这些前期准备,不应添加它们,当然也不应以承诺的目标为代价添加它们。如果需要他们完成约定的sprint任务,则在计划时应该已经明确依赖关系(否则,他们估计了什么?)。

以我的经验,具有很多“调查峰值”的项目可以掩盖开发人员的实际工作,他们实际上并没有做很多事情,他们想要花时间去寻找新的闪亮事物而不是创造业务价值。我并不是说您的团队正在这样做,但是一个项目需要明确的目标,如果开发人员被赋予了“研究”的自由,那么他们会做并继续这样做,只要您允许。


因此,在这种情况下,只执行没有真实用户故事的任务就可以了吗?程序员经常在计划会议时说:我们不知道该任务需要多长时间,因为我们不知道确切包含了什么。因此,他们首先要调查。
桑德斯2013年

2
Scrum应该为您工作,不要挂在“什么是正确的”上-任务很好,如果任务需要调查,那么调查应该有时间限制,我个人会限制可以计划成冲刺的“调查”数量-然后,该调查的结果可以输入下一次计划会议。
迈克尔

4

Scrum说,您最好为客户提供可交付的产品。但是,这里的要点是,它没有指定可交付产品客户

换句话说,在您的特定情况下,您可以将可交付产品定义为代码改进,平台更改,重写和重新设计等,然后将技术经理视为您的客户。

这对我来说是100%合理的。您创建了一个积压案,该积压案告诉您产品用户的故事,用户是谁?技术经理。因此,像这样的项目:

  1. 作为技术经理,我希望我的数据库从MySQL更改为X,以便提高可伸缩性
  2. 作为开发人员,我需要一个全面的日志记录系统,以便可以更高效地进行诊断

您交付给客户(技术经理)的是一个日志系统。

但是,关于您谈论的R&D任务,我建议您阅读有关Scrum 高峰的信息。它们本质上是带时间限制的微型任务,可帮助您确定执行较大的陌生任务所需的时间。


谢谢。Scrum流程中峰值会流向何处?当我想弄清楚我在接下来的冲刺中需要的东西时。假设我花了4个小时,而结果可能是我有20个小时的开发时间。当前冲刺需要这些时间时,应该如何处理?
桑德斯2013年

“峰值”是用于研究概念和/或创建简单原型,产生概念证明,扩展知识等的固定时间段
Ioannis Tzikas

@IoannisTzikas不是我的问题的答案;-)
sanders

1

作为Scrum Master,由于工作性质,您可能需要考虑较长的sprint。这将为您提供更多用于“研究”任务的缓冲区。但是,我认为您需要确保任务在代码中产生某种工作产品/概念证明。您希望程序员做什么?要求他们采取一些措施,并使用这些信息来确定A:是否达到了我们想要的效果B:使其表现更好C:需要多长时间才能达到最新速度并开始知道将需要多长时间拿东西来做。

如果发现对当前重写的了解不多,则可以缩短冲刺周期。进行过程中,不要害怕调整它们。这就是敏捷。研究完成后,您可能还决定采用新技术。这可能是缩短冲刺的另一个原因,以便在无法控制之前。您可能会在sprint的中间发现新的东西行不通。停止冲刺并使用旧技术进行调整。毕竟,您的开发人员应该能够比较和对比新旧方法。

您在兼顾开发人员的需求,在这种情况下,需要重写应用程序。我猜想有些产品负责人希望这个项目早日完成,而不是长期接受“研究”的要求。


1

以下一些策略可能会有所帮助,

  1. 是的,您可以与技术案例一起积压。

    像用户故事一样,这也应该是“技术故事”,重点是它将带给最终用户的好处。是一些编写技巧。这些故事将为产品带来内在价值,就像您想转向更好的后端等。

  2. 对于调查(研究)任务,请使用峰值

    峰值是一项实验,它使开发人员能够充分了解用户故事中未知的内容(例如新技术),以便能够估计该用户故事。尖峰脉冲必须有时间限制。这定义了学习将花费的最大时间,并确定峰值的估计值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.