如何在严格的Scrum商店中管理非面向用户的工作?

时间:2009-05-09 22:32:52

标签: language-agnostic continuous-integration scrum

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

我正在寻找系统来确保我们正确地确定优先级并完成非面向用户的工作以保持开发商店运行:QA环境(在我们的情况下非常重),持续集成系统,包装等等。

现在,资源总是有限的。我们不想给鞋匠给孩子们10双最高档的鞋子,以及专门的自行车鞋。我们希望做出正确的,必要的工作,并使用适用于我们其余开发的相同的scrummy学科。

告诉我什么系统适合您:如何确定优先次序并组织非面向用户的工作?我希望系统简单,并与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 个答案:

答案 0 :(得分:5)

涉及的某人 正在使用并取决于项目的结果。这一定是正确的;如果不是真的,你为什么要这样做?

当您识别最依赖或最关心项目结果的人时,您拥有项目所面对的“用户”。让那个人成为客户。

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我们在我工作的地方做的是拥有一个百分比,现在大约15%给予或减少百分之几,这是用于非面向用户工作的内部任务。通过这种方式处理技术债务,如果任务积压变得相当大,那么可以在其上花费sprint而不是新功能。最后一个方式可能会投入到用户或客户的方式是,有一段时间只需要进行维护和预防性工作,以便在下一个sprint之后没有任何新功能。

这是一个可以稍微调整一下的想法,虽然它不一定完全被冲掉了。

答案 3 :(得分:0)

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

使用JB King所描述的百分比,可以完成无法解决的其他工作。

投资它作为投资的另一种选择是这样一个投资者的投资回报率是一个理论上性感的概念,但对于现实生活中的PO,我看到它很少有效。 很难让PO了解投资,更不用说实际上足够强大以延迟它的功能。

为了保持可持续发展的状况,开发团队有时很难发挥“缓慢下降”的作用。

无论选择何种方法,开发经理有时会对这整个观点感到非常不满。我作为一个曾经在那个地方的人,以及敏捷教练,我的建议是,只要你觉得自己正在为业务做正确的事情,专注于现在需要的非功能性工作并且相对快速投资回报率,你应该对此感到满意。

警示:这是一个自我组织真正面临挑战的领域。组织需要相信团队做正确的事情,团队需要赚取而不是滥用这种信任。它是个人或团队成熟的标志,可以让他们了解正确的平衡。