人走的太远,总是忘记出发时候的目的,工作中也要时时刻刻的自省,重构并不应该是一种常态,敏捷交付才是一种对团队和项目/需求最健康的一种方式,在我们开发过程中,逐步有针对性的优化敏捷周期开发时间,能解决项目/需求功能规划以及开发过程中的沟通协调推进等问题。
具体来说就是对项目/需求周期进行结构梳理,两周或三周为固定周期的版本迭代频率,必要时甚至可以短于两周的发版频率快速上线,用敏捷的思路持续改进项目或增量式开发新版本。而我们在每次的发版后,都需要在几个方面进行复盘有哪些地方需要改进和优化。
一. 交付成果复盘。
敏捷开发中快速迭代不一定是快速交付。项目/需求开发初期我们有可能遇到很多问题,节奏快了,未必等于是快速有效的项目/需求交付。原因可能有以下几点。
1. 项目/需求不靠谱。自己团队成员给出的需求不靠谱,一个需求可能要开发,或者测试时才发现不完整或自相矛盾,在研发过程中再设计的细节,甚至在这些往往是研发效率低下的罪魁祸首。
2. 研发不靠谱。研发的效率不靠谱,有时是因为士气低落,抵触情绪大,更多的时候是因为前面系统开发留下了很多坑,系统耦合严重,牵一发而动全身,或者不靠谱的前期框架已经为后期开发留下了坑,前行缓慢。
3. 流程不靠谱。流程是沟通的信息流,有时存在环节上或者流程上的瓶颈,需要根据不同的原因加以想要和调整,主要的工作流程而导致的问题,规定流程,和流程相应时间,才能发挥规范流程而带来的优势。
二. 价值传达效果复盘。
负责人需要传达并统一对项目目标的理解和价值认同。
在新版本开发之前,通过启动会或者其他方式明确传达,并统一对本次版本目标的理解和价值认同,知道我们为什么这么做,我们真的必须这么做,只有理解了这些认同了这些,才会心甘情愿的去做,而不仅仅是老大让我这么干,同时借此机会也可以明确兄弟团队开发过程中的一些规则和底线。
三. 变更管理复盘
加强各版本内的变更管理,减少不必要的失误导致的变更。
紧急上线的目的是为了快速响应市场变化或者处理问题,甚至可以前期占据用户心智,引导用户习惯,并不是为了不成熟的需求方案买单,快速迭代和交互的方式可以让团队在版本程序上充分灵活,因此我们尽可能对版本内的变更,进行控制和管理,是那些不成熟的需求方案所导致的变更,在版本内尤其是版本的后期变更进行限制和约束流程是必要的,如果真有商业因素导致的变化,让我们尽量启动新的版本快速交付。
四. 会议效果复盘。
开会是项目/需求建设的任务之一,会议效果是需要时时刻刻审视和反思的事情。每天不到15分钟的时间进行团队间的快速沟通,包括状态和问题。站会目的不是汇报工作,而是需要相互了解小团队的工作进度,提出需要协调的问题。需要注意的几点:1、可采取一定的惩罚措施向团队成员强调准时的概念,让团队成员从心底重视站会。2、团队成员的发言要简明扼要,重点突出,避免冗杂信息拖慢会议进程。3、站会的目的是让团队成员信息的交互。与会成员应认真聆听,尊重他人,尽量不打断别人。4、在站会中可提出问题,但不用解决问题。5、在会议中不谈论与会议无关的话题。6、站会应固定每天在同一时间同一地点召开。
五. 进度展示效果复盘。
版本进度状态信息展示同步,展示以及更新,无论是敏捷,或者是大版本交付,良好的项目状态展示都是版本交付控制的重要组成部分,对于大版本压力状态更新需要加大频率,更准确,更及时的状态,提示问题并寻求解决方案。进度展示并不是机械的汇报进度,或者记录状态信息,是要向整个团队报告进展情况。更重要的部分在于及时发现问题和风险,并制定解决方案并落实,从形式上来看,看板往往能起到更好的共享和实时提示作用。
六. 质量认知统一程度复盘。
团队需要明确统一的定义质量标准。对整体的版本交付负责,对于测试的开始和完成,需要制定明确的质量标准,比如,验收标准,或者,冒烟测试100%通过方可提交测试。质量标准需要在版本启动会之前就明确,在启动会上宣布,冒烟测试用例需要测试尽早提供给开发,便于有针对性的进行教育,实践中我们发现测试的准入标准更为关键。
七. 降级复盘。
新版本开始之前,需要查看之前所记录降级的需求,并排入版本计划。在迭代初期,上次迭代未开发的功能需求,或者某些设计的扩展性做一定妥协,在后期的版本,要确保在同样进行优先级排序,并借助新版本计划,也就是说,我们并不否定自身全面的考量,临时妥协可以,但长期积累势必影响系统的长远发展,无论是涉及交互,或者涉及技术等部门的妥协,每个常规版本中迭代,都必须保证一定比例的偿还任务。
八. 复盘矛盾冲突
团队情绪管理和人际问题,早预防,早发现,早协调。加班不可避免,有时稍作一些调整就能化为众乐乐的和谐气氛,比如说准备一些食品犒劳大家。大家在加班时就会对食物有一些小期待,也顺带这样的茶歇时间让大家起来出去走走聊聊。提升团队气氛,当然请大家搓一顿也可以给加班增加一些亮色,对确实有特殊原因的同事,也可以接受在家里加班的方式,当然首推还是团队一起协作,效率更高。
我们在每个版本的迭代的过程中,不但要努力的工作,而且更应当时时刻刻的反省自己,以及整个工作流程中所遇到的困难及问题,我们及时改正各种各样的问题,才能让整个团队,整个流程的运作,保持一个健康稳定的状态,这样才是对团队最有意义的。