左移 (Shift Left)

是什么

如果将软件开发的生命周期视为一个从左到右执行的阶段线,左移中的左指的是这个生命周期的早期阶段。 左移是在软件开发生命周期的早期阶段实施测试、安全或其他开发实践,而不是朝着结尾方向(右移)进行的实践。

虽然左移最初用于指代早期测试的流程,但现在也可应用于软件开发和 DevOps 的其他方面,如安全和部署。

解决的问题

如果安全问题、漏洞或软件缺陷是在开发周期的后期或部署后才被发现,特别是如果软件已经被部署到生产环境中, 那么到那时再修复很可能比较困难且成本昂贵。

如何帮助

通过采用左移的软件开发思维方式,各团队可以在整个开发生命周期中实施测试并确保安全。 由于测试和安全的责任由开发团队中的所有人(从软件工程师到质保测试到运维)共同承担, 因此每个人都在确保应用程序的稳定性和安全性方面发挥着作用。

此外,左移使持续改进成为可能,采用的是敏捷开发而不是瀑布式开发方法。 各团队可以小幅迭代优化,并及早发现问题。 这种方法使工程师们能够在设计和架构阶段就采用确保安全和安全开发实践。 在整个开发周期中进行测试可以减少软件发布前所需的测试时间。

许多软件工具和 SaaS 解决方案有助于将这些实践向左移。 然而,左移也可以通过改进团队的流程和文化变革来实现。