代码之家  ›  专栏  ›  技术社区  ›  Precipitous

如何在严格的scrum商店中管理非面向用户的工作?[闭门]

  •  2
  • Precipitous  · 技术社区  · 15 年前

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

    告诉我什么系统适合你:你如何优先安排和组织非面向用户的工作?我希望系统简单且与scrum平滑集成。

    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 回复  |  直到 15 年前
        1
  •  5
  •   Charlie Martin    15 年前

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

    当你 识别 最依赖或最关心项目结果的人,就是项目面临的“用户”。让那个人成为顾客。

        2
  •  1
  •   ChrisW    15 年前

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

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

        3
  •  1
  •   JB King    15 年前

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

    这是一个可以稍加调整的想法,尽管它还不一定完全被冲掉。

        4
  •  0
  •   Yuval    15 年前

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

    不相关的额外工作将按照JB King所述的百分比完成。

    很难让POs理解这项投资,更不用说它强大到足以延迟其功能。

    开发经理有时会对整个情况感到非常糟糕,不管选择什么方法。我的建议是,无论是作为一名曾经在这一领域工作过的人,还是一名敏捷教练,只要你觉得自己在为业务做正确的事情,专注于现在需要的非功能性工作,并且有相对较快的投资回报率,你就应该对此感到满意。

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