上午,质量系统产品负责人来找我,说是开发进度不理想。
开发团队(Team)在保定,属于开发中心的人。产品负责人(PO)在北京,属于创新中心的人。我在北京,但负责保定方面的事情。
PO说了两件事情:
1、当前进度不理想。PO是在一个多月前提的需求,定的目标,这两天发现进度有问题,完成的质量也不高。
2、到年底要用2.0替换集团公司在线的1.0,Team说完不成。
而在这之前,我与Team沟通时,Team反映现在2.0的长期目标是什么不清晰,只了解当前迭代要干的事情。产品的负责人是谁也不太清晰。这个产品在8月份换了PO,即现在的PO,但他其他事情太多,在这个上面投入不够,找了一个新同事在负责需求梳理,跟随Team的一些过程,但又没有决策权,也没有进行按迭代的验收。而现在的PO在这一个多月的时间里也没有参与Team的计划会、验收会等,只是最近两天才看了看系统和进展。
经过一番比较激烈的讨论,分析出来了一些原因:
1、PO与Team的沟通出问题了。PO长时间没有与Team的沟通。
2、PO虽然向Team说过几次年底的目标,但并没有引起Team重视。年底的目标是PO定的,并不是客户定的,这可能让Team认为这个节点是可以后移的。PO跟我说是“年底”,我问了他两次是12月底还是春节前,他告诉我是12月底。他有可能传递给Team的是一个含糊的日期节点。
3、PO说到节点前还有5个方面的功能或特性要开发,但具体的需求只向Team传递了2个,剩余的还没有与Team沟通过,而Team鉴于习惯性的自我保护,在还缺乏信息的情况下就说了可能干不完。而PO认为后面的好几个功能或特性都比较简单。
4、PO对Team还是不太信任。Team确实存在团队成员普遍基本功弱、经验不够等问题,PO认为在前面的迭代中Team出现了较多的低级错误,一些作为程序员应该避免的显而易见的问题。另外,Team因为在保定,比较贪安逸,节奏不够紧张。
最后讨论给了一些解决方案:
1、在12月底这个节点一定、现在的Team成员固定的前提下,如果完成有风险,应该优先考虑缩减范围。这个建议PO没有再表示反对,但从内心可能并不认同。一开始我就问他有优先级没有,他说所有的东西都要完成。我拿他要完成的两项举例,一项是要完成1.0版数据到2.0版的迁移功能开发,第2项是要完成4个比较复杂的统计分析功能开发。从我的角度来看,第1项显然是优先级高的,不完成就无法完成2.0版的上线,但第2项就是可以在上线后再加上去的。但PO仍然是传统的项目经理的思维模式,认为所有的东西都要完成,否则没法向客户沟通。我直言不讳的说,PO的一个很重要的职责就是需要和客户去沟通这种问题。最后PO不再坚持,但可能并不真心接受和理解。
2、PO与Team在下午召开一个会议,将余下的需求都讲解一遍,让Team能做出一个规模估算,判断到12月底是否能完成。在下周一上午再开迭代计划会,进行迭代内的详细计划拆分。
3、每个迭代的目标PO先提,然后与Team协商。
4、每周Team将完成开发的功能最新版发布,PO能够查看实际进展。
5、PO这边安排一个测试人员,跟随Team进行测试和验收。开发中心不再安排测试人员进行测试。前两个迭代是Team完成一批开发后,测试人员再进行的测试。而在8月份之前,是测试人员伴随开发人员,完成一个故事即提交测试,但8月后北京这边的负责人认为不需要这个测试人员伴随测试了。
让子弹飞一会儿吧,看看再过一周是个什么光景。