持续交付能力1.对所有生产工件使用版本控制版本控制是将所有生产工件纳入版本控制系统(如GitHub或Subversion)管理,包括应用代码、应用配置、系统配置,以及用于自动构建和配置环境的脚本。2.自动化部署过程部署自动化是指部署完全自动化,不需要人为干预的程度。3.实施持续集成持续集成(CI)是持续交付的第一步。这是一种定期签入代码的开发实践,每次签入都会触发一组快速测试以发现严重的回归,开发人员会立即修复这些问题。CI过程将创建规范的构建和包,最终将被部署和发布。4.使用基于主干的开发方法基于主干的开发模型已被证明可以在软件开发和交付中实现高性能。它的特点是代码库中的活动分支少于三个。在合并到主分支之前生命周期非常短(例如,不到一天)的分支;应用程序团队很少或从未有过“代码锁定”期,在这种情况下,由于合并冲突、代码冻结或稳定阶段,没有人可以退出输入代码或执行拉取请求。5.实施测试自动化测试自动化是在整个开发过程中连续自动(而不是手动)运行软件测试的做法。有效的测试套件是可靠的,也就是说,测试会捕获真正的故障并且只通过可发布的代码。请注意,开发人员应主要负责创建和维护自动化测试套件。6.支持测试数据管理测试数据需要精心维护,测试数据管理已经成为自动化测试中越来越重要的部分。行之有效的方法包括拥有足够的数据来运行您的测试套件、按需获取必要数据的能力、在管道中调节测试数据的能力,以及不限制可运行测试数量的数据。但是,我们提醒团队应尽量减少运行自动化测试所需的测试数据量。7.将安全性左移将安全性集成到软件开发过程的设计和测试阶段是提高IT性能的关键。这包括对应用程序进行安全审查,包括在应用程序设计和演示期间的信息安全团队,使用预先批准的安全库和包,以及测试安全功能作为自动化测试套件的一部分。8.实施持续交付(CD)CD是一种开发实践,其中软件在其整个生命周期中保持可部署状态,团队优先考虑将软件保持在可部署状态,而不是开发新功能。所有团队成员都可以获得有关系统质量和可部署性的快速反馈,并且当他们收到系统不可部署的报告时,他们可以快速进行修复。最后,系统可以根据需要随时部署到生产或最终用户。架构能力9.使用松耦合架构。这会影响团队在不与其他服务协调的情况下按需测试和部署其应用程序的程度。松散耦合的架构使您的团队能够独立工作,而无需依赖其他团队的支持和服务,从而使他们能够快速工作并为组织创造价值。10.赋予团队权力的架构师我们的研究表明,可以选择使用哪些工具的团队更擅长持续交付,这反过来又推动了更好的软件开发和交付性能。没有人比从业者更清楚他们需要什么才能有效。产品和流程能力11.收集和实施客户反馈我们的研究发现,组织是否定期主动寻求客户反馈并将此反馈纳入其产品设计对软件交付性能很重要。12.通过价值流使工作流可见团队应该对从业务一直到客户的工作流有很好的理解和可见性,包括产品和功能的状态。我们的研究发现这对IT性能有积极影响。13.小批量工作团队应该将工作分解成可以在一周或更短时间内完成的小块。关键是将工作分解成允许快速开发的小功能,而不是在分支上开发复杂的功能并不经常发布它们。这个想法可以应用在功能和产品层面。(MVP是具有足够功能的产品原型,使人们能够有效地理解产品及其业务模型。)小批量工作可以缩短交货时间并加快反馈循环。14.培养和启用团队实验团队实验是开发人员在开发过程中无需团队外部批准就可以尝试新想法并创建和更新规范的能力,这使他们能够快速创新并创造价值。当结合小批量工作、整合客户反馈并使工作流程可见时,这一点尤其有效。精益管理和监控能力15.实施轻量级变更批准流程我们的研究表明,与使用外部变更批准委员会(CAB)流程相比,基于同行评审(编程或团队内部代码审查)的轻量级变更批准产生出色的结果信息技术性能。16.跨应用程序和基础架构进行监控,为业务决策提供信息使用来自应用程序和基础架构监控工具的数据来采取行动并做出业务决策。这不仅仅是在出现问题时打电话给某人。17.主动检查系统健康状况使用阈值和变化率警报监控系统健康状况,使团队能够先发制人地识别和缓解问题。18.致力于改进流程和管理在制品(WIP)限制使用在制品限制来管理工作流在精益社区中是众所周知的。当有效使用时,它可以提高流程效率、增加吞吐量并暴露系统中的约束。19.可视化工作以监控质量并在团队间进行沟通文化能力20.支持生成文化衡量组织文化是基于社会学家RonWestrum开发的类型学,他研究了安全关键的复杂系统。我们的研究发现,这种素养水平可以预测IT绩效、组织绩效并减少职业倦怠。该措施的标志包括良好的信息流、高水平的合作和信任、团队之间的桥梁以及有意识的询问。21.鼓励和支持学习是否认为学习对于持续改进您的文化至关重要?学习是一种成本还是一种投资?这是衡量组织学习文化的指标。22.支持和促进团队之间的协作这反映了传统上孤立的团队在开发、运营和信息安全方面的互动程度。23.提供使工作有意义的资源和工具。这种工作满意度的特殊衡量标准是从事具有挑战性和回报的工作,使您能够锻炼自己的技能和判断力。它还与获得做好工作所需的工具和资源有关。24.支持或体现变革型领导变革型领导支持并扩大DevOps中的关键技术和流程工作。它由五个要素组成:视觉、智力刺激、鼓舞人心的交流、支持性领导和个人认可。
