在使用Scrum框架开发软件时,如有新的需求到来,先放到Product Backlog里。在Backlog Grooming/Refine会议中,团队对尚未明确或需要重新定义的需求进行澄清。等到了下一个迭代的Sprint/Iteration Planning,Product Owner按照优先级把User Story从Product Backlog中添加到当前Sprint,Team Member与Product Owner一起对这些需求进行澄清,之后进行工作量评估。对User Story逐条评估工作量,直到工作量总和接近或达到(但不要超过)整个团队的Capacity。
这本应是自然而然的事情。
不过,在最近的一次培训中,不少学员提出,面对一句话需求,实在是不好处理。于是,就有了下面的对话。
学员:有时候需求提供方就只说了一句话,然后就问,什么时候能交付。
我:针对这种这一句话的需求,你们能明确他们想要实现什么功能吗?
学员:就一句话,不知道什么意思啊。然后就要求我们在指定的时间内交付。
我:建议在收到一句话的需求时,可以和需求提供方继续讨论,在需求明确之前,我们没法评估工作量的,更无法保证在什么时间内完成。
学员:他们规定了我们的交付的时间节点。我想和需求方继续讨论需求,他们总是推脱没有时间,而交付的时间压力又在我们这边。
我:看来是需求方不了解团队的开发流程,得先普及开发流程的基本知识。必须要让需求方了解我们的开发流程:1. 明确需求;2.评估工作量并确定交付时间。如果需求方推脱澄清需求,可以告知对方“如果希望在某个时间点完成,我们必须现在讨论、明确需求”,如果得不到回应,抄送给对方的上司。在明确需求之前,我们无法保证完成时间啊。如果你是Scrum Master或Team Member,就应该向Product Owner明确需求,那是他的责任;如果你是Product Owner,并且需求提供方也无法明确自己的需求,你可以先询问需求的背景,想要达到目的,然后做2 ~3 个方案,供他选择。之后根据反馈再逐步明确。
总之,在需求明确之前,我们无法保证何时能完成的。因为在一个Sprint里,进入Sprint Backlog的User Story在开发之前,必须要评估工作量,而评估工作量的前提是需求已经明确。
学员:以后碰到这样的问题,我就这样试试看。谢谢你。
理论上,要在软件开发时采取敏捷框架,必须先调整组织架构,使之与敏捷保持一致。否则,在很多步骤上会困难重重。
祝他好运吧。
请你留言