软件定义交付宣言(Software Defined Delivery Manifesto)

239 阅读4分钟

原文链接:github.com/sdd-manifes…
中文链接:github.com/wizardbyron…

软件定义交付宣言(Software Defined Delivery Manifesto)

我们认识到, 提供有用的软件塑造了我们的世界。我们认识到,代码是指定精确操作的最佳方式。我们认识到, 只有在交付代码时, 代码才会有用。

交付不是一个细节, 而是我们的工作。现在是将我们的核心技能应用到自己的工作中的时候了。现在是时候 工程化 我们的交付。我们在人类自身和计算机之间分配我们的工作: 人类用于决策, 而自动化用于任务。

交付不是一个细节,而是我们的工作。现在是应用我们的核心技术到我们工作中的时刻了。现在是工程化我们的交付。我们在我们自身和计算机之间区分我们的工作:人类为了决策,自动化为任务。

交付工作本质上是独特的。应用程序、组织、部署环境和团队的每个组合都有自己的上下文。我们认识到, 每个团队都需要理解这种独特性的交付和自动化。我们认识到, 虽然持续交付对于满足业务需求至关重要, 但自动化所有重复的任务非常重要。

我们加快自动化的速度与加快应用程序开发的方式相同: 使用现代体系结构和编程语言以及用于通用能力的框架、库和服务。

我们承认现有技术。这不是发明的工作, 而是表达的工作, 是及时和急需的方法的工作。

交付基础设施现在是可编程的, 所以我们将对其进行编程。

软件定义交付(Software Defined Delivery)是

核心: 交付是每个软件团队和组织的基本和战略能力。

  • 一流的: 交付代码就是生产代码。
  • 战略性: 决定团队和组织层面的政策;在代码中精确地实现它, 而无需辛劳。
  • 演进: 随着我们的了解, 我们不断地改进我们的交付。

工程化的: 在可靠的、可测试的代码中。

  • 现代软件架构: 事件驱动并可扩展。
  • 现代编程语言: 逻辑最好在代码中指定, 而不是在图片或 GUI 中指定。脚本不会扩张。
  • 基于模型: 由软件领域的模型支持, 包含对代码的理解。
  • 可测试: 允许部署在生产前进行较短的交付周期以发现错误。
  • 进步: 随时促进部署。提供对受众群体和环境进行有控制、选择性的更改。允许是渐进和深思熟虑的发布。

协作:

  • 在人群中: 每个人都可以通过代码表达他们的专业知识, 以造福于每个人。
  • 在软件中: 我们使用同类最佳的工具, 但我们对这些工具的组合是独一无二的。
  • 在人群和软件中: 协作自动化增强了我们的感知, 并实现了我们的决策。它将信息和行动带到我们所处的位置, 并使自动化行为为我们所理解。通过代码, 我们区分团队的共享交付目标集和它们的实现。

加速:

  • 通过自动化: 我们自动执行重复的任务, 以加快我们的工作, 避免错误。
  • 通过复用: 开发人员、团队和组织之间共享通用功能。

可观察的: 常见的方法是观察和排除作为生产系统的交付过程中发生的情况。

  • 跟踪: 观察系统中的活动并跟踪动作之间的关系。
  • 调试: 与交付流程交互并审查。
  • 指标: 从整个交付流程中的活动中派生指标。

作者:(按照姓名首字母排序)Kenny Bastani, Marc Holmes, Rod Johnson, Jessica Kerr, Mik Kersten, Russ Miles, Erin Schnabel, Matt Stine. 以及社区成员的帮助和整理。

© 2018 版权归以上作者所有,本声明可以通过任何形式自由复制, 但只能通过本文进行全文复制。