技术保障体系建设对于技术团队来说至关重要,为技术团队的交付效率、研发质量、系统稳定性以及资源成本做保障,很大程度上决定着技术团队的研发效能和技术体系的运转效率。互联网时代的业务形态变化快,对质量、效率、成本的要求更高,技术保障体系的作用越来越大。同时,DevOps 在各大互联网公司已经成为技术团队开展数字化转型和研发效能提升的可行性指导方法,进而也可作为技术保障体系建设的实施框架。
背景
作者曾就职于一家国内知名餐饮互联网公司,致力于餐饮产业全环节信息化、标准化和创新化的企业,技术团队规模500+。如同大多数创业公司一样,初期以追求满足业务快速上线为主,很难放缓脚步进行全面的技术体系建设,更没有充分时间进行技术保障体系建设。随着时间的推移,技术上的缺陷逐渐暴漏出来,甚至影响到业务的发展。
具体表现为如下6点:
系统编译、部署方式复杂,上线成功率低且耗时较长,一次上线经常持续到深夜。
缺少高可靠体系建设,故障发生时恢复时间较长甚至难以恢复。
IT资源管理混乱,带来严重的管理及安全风险。
研发缺乏有效的工程实践方法,研发效率和质量亟待提高,短时间内靠招人解决。
集中交付的研发模式以及强瀑布的项目管理方式无法满足频繁变更的业务形态。
技术团队的管理方式比较粗犷,缺乏有效的方法体系和平台工具支撑。
为解决这些问题,作者作为研发效能负责人,引导技术团队进行DevOps转型,通过组织的工程实践能力、制度体系、流程规范、平台工具几个方面进行了技术保障体系的建设规划。经过团队全员1年多的努力,初步完成技术保障体系建设。
本文将从5个维度讲述建设技术保障体系的方法。
技术保障体系包含5大基础保障体系:代码质量保障体系、测试质量保障体系、自运维管理体系、度量指标体系、稳定性体系,为技术团队的工程实践能力提升、产品研发流程规范落地、项目高效管理、研发效能提升等做保障。(限于篇幅,将概括性讲述)
同时,基于技术保障体系,作者主导搭建了技术团队的质量保障体系和精益运维体系(作为技术运营体系),作为技术团队研发质量和效率管理、系统稳定性管理的运营手段。作者通过项目(质量保障项目和精益运项目)的形式推进2个体系的周期性运转,同时希望通过大齿轮带动小齿轮的方式,确保技术保障体系的稳定运转。此部分,将在后续文章分享。
基于技术保障体系的质量保障体系
在管理方式上,以分层度量管理的方式驱动技术团队的反馈和改进:在CTO 层面,组建推进小组,把控改进方向,协调过程中问题解决;在技术部门负责人层面,通过部门质量分驱动发现问题和协调资源;在团队小组负责人层面,通过工程实践方法和平台工具最佳实践的方式,提升团队的工程实践能力和自运维能力,解决他们遇到的阻碍性问题。
下文将分别介绍技术保障体系中各基础保障体系的建设过程。
代码质量保障体系
对于技术团队而言,代码质量的重要性不言而喻。不过,在技术团队落实代码质量保障体系之前,研发团队表现出严重的问题。
集中交付的研发模式导致研发人员集中提测、集中上线,问题也会集中爆发,往往因为上下游服务依赖、协作沟通不畅导致项目上线延期。
研发提测质量差,导致测试时间严重压缩,职能间出现互相抱怨现象,协作效率差。