开发者发表软件定义交付宣言 让代码只在交付时有价值
2021-04-10 14:22:24

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. 70s-era scripting languages are insufficient.

  • 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 and 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