如何优化软件发布延迟问题?
题外话:
作为领导、作为老大,你要知道你要到哪去?你要知道你的团队你要到哪去?你是团队的灵魂。
要做一个梦想家,要不断的学习新的东西、好的东西,要出去走走,看看更好的东西,看看他人是如何做的,才知道自己要到哪里去,你带领的团队要到哪里去。
在软件公司,无论你是做产品还是做项目,都会碰到一个比较头痛而又抓狂的问题,那就是发布延迟。
我们承诺给客户到某个时间节点交付我们的产品功能,在保持一定的交付迭代的进行中,你会发现每次都是延迟交付,而且搞的大家很疲惫。
个人感觉,产品的发布或是项目的发布,主要有三步阶梯:
1.给予客户安慰。
发布是一个信号,是告诉客户,提交的需求、Bug、优化都已经在这个时间点已完成,你可以放心去使用了;如果不再这个时间点交付,客户会陷入焦灼状态,心里不踏实。
2.交付客户功能。
发布是要切实解决、完善客户提交的需求、Bug、优化,解决他们真实的痛点、不爽的地方,完成实实在在的东西;如果不再这个时间点交付,客户继续忍受软件的种种难用。
3.提升客户满意度。
发布一些很帅、很爽的功能,让客户的体验升级,给客户惊喜、给客户更棒的体验,让客户点赞。
一、发布延迟的危害
为什么要优化发布延迟呢?我们做这件事的意义和价值在哪里?那就让我们罗列下发布延迟的危害:
1.外部客户对公司和产品团队的信心渐渐低落和信誉渐渐丧失,客户之间产生负能量导致很多客户的信心降低,丢失很多潜在和优质客户;
2.公司领导层对产品团队、项目团队的信心更是低,对团队不认可,对团队意见很大,团队的名声在公司不太好;
3.产品团队、项目团队自信心也会大打折扣,对自己的状况很糟糕,工作积极性不高,陷入负能量区;
4.对于研发来说,发布延迟的处理办法就是加班、加点的搞,团队陷入疲惫状态,最后还没有取得认可,投入得不到回报,团队自信心不高;
5.容易导致质量不高,团队士气低下,人员离职率高,整个产品、整个团队、整个公司陷入负能量循环,一直走不出来。
其实,不用我说,大家都体会过发布延迟的痛苦了,说多了都是泪哈。
二、发布延迟的原因
既然发布延迟有这么多不好的地方,我们该怎么改进?在改进之前,必须要找找发布延迟的原因,只为了对症下药:
1.对于此次交付,安排的过于紧凑,没有缓冲时间,没有预留突发问题处理时间;
2.对于此次交付,研发交付时间过于接近最后的交付时间,预留给测试回归的时间不够用,容易导致测试不充分;
3.对于此次交付,研发过于自信,提交代码质量不高,在回归测试周期中,问题反复、按下葫芦起了瓢,陷入类似死循环;
4.对于此次交付,研发团队成员能力不足(提交质量差)、团队制度不完善(规避低质量的方法)、研发信息化建设不完善;
5.对于此次交付,测试团队成员能力不足(简单的约束测试)、质量体系建立(提交高质量Bug、测试方法论、自动化测试);
6.对于此次交付,客户的需求变更、应急问题和突发问题的处理、未评估风险的爆发、相关资源和干系人的不到位等对发布的阻碍因素;
7.团队的自我认知能力、团队的学习能力、团队高产出能力、团队节奏把握、团队的激励建设、团队的愿景建设、团队的战斗力提高。
或许你的团队会存在其他种种的原因,不妨思考下,看看是不是有解决方法,不能总是在闷头盲目做事,要学会思考、反思、改进。
三、发布延迟的优化
发布延迟如此让人深恶痛绝,又有如此多因素导致发布延迟,难道就没有解决办法,让团队、公司长久这样下去?
方法还是有的,方法总比困难多,来简单说下发布延迟的优化方法:
1.针对研发计划和测试计划过于紧凑的问题
需要制定发布计划的相关人员,进行优先级筛选,考虑资源、时间、成本等相关因素,与客户进行很好的沟通,
按照一定得交付节奏逐步去完善处理客户的问题,给客户塑造一个可以看得见的未来、美好的愿景、持久的关注力。
2.针对研发团队人员能力和测试人员能力不足问题
一个团队不要保持大家水平相差不对,要有阶梯性,传帮带,新老人一起工作;组织相关的技能培训并考核,不断在实践中去运用;
如果一个团队成熟度比较高,那就可以做彼此的后背,都可以承担彼此的工作,最好还是可以做到术业有专攻,每个人都有自己的强项。
3.针对研发团队和测试团队制度不完善问题
逐步建立团队相关制度,建立制度、坚决执行、定期审查、赏罚分明。
如:研发团队,必须要求进行单元测试,没有单元测试冒烟测试不通过,如何处罚;必须定期组织代码审查;必须严格执行发包流程;
测试团队,必须确保测试用例质量,必须确保提交Bug的质量,必须确保对相关业务熟悉理解透彻,必须确保每轮回归测试将相关模块Bug,提交清晰、完毕。
4.针对研发和测试团队相关体系建立
加强整个研发中心,信息化体系建设,基础信息建设,加强对项目管理方法论的研究和学习,加强测试方法论的学习和实践,体系的建立是个逐步完善,从无到有,
从漏洞百出,各种风险监控不到,到很好的监控项目的各种状态,报告相关参数,并真的提升研发管理效率,节约管理成本。
各种体系的建立可以在项目进行的每个时间点都能很好的监控并能很好的制约、相互制衡,上一个流程想钻空子,下一个流程制衡,外部审查小组监督。
如:成立PMO、成立CCB、成立评审委员会、成立质量审查小组、自动化测试小组、框架技术攻坚小组,研发团队可以制约测试团队,测试团队可以制约研发团队,
研发可以提出测试如何做你才满意,测试可以提出研发如何做你才满意,内部客户,各个体系制度的相关约束和制衡。
5.加强团队建设,提高团队的战斗力
所有的一切都需要人去执行,先让团队很好的认识自我,知道团队的困境和发展的局限;然后帮助团队树立很好的愿景和可以看到的未来;
然后建立一系列相关的学习成长计划,帮忙团队不断的提高能力;然后建立奖惩制度,很好的激励和激发团队的能力,提升团队整体的战斗力。
加强团队建设,鼓励新思想、新思维,保持团队的激情和活力,把学习的东西更好的运用于工作中,做到高效、激情、适应能力、应变能力、战斗力强盛的团队。
关于学习成长的计划,最优先考虑的是如何提高专业的技术能力方面的学习计划,然后可能是生活、家庭、爱情、婚姻等等,关注团队的方方面面。
对你的团队多多投入些,他们会给你意想不到的收获,你会看到他们成长的欣喜,你会看到他们做出成绩的骄傲,你会看到这支队伍的强大。
6.发布是对团队努力的认可
给团队灌输,帮助团队树立正确的发布观,树立正确的质量观,让大家从自我认识、意识层面去关注起来,在具体去执行相关的如何提高我们不延迟发布的措施都能得到认可,达成共识。
发布承接人持续的跟踪每一个时间节点的交付情况,时时关注发布进度和状态,及时的发现问题,排除障碍,不能解决协调资源资源,不能处理,让更有能力的人承接,扫除发包进度中的每一个阻碍,无论是发生在哪个干系人,哪个问题节点,都已发布为宗旨,所有的一切都为交付时间节点的发布而服务。