The Software Defined Delivery Manifesto

22 日,近十位开发者联名发布了软件定义交付宣言(The Software Defined Delivery Manifesto)。该宣言指出交付是每个软件团队和组织的基础和战略能力,只有在交付时,代码才有它的价值,才能精准地塑造精彩的世界。交付是如此重要,现在是时候定义交付,并将其应用到开发工作中。

宣言中表示交付工作本质上是独一无二的,应用程序、组织、部署环境和团队的每个组合都有自己的上下文,每个团队都需要理解这种独特的交付和自动化。虽然持续交付对满足业务需求至关重要,但自动化执行所有重复任务也是重中之重。

工作思路是人类做决策,任务则由自动化去完成,而加速自动化的方式与加速应用的方式相同:使用现代架构、编程语言以及通用框架、代码库与服务。

Software Defined Delivery 的定义:

Core: Delivery is a fundamental and strategic capability for every software team and organization.

  • First-class: Delivery code is production code.
  • Strategic: Decide policy at the team and organization level; implement it with precision, without toil, in code.
  • Evolving: As we learn, we continually improve our delivery.

Engineered: In robust, testable code.

  • Modern software architecture: Event-driven and extensible.
  • Modern programming languages: Logic is best specified in code, not pictures or GUIs. Scripts don’t scale.
  • Model-based: Backed by a model of the software domain, with understanding of code.
  • Testable: Enabling short trips to spot errors before production.

Collaborative:

  • Among people: Each person can express their expertise in code for everyone’s benefit.
  • Among software: We use best-of-breed tools, but how we combine them is unique.
  • Between people and software: Collaborative automation enhances our perception and implements our decisions. It brings information and actions to where we are and makes automated behavior comprehensible to us. Using code, we distinguish between a team’s shared set of delivery objectives, and their implementations.

Accelerated:

  • Through automation: We automate repeated tasks to speed our work and avoid errors.
  • Through reuse: Common functionality is shared between developers, teams, and organizations.

Observable: Common means to observe and troubleshoot what happens in the delivery process as a production system.

  • Trace: Observe activity in a system and trace the relationships between actions.
  • Debug: Interact with and inspect a delivery flow.
  • Metrics: Derive metrics from activity across the entire delivery flow.

Authors: (alphabetical by last name): Kenny Bastani, Marc Holmes, Rod Johnson, Jessica Kerr, Mik Kersten, Russ Miles, Erin Schnabel, Matt Stine. With the help and refinement of many members in the community.

© 2018, the above authors, this declaration may be freely copied in any form, but only in its entirety through this notice.

宣言见:https://sdd-manifesto.org

GitHub:https://github.com/sdd-manifesto/manifesto