2

我们是一家中型工程车间 (10-20)。我们擅长对面向用户的故事进行优先排序和结构化工作,并使客户满意。但是鞋匠的孩子没有鞋子。如果不是关于客户,我们有 0 流程。

我正在寻找系统来确保我们正确地确定优先级并完成非面向用户的工作以保持开发车间的运行:QA 环境(在我们的例子中相当繁重)、持续集成系统、打包等等。

现在,资源总是有限的。我们不想给鞋匠的孩子 10 双最高档的鞋子,以及专门的自行车鞋来引导。我们想要做正确的、必要的工作,采用与我们其他开发相同的低劣纪律。

告诉我哪种系统适合您:您如何确定和组织非面向用户的工作?我想要简单且与 scrum 顺利集成的系统。

(我知道本文顶部有一个红色框,表示 Stack Overflow 的自动问题解析器认为这是一个无法回答的主观问题——我认为可能有 2 或 3 个优秀的答案可以或已被证明是可行的 - 过程是编程不可或缺的一部分。所以这里有一些代表我们的过程的伪代码。修复这个算法)。

IBacklog GetBacklogForWork(IWork requestedWork)
{
    if(requestedWork.IsUserFacing) return new PrioritizedBacklogRepository();
    // Everything else. Priority largely based on spare time and who thinks its a neat idea
    return new RandomizedPriorityRepository();
}

void HandleIncomingSuggestionsForWork(IEnumerable(IWork) ideas)
{
    foreach(work in ideas) GetBacklogForWork(work).Insert(work);
}
4

4 回答 4

5

相关人员正在使用并取决于项目的结果。 这必然是正确的;如果不是真的,你为什么要这么做?

当您确定最依赖或最关心项目结果的人时,您就有了项目所面临的“用户”。让那个人成为客户。

于 2009-05-10T00:16:57.317 回答
1

从某种意义上说, IMO 之类的“QA 环境”面向用户的工作。

质量是公认的“非功能性”要求(因此不一定有相关的“故事”)。但是,您可能有一个非功能性需求,例如“软件必须在发货前进行测试”。您可以为这样的需求分配一个相对优先级(“测试软件有多重要?”),然后照常执行(决定如何实现该需求,估计实现需要多长时间,安排实现,分配实现等)。

于 2009-05-09T22:49:16.170 回答
1

我们在我工作的地方所做的是有一个百分比,现在大约 15% 给予或接受几个百分点,用于非面向用户的工作的内部任务。通过这种方式处理技术债务,如果任务积压变得相当大,那么可能会花费一个 sprint 而不是新功能。最后一个向用户或客户推销的方式是,有一段时间只完成维护和预防性工作,因此在下一个 sprint 之后没有任何新功能。

这是一个可以稍微调整的想法,尽管它还不一定完全被淘汰。

于 2009-05-10T03:05:08.723 回答
0

我看到它或多或少工作的方式是尽可能多地尝试将非功能性/非面向用户作为相关的面向用户的活动的一部分,或第一个面向用户的活动需要它。这是最容易处理的,因为它只是反映了开发组织的需求,以保持可持续的速度向前发展。

无法关联的额外工作将使用 JB King 描述的百分比来完成。

将其作为具有如此或这样的投资回报率的投资的替代方案在理论上是一个性感的概念,但对于现实生活中的 PO,我已经看到它很少奏效。很难让 PO 了解投资,更不用说实际上强大到足以延迟它的功能。

有时开发团队的困难角色是成为“放慢速度”以保持可持续发展的人。

无论选择何种方法,开发经理有时都会对整个情况感到非常糟糕。作为曾经在那个地方工作过的人以及敏捷教练,我的建议是,只要您觉得自己在为业务做正确的事情,专注于现在需要并且相对较快的非功能性工作ROI,您应该对此感到满意。

注意事项:这是一个真正让自组织面临挑战的领域。组织需要信任团队做正确的事,团队需要赢得而不是滥用这种信任。它是个人或团队了解正确平衡的成熟标志。

于 2009-05-18T19:27:52.073 回答