Regular catch up with client,即 定期跟客户进行沟通,双方共同商议一个时间(工作时间最佳),一起开个短暂的小会,时间上的成本较低。
Catch up的主要参与人员是BA(PM)和TL,通过于客户方Face2Face会议或者online会议进行一个短暂的沟通,沟通内容主要涉及:
因项目而异,Catch up实践可以大体分为两种:
通过与客户进行定期的沟通,产生的价值主要体现在客户信任和客户关系方面:
并不是每一个项目都会有这个实践,有些独立交付的项目,他们每日站会的时候客户也会参与进来,就不需要额外单独的时间去做这件事情了,而有些项目,因为特殊性,客户可能不希望这么频繁的Catch up,这时候需要团队灵活变通,与客户一起商讨出一个合适的时间周期,做出一些权衡,让客户自身觉得舒服。总之,Keep住的一点是:保持跟客户的信息沟通,尽可能早的得到客户的反馈,保持良好的客户关系。
3、Standup
Standup是一项成本小收益大的活动,做好它是敏捷的第一步。
Standup,就是每日站会。我听过一个有趣的事情:在敏捷开发方法兴起的时候,很多传统开发模式的团队跃跃欲试,他们选择从Standup切入。然后每天早上上班后,大家聚在一起开个会(站着、坐着都有),然后该怎么做还是怎么做。他们会对别人说,我们在搞敏捷开发…
没错,Standup就是团队在一起快速地开一个会,大家挨个的更新一下自己的状态,更新包含以下几个方面:
既然是快速的会议,Standup的时间就不宜过长,建议5~15分钟。最好是站着开会,因为研究表明,当人们坐着开会的时候,会议的时间会被无形中拉长。Standup的时间安排在工作时间开始后的半个小时最佳(比如9:00上班,9:30开始),这样大家就不用一到公司就急急忙忙的参加Standup,大家有个缓冲的时间,比如说设置电脑,泡咖啡,沏茶,整理今天的todo list等。
没有什么特殊原因的情况下,确保团队成员都要参加,如果一些人因为特殊原因经常不按时到,适当调整Standup的时间,但也不宜太晚。
而对于规模很小的团队(3~5人),也强烈建议执行Standup,因为它的成本真的很低。
或许有人会觉得:大家天天都在一起工作,沟通如此方便,何必要这项活动? 这有点深处酒巷中不觉酒香的味道了。站会能够给团队带来的价值不容忽视:
Story由BA预先写好,并通过专业的敏捷管理工具进行管理。DEV在kick off的时候,BA会给DEV讲解这个Story要完成的功能,以及它的AC。DEV如果对其中的描述有任何疑惑,需要及时提出来,当场弄明白才可以正确的去完成这些功能。在后续的开发过程中,如果碰到任何疑惑,随时找BA或者QA了解清楚,不应该自己猜测着开发,更不可跟着心走。
Story kick off 的核心目的是确保DEV开发出的功能都是符合客户期望的。而Story本身存在错误并不在讨论范围之内。实际上在开发过程中,也未发生过这种情况,因为一旦客户的需求变更后,Story卡也会及时变更过来。Story kick off 可以follow以下实践:
Story kick off也是一项短时间高收益的活动,因为在我们DEV界中,有一句邪门的定律:
猜出来的需求往往是不靠谱的,最终需要打回重做!
所以kick off能够有效的避免Dev自行臆测业务需求而产生的浪费。除此之外,能够弥补BA在编写Story的时候技术视角的一些遗漏。
一些项目会引入好的开发实践,比如说BDD。它能按照人类自然语言去描述一个功能的实现。我们的Story描述通常会参照这种方式: as...when...then...when...then。这个时候,DEV、QA、BA可以在Story kick off的时候利用一些测试工具(Cucumber)一起来编写Story验收测试用例(主要由QA来编写),DEV负责编写代码来通过这些测试。理想情况下,验收测试用例如果正确完整,当所有测试都通过后,意味着Story功能已经完成。而且这种TDD的方式,代码出现bug的几率也会大幅度降低。