研发主管的烦恼:没有Product Owner有效参与的Sprint迭代能交付可工作的软件吗?

没有Product Owner参与的Sprint迭代能交付可工作的软件吗?

近期Jackson管理的研发中心有一个优先级极高的项目在第一次交付时出现了严重的质量问题,客户在UAT阶段发现了超出预期的缺陷,而且最重要的是有两项开发完成的功能并不是客户所期望的,不能满足客户的业务需要。客户写了一份问题报告通过正式的邮件发送给了负责该项目的Scrum Master和Jackson,并提出了4项明确的要求:

(1)停止后续功能开发,现将客户需要的两项功能开发完成,并且在2周内立刻交付;

(2)修复已知的缺陷;

(3)对Sprint#1~Sprint#3开发的需求做更加完善的测试,包括:功能测试、性能测试、安全性测试、代码质量检查。

         并将测试报告提交给客户。

(4)改善开发质量,实施质量改善活动。

收到客户方的正式邮件之后,Jackson 向负责这个项目的Scrum Master了解情况:

从Sprint#1开始,客户方的Product Owner(PO)移交了开发需求后,因为PO还负责另外一个新产品的计划工作,所以基本就不再过问开发情况了,只是在Sprint开发快结束时,让 Scrum Master通过邮件报告一下Sprint的开发进度是否正常,是否能够如期进入下一个Sprint迭代;之后,就是移交下一个Sprint的开发需求。这样工作模式一直持续到Sprint#3开发结束。

对于Scrum团队提出的关于需求的问题,Product Owner(PO)指定了另外两名未来会使用该软件产品的业务人员负责澄清需求。而在沟通过程中,Scrum Master抱怨那两名业务人员:

(1)对于需求的澄清效率也不高,邮件回复的不及时;

(2)有一些问题回答的不清晰,让开发团队考虑业务实现细节;

(3)Sprint#1~Sprint#2开发中PO没有仔细确认每个Sprint的功能是否实现,缺少必要的验收活动;

(4)JIRA上User Story的更新信息不完整。

Jackson和Scrum Master以及Scrum团队交谈完,意识到项目交付失败的原因是双方面的:一方面与Product Owner在Sprint迭代开发中参与度不足有直接的关系;二是Scrum Master和Scrum团队缺乏必要的敏捷开发经验,尤其是Scrum Master其实根本不理解Product Owner的重要性。

没有Product Owner有效参与的Sprint迭代能交付可工作的软件吗?答案是:显然不能。

Product Owner在每个Sprint迭代中,行动不限于:

  • 创建和维护 Product Backlog
  • 为Product Backlog进行优先级排序(Prioritize Product Backlog)
  • 为每一个Sprint迭代分配Product Backlog
  • 协助Scrum Master组织项目会议
  • 参加Scrum Planning Meeting
  • 参加Scrum Retrospective Meeting
  • 与Scrum Master和Scrum Team沟通用户需求,并澄清需求,反馈团队意见
  • 维护Scrum Master和Scrum Team 与 Stakeholders之间的关系(尤其是信任关系)

如果要避免这个项目产生的问题,必须要从以下几个方面进行纠正活动:

1. Product Owner(PO)必须要保证充足的时间和精力参与到Sprint迭代中

PO绝对不是一个摆设,也不是随便从客户中选择一个了解业务的人就能够来充当PO角色的。PO必须要与Scrum Master和Scrum团队有效合作,才能够确保Sprint迭代顺利进行。

首先,PO要为最终发布的产品质量负责。开发和交付质量出现了问题,尤其是发生了Scrum团队交付可工作的软件时,出现了功能与需求不相符的情况,PO是第一个应该检讨的人。PO是Scrum开发一个重要的组成部分(一个重要的角色),而不仅仅代表客户移交需求。PO要非常清楚产品需要实现的功能,需要及时澄清Scrum开发团队对于需求提出的问题和困惑,给予准确的答复。

其次,PO需要及时维护和更新JIRA上关于Epic和User Story的信息。PO要和Scrum Master一起梳理好Sprint的划分,在每个Sprint中按照优先级分配好User Story,并且需要和Scrum团队进行Review。当存在变更时,需要及时共享变更的信息,并在JIRA上更新信息。

接下来,PO需要能够为Scrum团队的成长提供有效的意见;为实现Product Vision负责;确保产品功能如期发布(Release);能够总结产品开发和发布过程中,和产品发布之后关于功能和质量的经验教训。PO是产品干系人和Scrum Master、Scrum Team之间沟通的桥梁,PO自己要做到100%理解敏捷开发和Scrum过程框架,尊重并推崇敏捷开发文化和Scrum框架(规则)。

是不是对PO的要求太高了?
 

绝对不是。每一次Sprint迭代,能够成功交付都是Scrum中PO、Scrum Master和Scrum团队努力的结果,缺少任何一个角色的努力都是不行的。PO不能以自己是客户方而“只提需求,不认真澄清需求”;不能以“自己很忙等”为理由而不能确保参与Sprint迭代的时间和精力。这样的PO首选就为交付失败输入了潜在的风险。

2. Scrum Master是Scrum规则的维护者,当遇到不利于Sprint迭代进行的事件发生时要努力寻求解决方法,做好沟通。

Scrum Master不能够随意对PO和Scrum团队妥协。

3. 每个Sprint中需要有明确的测试通过标准和执行测试,及时分享测试结果给产品干系人、PO和Scrum团队成员。

真的做了Unit Test吗?覆盖率达到了多少?测试结果如何?

真的做了Sprint Test吗?相信大多数Scrum团队是使用手工测试方式进行。发现了多少缺陷,是否所有的缺陷都修复了?是否进行了有效的回归测试?Sprint Test的覆盖率达到了多少?

是否有专门的测试团队执行Code Inspection、安全测试和性能测试等?这些测试谁来做?什么时候做?通过与否的标准是什么?

4. 交付之前的QA活动不必可少。

交付之前QA活动有哪些?QA在什么时间执行什么活动,从而确保项目能够成功交付?(包括阶段性交付和项目的最终交付)

不要等到事情发生了再去充当“救火队长”。谁都不愿意时常“救火”,尽管有时候看起来“很酷”。

Jackson眼瞎需要思考和解决的问题还非常多。把问题都写在白板上,时刻看看,寻找解决方法。

  1. 为什么有两项开发完成的功能不能满足客户的业务需要?分析原因。
  2. 为什么客户在UAT阶段发现了超出预期的缺陷?交付前进行了哪些测试?测试结果是什么?是否存在测试遗漏的情况?测试是否通过?测试通过的标准是什么?
  3. 如何在接下来的两周内满足客户的需求,即两周内交付客户需要的2项功能?
  4. 测试团队如何进行测试,并报告测试结果?
  5. PMO和QA针对现有的开发方法、标准、流程进行进行检查,是否存在问题?存在什么问题?如何改善开发质量?

Jackson头疼了,…… BOSS的邮件还没有回复,这时桌上的电话响了……

发布了619 篇原创文章 · 获赞 185 · 访问量 66万+

猜你喜欢

转载自blog.csdn.net/seagal890/article/details/102019705