其他
如何用研发效能搞垮一个团队
到底什么是研发效能
更高效:价值的流动过程必须高效顺畅,阻力越小越好。 更高质量:如果质量不行,流动越快,死的也会越快。 更可靠:安全性和合规性要保障好。 可持续:输出不能时断时续,小步快跑才是正道,不要憋大招。 更优的业务价值:这是从需求层面来说的,你的交付物是不是真正解决了用户的本质问题。比如:“女生减肥不是本质问题,女生爱美才是”。可以体会一下。
为什么大厂都开始搞研发效能
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
技术的升级正在不断模糊工作和生活的边界早年时候的工作沟通除了面聊以外主要靠邮件,非工作时段老板给你发邮件你有各种正当理由不用及时回复,可是现在及时通讯工具IM(那个消息已读提示,你懂的)再结合各种ChatOps实践,已经让工程师已经无法区分什么是工作什么是生活了,这难道是我们想要的吗?
部分精彩议题已上线: