原文 https://github.com/sdd-manifesto/manifesto
交付是每个软件团队和组织的基础和战略能力,只有在交付时,代码才有它的价值,才能精准地塑造精彩的世界。
交付是如此重要,现在是时候定义交付,并将其应用到开发工作中。
宣言中表示交付工作本质上是独一无二的,应用程序、组织、部署环境和团队的每个组合都有自己的上下文,每个团队都需要理解这种独特的交付和自动化。持续交付对满足业务需求至关重要,自动化执行所有重复任务则是重中之重。
工作思路是人类做决策,任务则由自动化去完成,而加速自动化的方式与加速应用开发的方式相同:使用现代架构、编程语言以及通用框架、代码库与服务。
核心:交付是每个软件团队和组织的基础和战略能力。
- 一流:交付的代码是可用于生产的代码。
- 战略:在团队和组织层面上制定策略; 在代码中精确实现,化繁为简。
- 演进:持续学习,持续提升。
工程化:健壮,可测试的代码。
- 现代软件架构:事件驱动,可扩展。
- 现代编程语言:代码本身即能够精确的描述业务逻辑,而不是通过图片或GUI工具。
- 基于模型:通过领域模型来了解代码。
- 可测试:上线前能够快速发现错误。
协作:
- 人与人的协作:每个人都可以分享含有专业知识的代码来让别人受益。
- 软件与软件的协作:复用优秀的代码和工具。
- 人于软件的协作:自动化有助于我们快速决断并实现我们的目标,能够展示足够的信息以使我们充分掌握自动化行为。通过代码来衔接团队的目标和实现。
提效:
- 自动化:将重复的工作自动化,来提升效率减少错误。
- 复用:常用功能应该在人员、团队、组织间共享。
可观察:用于观察和排除系统交付过程中发生的问题的常用方法
- 跟踪(Trace):观察调用行为并跟踪调用之间的关系。
- 调试(Debug):与交付流程进行交互和检查。
- 指标(Metrics):获取并展示整个交付流程中的各项指标。