当然,Scrum是有用的。这种方法可以为您做两件事:
- 它使您的项目适应变化和
- 它使您可以跟踪进度,并了解何时完成
因此,使用它有一些价值。
我认为您的某些先决条件不正确,这就是您迷路的地方。
我看不到每个故事如何可以谈判-它们都是工作编译器所必需的
这不是真的。您可以支持该语言的子集,但仍可以使用在某些条件下可以运行的编译器。肯定不如完整的编译器有价值,但仍然有价值。
此外,您会误解“可协商”的含义:它不一定意味着“可选”,并且没有要求故事在INVEST中是可选的。一个故事是一个有价值的目标,而谈判则是关于如何实现该目标的谈判。当然,除了实现每种语言功能的后端之外,还有更多的方法。有需要谈判的地方。
这些故事都具有同等优先权,无论我按什么顺序发表它们都无所谓。
这是不正确的,正如您在下面说的那样,有些故事不是“必须具备”的,因此肯定有些价值较小。但是,即使在“必须具备”类别中:某些语言功能比其他语言功能更基础,而且可以测量。
衡量这种情况的一种方法是“如果在预定义的测试套件中,我们可以在现有代码库上编译多少行代码”或“可以通过多少次测试”。
还有其他选择。如果你编译一个类C语言,严格来说你只需要if
和goto
循环有一个(勉强)函数式语言,你可以实现while
,for
并repeat
为宏。假设编写一个预编译器很容易,那么您可以有一个便宜的权宜之计(嘿,我们正在谈判吗?:-)
关于适应性,支持语言是一组相当静态的要求,但是语言也会发生变化,并且您对需求的了解也会发生变化。您需要实施所有内容吗?有没有您不需要专门用于目标的东西?敏捷的基本租户之一是拥有不完整知识的知识,您可以利用它吗?
总之,要更直接地回答您的问题:当您的需求不变时,您是否需要敏捷流程?当然不!它们可用吗?可能是!他们值得你花时间吗?可能不是-但是您的要求不变吗?根据我过去的经验,“不可更改的需求” =>“懒惰的产品所有者”-不是规则,但值得牢记。