如何用研发效能搞垮一个团队
到底什么是研发效能
更高效:价值的流动过程必须高效顺畅,阻力越小越好。 更高质量:如果质量不行,流动越快,死的也会越快。 更可靠:安全性和合规性要保障好。 可持续:输出不能时断时续,小步快跑才是正道,不要憋大招。 更优的业务价值:这是从需求层面来说的,你的交付物是不是真正解决了用户的本质问题。比如:“女生减肥不是本质问题,女生爱美才是”。可以体会一下。
为什么大厂都开始搞研发效能
01
02
03
研发效能真的能够提高吗
软件架构本身的复杂度提升(微服务,服务网格等) 软件规模的不断增长(集群规模,数据规模等) 研发团队人员规模不断扩大引发沟通协作难度增长
减缓研发效能恶化我们能干啥
可以通过All-in-one的开发环境降低每位开发人员开发环境准备的时间成本,同时又能保证开发环境的一致性。更高级的玩法是使用云端集成开发环境IDE,实现只要有浏览器就能改代码,这一领域国内典型的代表就是腾讯云CODING旗下的Cloud Studio以及Github目前处于beta测试阶段的CodeSpaces。
可以借助基于AI的代码提示插件,大幅度提升IDE中代码的开发效率。输入一段相同的代码,不借助AI代码提示插件,需要敲击键盘200次,启用插件可能只需要50次键盘敲击,这样可以更容易让开发工程师进入“心流“状态,实现”人码合一“。
代码的静态检查没有必要等到代码递交后由CI中的Sonar流程来发起,那个时候发现问题再修复为时已晚,完全可以通过Sonar Lint插件结合IDE实时发起本地的代码检查,有问题直接在IDE中提示,直接修复,这样开发工程师会更愿意修复问题,因为成本更低,也不会引起修复后的再次发版。
单元测试比较耗费时间,可以借助EvoSuite之类的工具降低单元测试的开发工作量。
对于规模较大的项目,每次修改后编译时间比较长。可以采用增量编译,甚至是分布式编译(Distcc和CCache)提升效率,对于Maven项目还可以通过缓存pom依赖树进一步降低编译时间。
前端开发可以借助JRebel和Nodemon之类的工具使前端开发预览的体验更流畅,实现前端代码的“所见即所得”,避免重复的编译、打包、部署和重启步骤,以此提高开发过程的流畅度。
选择适合项目的代码分支策略对提升效率也大有帮助。
构建高度自动化的CI和CD流水线将大幅提升价值的流转速率。
选择合适的发布策略也会对效能和风险之间的平衡起到积极的作用。比如架构相对简单,但是集群规模庞大,优选金丝雀,如果架构比较复杂,但是集群规模不是太大,可能蓝绿发布更占优势。
引入DevSecOps与DevPerfOps实践,使安全和性能不再局限在测试领域,而是形成体系化的全局工程能力,让安全测试成为安全工程,性能测试成为性能工程。
...
研发效能的“罗生门”
01
02
03
04
05
06
07
研发效能的“冷思考”
最后,回到工程师层面,研发效能的提升对我们而言又意味着什么?
01
02
赞 (0)