1. 如何理解研发效能
研发效能的完整定义应该是:团队能够持续地为用户产生有效价值的效率,包括有效性(Effectiveness)、效率(Efficiency)和可持续性(Sustainability)三个方面。简单来说,就是能否长期、高效地交付出有价值的产品。
在互联网行业内卷加剧的情况下,如何能更好的破局,而不是一味的推崇996,研发团队的效率就显得格外重要。开发流程的顺畅是生产优质软件的关键因素,只有这样才能最大程度地释放开发者的创造性和积极性,所以提高“研发效能”,我们更多的是围绕整个软件开发的生命周期,这里就不得不说一下“DevOps”和“云原生”。
2. DevOps
DevOps=Developers+Operators,字面上看,是指开发团队和运维团队一体化,通过工具辅助开发完成运维的部分工作,减少成本,尽可能地为公司创造更多价值。但是我们知道,任何一个产品或者项目从最初的需求意愿到最终的上线交付,中间不仅仅是只有开发、运维两两个角色就能完成,还包含产品、测试、QA、甚至商务、销售团队的人员共同参与才能完成。 因此在人们不断的实践过程中,DevOps逐渐扩展为整个软件研发过程的管理思想和方法论,它:
- 是一组过程、方法与系统的统称,包含开发、测试和运维;
- 重视软件开发人员(Dev)和IT运维技术人员(Ops)之间沟通合作的文化、运动或惯例,改善团队之间的协作关系;
- 用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合;
- 透过自动化“软件交付”和“架构变更”的流程,使得构建、测试、发布软件能够更加地快捷、频繁和可靠,按时交付软件产品和服务;
DevOps在实施的过程中,往往是由最了解整个系统的开发人员来负责生命周期,包括自动化测试、线上服务观测,而传统的测试团队来为测试平台、工具提供支撑,运维(SRE)团队为运维平台、工具提供支撑。 DevOps其实就是通过打通Dev和Ops来提高研发效能,结合持续集成、持续交付、持续部署来提升交付效能。为了实现DevOps,除了团队协作、文化这些软性因素,更重要的是CI/CD流水线的建设。
2.1 CI/CD
CI/CD是指持续集成(Continuous Integration, CI)、持续交付(Continuous Delivery, … 阅读全文