谈「效」风生 | 谈到提升效能,我们应该如何下手?

2023-03-28 17:31
#第2期:谈到「提升效能」,我们应该如何下手?#

我们在上期中得到了两位技术人对“研发效能”和“DevSecOps”概念的理解和观点,两位都表达了“研发效能”的定义是让组织内部的研发团队在生产力和效率上得到优化,以达到更高效的交付和更优质的产品。而分歧点在于,“研发效能”和“DevSecOps”对“安全”方面工作的侧重点不同。

本期我们访问其他两位一线技术人,深入解析一下关于“研发效能”和“DevSecOps”的疑问,并聊聊“效能提升”工作如何开始。
受访者 A:某互联网大厂 业务技术负责人 董经理

受访者 B:某云厂商 资深研发工程师 周工



上期的嘉宾提到「研发效能」和「DevSecOps」在安全上的侧重不同,想请教两位在实践「研发效能」或「DevSecOps」的过程中,它们的目标有何不同?

A:“研发效能”的目标是提高软件开发过程中的效率和质量,以便更快地交付高质量的软件产品,确保研发体系能够始终向着更高效率、更高质量、更高可靠性、更高价值前进。

“DevSecOps”是一种将安全性纳入软件开发过程的方法,更强调在软件开发的每个阶段都要考虑安全问题,“DevSecOps”更加注重安全性,而研发效能则更加注重效率和质量,这其实需要根据企业性质或业务要求,来确定“安全的权重”,“DevSecOps”的本质也是提升我们的效能。


B:“研发效能”和“DevSecOps”在目标上有很高的一致性,实践起来两者的度量指标也有很多相同的地方。平时与大家聊天时,发现很多人认为“安全”会影响研发效能的提升,我比较同意董经理刚刚所说的“研发效能”和“DevSecOps”的差异在于“安全的权重”,需要根据业务要求来决定。如果说业务要求很高的安全性,那么研发流程中除了必要的安全测试,可能还需要为其进行加固、安全审计、运行时安全检测等安全工作,在此基础上,“DevSecOps”不断地优化工具、流程、组织以确保效能的提升。


现在很多企业或团队开始重视「研发效能」,当意识到效能需要提升时,要如何开始?安全方面的工作要做什么?

A:我认为提升“研发效能”的关键是要建立一个高效的团队和流程。
首先,我们需要评估当前的研发流程,找出其中的瓶颈和问题,我们可以采取一些措施来改进流程,比如:引入敏捷开发方法、优化代码审查流程、加强团队协作等。
此外,我们还可以投入更多的资源来提高研发效率,例如增加研发人员、提升现有开发人员素质、提供更适应流程的自动化工具。
在安全方面,我觉得应该先建立一个安全培训计划,提升研发人员的安全意识是一个重要工作,然后在流程各环节中选择合适的安全工具,包括:漏扫工具、白盒测试工具、灰盒测试工具、还有治理开源的SCA工具等,与缺陷平台或研发平台集成,加快缺陷的反馈和修复,确保缺陷问题的响应速度更及时。
提升“研发效能”需要进行全局的考虑并细化执行细节,用明确的度量来驱动效能的提升,不断地优化改进。
B:提升“研发效能”的实践方法有很多,实践开始的方式和上述A所说的比较相似,我补充一下。
第一点,首先是对现有研发流程进行评估,包括流程分析、过程数据分析、人员能力评估、工具性能评估、代码质量管理、开发周期管理等,这些都是存在较大问题的地方。
第二点,对自动化和工具化的追求,是提高效能的有效手段,可以包括自动化测试、自动化构建和部署、自动化代码审查等。但以现在的工具能力来看,在需求分析、架构设计、风险评估这些环节很难用工具替代。
第三点,设立度量指标,设立明确的目标和度量指标,监控研发效率和质量,及时调整和改进。
而安全方面的工作,我认为其核心思想是以“人、技术、运营”为要素的纵深防御策略。
“人”是第一要素也是最脆弱的要素,所以这也是追求各环节自动化和工具化的原因之一。对人采取安全意识和技术培训、技术管理、运营管理等措施,来减少人为安全因素。
“技术”是实现研发安全的重要手段,包括引入各种安全工具、应用新的安全技术、建立更适合研发流程的安全平台等。
“运营”是将目标和技术串联在一起的过程,在流程中加强对风险的评估、安全检测、流程监控、安全审计、运行监控、响应恢复等,上线前做过程提醒和质量卡点,自动化体系化的完成产品投产前的一些列检查确认工作。
本期我们探讨了“研发效能”和“DevSecOps”的目标和我们该如何开始“提升效能”工作。两位技术人对本次话题的观点有较高的一致性。
对于“研发效能”和“DevSecOps”来说,实践目标都是“提升效能”,而因业务的性质或要求的不同,对“安全的权重”则不同。
对于如何着手开始提升“研发效能”,两位都给出了四个要点:
  • 评估现有流程

  • 引入自动化工具

  • 建立度量指标

  • 持续改进