如何使用Scrum创建通用/可重用代码?

时间:2010-09-01 11:34:44

标签: scrum code-reuse

Scrum开发基于列出用户故事并在sprint期间实现它们。这种方法 - 专注于最终产品的实际目标 - 肯定有它的优点,但有什么不好的是它不提倡在这个过程中创建任何通用/可重用的代码,实际上我觉得它主张黑客攻击< / em>的。例如,如果用户故事说

  

必须能够绘制x与y的关系,并在那里拟合一条线。

我的第一个想法是,“嘿,我需要创建一个通用的图形框架,以便我以后可以更有效地处理类似的案例”。但这不是scrum sprint中的目标;目标就是用户故事所说的内容。

因此,更需要(从Scrum的角度来看)简单地将某些内容混合在一起以便实现用户故事,而不是试图理解大局并创建更通用的东西(当然,最初花费更多时间)

这是不可避免的吗?我误解了什么吗?你如何将Scrum'ing与实际产品结合起来,同时创造可重复使用的东西?可重用性是否过时且过高?

4 个答案:

答案 0 :(得分:4)

我只会花时间构建一个通用的图形框架,在第一个sprint上写一些绘制X和Y的东西。这可能就像你用图形一样,所以没有必要写一个框架。

如果在进一步的冲刺中你需要做更多的图形,那么创建你的框架。及时工作到冲刺,让你这样做。

答案 1 :(得分:2)

正如费尔明所说,你第一次需要的东西不是开始构建框架的时候。 YAGNI:你只需要构建一些能够绘制X和Y的东西。

更进一步,我发现即使你第二次需要某些东西,仍然还没有时间构建一个框架。构建在一个或两个用例上的框架的问题在于,除了那些一两个用例之外,它们实际上很少有用且通用性足够。

构建通用,可重用的代码 hard 。对于追随你的另一个开发人员而言,没有什么比出现成为框架的东西更无用和困惑,但实际上只有一个或两个项目使用,实际上与这些项目紧密结合。 / p>

X Windows系统的基本原则之一是:

唯一比通过一个例子概括更糟糕的事情就是从根本没有例子概括。

我会说好建议!

答案 2 :(得分:2)

通常,如果您在没有实际需要的情况下创建通用解决方案,则不会遵循敏捷方法。你应该提前避免重构。否则,它是镀金的,您需要添加不需要的功能,此时您的客户不需要这些功能(优先级方法)。

但有时可能需要创建可重用的组件。当多个团队计划使用相同的组件或单独创建自定义框架时,通常会发生这种情况。在SCRUM中,您可以通过以下方法执行此操作。将使用该组件的主项目将成为该组件的产品所有者。它将定义用户故事所需的功能。组件团队将实现这些功能,并以迭代方式为主要团队提供组件。

因此,假设您有两个项目,期望他们需要信用卡付款组件。这两个团队收集优先级的用户故事,并将其提供给组件团队。他们将共同计划交付,以便组件团队仅提供当前sprint中主要团队所需的功能。

答案 3 :(得分:1)

我认为可重用性和代码质量问题不在团队流程维度之内。好吧也许并不完全,但至少敏捷方法并不能解决这些问题。您可以自由地投入一些额外的工作来提高可重用性,或者只是快速地将事情搞得一团糟。

您可以为每个sprint添加一些额外的固定时间,以便明确用于代码审查和处理可重用性。