写点什么

Zapthink:敏捷和企业架构并不矛盾

  • 2009-05-26
  • 本文字数:1262 字

    阅读完需:约 4 分钟

最近, ZapThink 发表了一篇讨论敏捷和 SOA 的文章:敏捷企业架构并非矛盾修饰法!。其独特之处在于从 SOA 的角度对敏捷宣言(Agile Manifesto)进行了重新诠释,提出了应用于 SOA 领域的 4 项原则。

在回顾了敏捷宣言的 4 项核心原则(作者这里所指的 4 项原则,实际是指敏捷宣言中的 4 项价值观)之后,作者 Jason Bloomberg 认为,部分原则是适合 EA/SOA 层面的,但并非全部,而且必须进行新的解释。接着,Jason 对这 4 项核心原则进行改造,给出了 SOA 环境下的敏捷原则:

  • 业务驱动的应用优于服务抽象:在 SOA 核心,业务服务抽象的一项基本作用就是能够以业务流程为中心来组合增强业务和实现业务机动性的服务。这项原则重新解释了敏捷宣言中的客户合作部分,强调了业务交互优于服务抽象。
  • 架构驱动的迭代方法:采用迭代方法来处理不明确或持续变化的业务需求是一项久负盛名的技术。毫无疑问,所有敏捷方法论都具有迭代特性。同样,组织采用迭代方法来进行他们的 SOA 项目也是至关重要的。
  • 治理驱动的重用:对 SOA 来说,服务重用业务驱动力本质就是一项敏捷原则,因为它关注利用软件去满足相异的、持续变化的需求。治理在这里有一个特殊的作用,因为经过适当治理的重用可以给业务带来积极影响,可以使组织从 IT 资产获得的价值最大化。
  • 元数据驱动的开发:文档和服务元数据是有关联的,因为它们都代表了在服务生命周期内发挥重要作用的制品。但是它们之间有一个重要的区别——软件是给人消费的,而元数据基本上是给机器消费的。换句话说,聚焦元数据就是聚焦驱动开发出可以工作的软件。象元数据这样的文档越多,你就越符合敏捷原则中的“可用软件重于完备的文档”。

在他看来:

……SOA 是一种 EA 风格,而且把 EA 框架、SOA 最佳实践和一种理论联系实际的方法论结合起来是实现 SOA 项目成功的所有要素。正如象 TOGAF 这样的 EA 框架兼容 SOA、象 SOA 这样的 EA 风格兼容敏捷方法论一样,没有理由认为 EA 框架一定和敏捷方法不和谐。

在文章的末尾,Jason 强调了“多解决些问题,少谈些主义”的观点,并给出了一种解决“分析瘫痪(analysis paralysis)”的建议。

比起搞清楚实践技术属于哪个阵营,应用合适的实践去解决实际问题要更重要。因此,你正在从事的到底叫敏捷、TOGAF,还是 SOA,真的不重要。只要你做的是解决手头问题的最佳实践,那么你的路子就走对了。

过于架构教条主义的一个常见风险是“分析瘫痪”。太早就把大把时间花在治理之上,几乎无任何意义可言,例如在你还没有任何东西要治理的时候。也就是说,你在每个迭代中需要少许治理。这里的核心最佳实践是采用一种迭代方法,对其他大多数任何事物,对治理,都一样。这是避免分析瘫痪的关键,并且通常用于处理不明确、定义不完整或不断变化的业务需求。这就是为什么迭代方法明确地在敏捷和 TOGAF 中都出现的原因,并且它也是 SOA 的一个核心部分。

InfoQ 上已经报道了不少讨论 SOA 和敏捷之间关系的新闻和文章,如早期的 Agile: The SOA Hangover Cure SOA 和敏捷:是朋友? 还是敌人? 访谈:用敏捷方法实现SOA ,以及较新的 Martin Fowler:SOA 的敏捷之路

2009-05-26 21:051205
用户头像

发布了 255 篇内容, 共 57.4 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

CorelDRAW2023软件新功能抢先看

茶色酒

CorelDraw2023

OKR之剑·总结篇01:如何开好一场OKR复盘会

vivo互联网技术

团队管理 OKR

软件测试 | Mock是什么?

测吧(北京)科技有限公司

测试

软件测试 | HTTP和HTTPS抓包分析

测吧(北京)科技有限公司

测试

软件测试 | 什么是HTTP

测吧(北京)科技有限公司

测试

JavaScript 中深拷贝方法structuredClone

devpoint

JavaScript 深拷贝与浅拷贝 lodash structuredClone

2023-02-21:请用go语言调用ffmpeg,解码mp4文件,输出视频信息和总帧数。

福大大架构师每日一题

golang ffmpeg 福大大

【立哥】【每日一个小知识】你所知道的牛郎织女故事是真的吗?

Lee Chen

OSS Compass开源指南针发布,我国首个开源生态健康评估平台正式诞生

Geek_2d6073

流处理计算平台 StreamPark 2.0.0 重磅发布,首个 Apache 版本终于来了

ApacheStreamPark

flink spark 流处理 StreamPark

MathType7.0简体中文汉化版下载

茶色酒

MathType2023

SaaS+、SaaS的机遇都存在,但不要试图找最短成功路径,该犯的错都得走一遍

B Impact

【深度挖掘 RocketMQ底层源码】「底层源码挖掘系列」透彻剖析贯穿RocketMQ的消费者端的运行核心的流程(Pull模式-上)

洛神灬殇

Apache RocketMQ 2月日更 运行原理 拉取模式

架构实战营模块6 拆分电商系统为微服务

西山薄凉

「架构实战营」

自研的内存分析利器开源了!Android Bitmap Monitor 助你定位不合理的图片使用

拭心

android 性能优化 BitMap 内存优化

业务架构那点事(1)业务架构师就是在“盖房子”

涛哥 数字产品和业务架构

企业架构 业务架构

得物容器SRE探索与实践

得物技术

容器

得物热点探测技术架构设计与实践

得物技术

热点

【kafka专栏】kafka专栏目录整理(建议收藏不迷路)

石臻臻的杂货铺

kafka

定了!Python3.7,今年停止更新!

程序员晚枫

Python 软件 下载 版本

秒懂算法 | 莫队算法

TiAmo

算法 暴力猜解

Unittest接口和UI自动化测试框架中的发送邮件服务如何使用?

Python 自动化测试 unittest 邮件服务

「 Java基础-Lambda 」试试Lambda表达式?通俗易懂得嘞!

小刘学编程

Lambda 代码优化 java 高级编程

架构训练营一作业

null

日日顺于贞超:供应链数字化要做到有数、有路、有人

联营汇聚

浅谈新媒体运营岗位的发展前景

石头IT视角

LeetCode题解:938. 二叉搜索树的范围和,BFS,JavaScript,详细注释

Lee Chen

JavaScript 算法 LeetCode

易观千帆 | 2023年1月银行APP月活跃用户规模盘点

易观分析

金融 银行 手机银行

aspnetcore 原生 DI 实现基于 key 的服务获取

newbe36524

C# Docker Kubernetes

软件测试 | GET和POST区别与实战

测吧(北京)科技有限公司

测试

软件测试 | session、cookie和token的区别是什么?

测吧(北京)科技有限公司

测试

Zapthink:敏捷和企业架构并不矛盾_SOA_胡键_InfoQ精选文章