宣言原文地址: https://sdd-manifesto.org/?from=timeline
宣言github地址: https://github.com/sdd-manifesto/manifesto
最后更新时间:11/22/2018 (bb7b94f) 翻译:Zhiwei Yin
翻译时间:11/23/2018
软件定义交付宣言
我们认识到交付可用的软件改变着我们的世界。我们认识到代码是阐述精确活动的最佳方式。我们认识到代码只在我们交付的时候有用。
交付是我们的工作,不是细节。现在是时候把核心技能应用到我们自己的工作中了。现在是时候“设计”我们的交付了。我们把工作划分为我们的和计算机的:我们来负责决策,计算机来负责自动化完成任务。
交付工作本身就是唯一的。应用软件,组织,部署环境和团队的每次组合都有唯一的上下文。我们认识到每个团队都需要能理解这个唯一性的交付和自动化。我们认为自动化所有可重复的任务很重要,因为持续交付对满足业务需求是不可或缺的。
我们用加速应用软件开发的方法来加速我们的自动化:使用现代架构和具有通用功能的框架,库和服务的编程语言。
交付的基础设施现在是可编程的了,让我们对它编程吧。
软件定义交付是:
核心: 交付对每个软件团队和组织来说是最基本的战略能力。
- 一流的: 交付的代码就是产品代码。
- 战略的: 在团队和组织层面做决策;并用代码轻松准确的实现它。
- 持续的: 随着不断学习,我们持续改进我们的交付。
设计: 健壮的可测试的代码。 70年代的脚本语言是低效的。
* 现代软件架构: 事件驱动和可扩展性。
* 现代编程语言: 逻辑最好在代码中展现,而不是图或者界面。脚本不要太多。
* 基础模型: 使用一种软件领域模型,使用可理解的代码。
* 可测试: 在产品发布前,确保在短时间内定位错误。
合作:
* 开发者: 每个人通过代码表达自己的专业技术,让所有人从中获益。
* 软件: 虽然我们都使用最好的工具,但是我们使用这些工具的方式是唯一的。
* 开发者和软件: 协作的自动化方式可用提高我们的感知和实现我们的决策。它会把信息和执行的操作传递给我们,并让我们更好的理解自动化的行为。通过代码,我们可以区分团队共享的交付对象以及他们的实现。
加速:
* 通过自动化: 我们通过自动化执行重复的任务来加速我们的工作,并且规避错误。
* 通过复用: 开发人员,团队和组织之间共享通用的功能模块。
监控: 用来监控和解决在生产环境交付环节出现问题的通用手段。
* 追踪: 在系统中的监控活动,和追踪这些活动的关系。
* 调试: 响应和检查交付流程。
* 度量: 从整个交付流程中获取活动的度量数据。
作者: (按照姓的首字母排序): 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.
翻译中出现的一切问题都以原文为准。