写点什么

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:051479
用户头像

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

关注

评论

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

长安链入选“2022科创中国”开源创新榜

科技热闻

风险洞察之事件总线的探索与演进

京东科技开发者

京东云 事件总线 京东技术 数据管道 风险洞察

MySQL审计插件-MariaDB Audit Plugin

GreatSQL

:MySQL 数据库 maria greatsql greatsql社区

使用 NGINX 在 Kubernetes 中对 TCP 和 UDP 流量进行负载均衡

NGINX开源社区

nginx Kuber udp tpc 企业号 2 月 PK 榜

活动预告 | GAIDC 全球人工智能开发者先锋大会

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

MySql基础-笔记10-索引

MySQL 数据库

中科协发布2022“科创中国”开源创新榜 OceanBase开源社区入选

OceanBase 数据库

数据库 oceanbase

乌卡时代的云成本管理:从0到1了解FinOps

SEAL安全

云服务 FinOps 企业号 2 月 PK 榜

AI for Science系列(三):赛桨PaddleScience底层核心框架技术创新详解

飞桨PaddlePaddle

人工智能 paddle 飞桨 框架技术

GhatGPT在信息安全方面的应用

HummerCloud

ChatGPT

软件测试 | 霍格沃兹线下班开课啦!

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

测试

飞桨全量支持业内AI科学计算工具——DeepXDE!

飞桨PaddlePaddle

人工智能 深度学习 开源

10分钟学会使用 Loki 日志聚合系统

北京好雨科技有限公司

Kubernetes 云原生 rainbond 企业号 2 月 PK 榜

活动回顾丨研发效能度量线下沙龙圆满举办

Kyligence

数据分析 Kyligence Zen

AI for Science系列(二):基于AI框架的CFD工具组件!赛桨v1.0 Beta API介绍以及典型案例分享!

飞桨PaddlePaddle

深度学习 paddle API 飞桨

案例介绍:使用A-Ops性能热点火焰图进行性能诊断

openEuler

Linux 操作系统 openEuler 性能测评 A-Ops

推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF_TDM_Airbnb Embedding_Item2vec等)、召回路径简介、多路召回融合]

汀丶人工智能

自然语言处理 深度学习 推荐系统 搜索算法 召回算法

Gluten 首次开源技术沙龙成功举办,更多新能力值得期待

Kyligence

开源技术 Gluten

MySql基础-笔记6 -排序、分组、连接的使用、NULL值处理

MySQL 数据库

MySql基础-笔记9 -ALTER命令

MySQL 数据库

MySql基础-笔记11-临时表、复制表、元数据、序列使用

MySQL 数据库

单元测试利器——手把手教你使用Mockito

京东科技开发者

单元测试 Mockito 京东云 安全测试 京东技术

搜索EE场景排序链路升级

京东科技开发者

模型 搜索 EE 企业号 2 月 PK 榜 Explore & Exploit

直播预告 | 企业如何轻松完成数据治理?火山引擎DataLeap给你一份实战攻略!

字节跳动数据平台

数据库 大数据 数据治理 数据实践

MASA MAUI Plugin (八)Android相册多选照片(Intent 方式)

MASA技术团队

.net blazor MAUI MASA Blazor

本周 2 场直播预告!Intel 高级工程师带你探索开源机密计算社区 CCZoo | 第 65 期

OpenAnolis小助手

云计算 运维 直播 intel 龙蜥大讲堂

项目终于用上了低代码,才知道为什么真香了!

引迈信息

项目管理 低代码

微服务拆分治理最佳实践

京东科技开发者

数据库 微服务 京东云 京东技术 安全接口

软件测试/测试开发 | App测试时常用的adb命令你都掌握了哪些呢?

测试人

android 软件测试 自动化测试 测试开发 adb

AI for Science系列(一) :飞桨加速CFD(计算流体力学)原理与实践

飞桨PaddlePaddle

paddle 算法 飞桨 框架技术

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