上次我们聊到「助力DevOps落地与研发效能提升——PPPI实践要素」,那么平台、流程、人三个要素究竟如何建设呢?平台是流程的载体,加速标准流程的落地执行,没有流程规范,平台建设缺少理论基础和依据。因此,我们今天先聊下企业级研发流程规范如何建设。
01 基本原则
原则一:业务价值
无业务价值不立。一切研发活动要以实现业务价值为准则,业务价值是与企业目标对齐,也可以是给客户带来价值、创造企业利润相关的活动。所有研发人员要懂业务、以实现业务价值为行动标尺。
原则二:质量为本
一次质量事故就可能导致公司蒙受巨大损失。要全流程质量内建,涵盖需求、开发、测试、发布、线上运维等,建设质量门禁和SLA(服务级别协议)体系,完善监控和告警机制,并持续投入。
原则三:快速迭代
乌卡时代的今天,快就是优势,首发优势很重要。要基于精益、敏捷开发等思想快速开展业务,快速试错,快速验证商业模式是否符合预期。减小需求批次大小,需求粒度可控制在不超过两周、紧急需求一周内或几天内即可上线。
原则四:工具引领
能引领卓越的只有少部分人,先进的工具能拔高研发水平,一些工作只需要按照工具指引操作即可。工具能提升研发人员一致性,兜底约束行为,工具卓越则人员工作质量又快又好。当然研发工作是创造性活动,工具不能完全覆盖,但确实能引领。
原则五:学习先进
软件的世界是开放的世界,要杜绝闭门造车。DevOps、DevSecOps、BizDevOps的先进理念和最佳实践层出不穷,开源和商业化的先进工具很多,业界优秀大厂的实践案例都是我们学习的绝佳素材。
原则六:持续改进
研发流程规范必须持续改进,不要因为一成不变伤了研发人员的心,要定期检查改进,问卷调查和复盘改进都是很好的措施。流程执行可以「先僵化、再优化、后固化」,因为「没有推行就没有执行」,但优化无比重要[1]。
02 基本要求
要求一:基本流程标准化、统一化
要有基本研发流程,各阶段都需要有,有了这个,才能稳住研发质量和效率的下限,否则就可能是各种暴雷。
要求二:流程规范覆盖软件研发全流程
流程规范要全面,否则就不能算是企业级的,无法真正服务于日常研发活动。
这些标准化流程包括:
1、需求管理,包括需求怎么收集、怎么分析、怎么评审、怎么执行(项目怎么管理)、怎么验收等等;
2、开发,包括怎么设计方案、怎么定义接口、怎么前后端联调、使用什么语言和研发框架、代码审查、单元测试、持续集成如何做等等;
3、测试,基本的测试流程如何,是否都需要进行功能测试、集成测试、安全测试、压力测试、兼容性测试等、各测试环境怎么管理、测试缺陷怎么管理、质量门禁如何设计等等;
4、发布,包括变更管理规范如何、发布审核如何做、低风险发布相关发布策略怎么运用、服务发布到预发布和生产环境前后如何进行自动化验证和手工验证等、观察多长时间等等;
5、线上运维,监控告警如何做、预案和演练如何做、线上事件和故障如何快速响应等等。
要求三:能够牵引并指导日常行为,提升研发人员素质
流程规范要具体,需要研发人员看到后就大致知道怎么做了。比如说,开发每次提交代码量不宜过大,可明确建议不超过200行。
要求四:各流程轻量化、自然衔接,以「不阻塞研发人员」为制定指南
繁琐的流程是DevOps反模式,只要卓越的工具和工程手段能看护住基本的质量问题,并通过强制的低风险发布和运维变更等控制手段把风险的爆炸半径控制住,走轻量化流程对效率和提振信息很重要。研发人员会被激发更多的主人公意识和企业归属感。Facebook就是以「不阻塞研发人员」为基本原则的,全流程顺畅,顺利自然地衔接,这对提升研发效能非常重要[2],
要求五:明确各角色岗位职责
各角色也要明确职责,明确的分工和清晰的职责范围,也有助于加强团队各角色之间的协作。也可以为了加强协作,对各岗位的职责进行针对性设计。比如,运维BP驻守业务团队,按团队采用项目责任制等等。
03 范例
我们在这里给出一个规范的案例:
《某企业研发流程规范》
一、基本原则
1、业务价值:一切研发活动要以实现业务价值为准则,业务价值是与企业目标对齐,也可以是给客户带来价值、创造企业利润相关的活动。所有研发人员要懂业务、以实现业务价值为行动标尺。
2、…
二、基本要求
1、研发基本流程统一:任何需求都需要测试后才能上线,…
2、…
三、需求管理
1、…
四、开发
五、测试
六、发布
七、线上运维
八、度量与持续改进
04 总结
今天我主要给大家介绍了研发流程规范如何建立,介绍了六大基本原则,分别是:
业务价值、质量为本、快速迭代、工具引领、学习先进和持续改进****。
为保障规范可有效落地执行,我们也提出了几点基本要求,包括:
1、基本流程标准化、统一化;
2、流程规范覆盖软件研发全流程;
3、能够牵引并指导日常行为,提升研发人员素质;
4、各流程轻量化、自然衔接,以「不阻塞研发人员」为制定指南;
5、明确各角色岗位职责。
之后,我们也给出了一个具体的《规范》范例,可以参考拟定相关适合自己公司的相关规范内容。
本篇中我们无法对研发流程的具体实践作详细的介绍,包括需求如何管理、敏捷开发如何做、持续集成、持续交付如何做等等,在之后的实践篇,我们再详细介绍,敬请期待!
参考:
[1] https://www.toutiao.com/article/7152338039086563875/
[2] https://time.geekbang.org/column/article/125840