9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

文章:SOA 和敏捷:是朋友?还是敌人?

  • 2007-04-21
  • 本文字数:1167 字

    阅读完需:约 4 分钟

SOA 的目标是以服务作为构建企业应用的“积木块”,使整个企业敏捷起来,而敏捷软件开发则是通过引入一些最佳实践来增加沟通与反馈,以达到同样的目的。InfoQ 贴出这篇文章的目的是归纳在这一主题上的观点,以便社区进一步交流与沟通,即 SOA 和敏捷:是朋友?还是敌人?

这篇文章给出了对上述两种技术正、反两方面的观点,读者们已经开始讨论,并表述各自的观点。

该文建议说,尽管 SOA 是一种架构,而敏捷是一种开发方法论,但它们并非是完全正交的。

一方面,敏捷方法(例如 XP)直接关注设计,不是特别同意预先做大量设计 (BDUF) 的观点。另一方面,大多数 SOA 团队主要是围绕构建一系列服务而组成的功能性团队。SOA 本质上鼓励有特性的团队结构和团队间的沟通方式,而这两点又都属于方法论的范畴。

根据这种评判原则,该文提出了它们的主要重合点——即二者都关注“使业务敏捷起来”,随后深入讨论并提出了这两种实现方法的三个主要交叉点:

  1. SOA 鼓励架构设计在前,而敏捷对这种称为“BDUF”的方法持相反观点。
  2. SOA 鼓励按功能线索来划分团队,而敏捷倾向于以交叉功能式组建团队。
  3. SOA 中,服务一旦建立起来,SOA 就不再对服务的变化做出相关的反馈,而敏捷则强调及时反馈,无论是技术层面,还是人的层面。

关于这个主题已经引起了广泛的讨论。主要的讨论思路已经在这个贴子中提及。所以接下来的引证直接来源于这一主线。至今,大多评论者都未发现 SOA 和敏捷之间的交叉,当然,有一部分人同时支持这两种方法。

Frank Grossman 认为,在企业中,根据 SOA 的本性,很多的敏捷实践(如代码共享)可能被改变:

代码共享制也上升了一个层面。在项目层面的敏捷实践中,整体团队拥有所有的代码。而 SOA 层面的敏捷实践中,设计规约的交叉功能团队拥有 XML 软件层所有权。事实上,可以认为它是 SOA 所有者(就像是 Scrum 中的产品所有者),代表整个企业的目标。这个 SOA 所有者负责维护 SOA 列表, 并通过 XML 软件层的一系列的迭代,来指导一个或多个“XML 开发团队”。这个 SOA 列表包括已划分了优先级且能满足市场要求的业务需求。

而 Howard Deiner 认为,不应该草率地分解 SOA:

根据我的经验,一次就正确地分解一个 SOA 是非常困难的。在一个商业性企业中,存在很多不确定因素。在那样的环境下,大多数情况是在最终把业务流程实现成一组服务之后,却发现这些服务并不是我们真正想要的基本业务组件。所以,如果我们希望 SOA 一开始就成功,就必须理解并承认使用敏捷技术的重要性,敏捷技术使我们可以设计、构建、测试并验证每个 SOA 组件的可用性。当然,这也需要一点 BDUF,但边界可能要宽松一些,以便在后续的迭代中做架构刺探(architectural spike)时,各组件边界间的空隙足以将代码形成解决方案。

这是一个目前关于软件开发社区中两大阵营交锋的有趣话题。

阅读全文并参与评论: SOA and Agile: 是朋友?还是敌人?

2007-04-21 21:211212
用户头像

发布了 100 篇内容, 共 24.9 次阅读, 收获喜欢 5 次。

关注

评论

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

芯盾时代OIAM解决方案

芯盾时代

iam 统一身份认证 身份治理与管理

CSS AI 通义灵码 VSCode插件安装与功能详解

阿里巴巴云原生

《Operating System Concepts》阅读笔记:p597-p600

codists

操作系统

测试团队管理者必看:从生存到卓越的实战指南

测试人

团队管理 软件测试

从“制造”到“智造”,低代码如何赋能制造业转型升级?

天津汇柏科技有限公司

人工智能 低代码 智能制造

一文掌握 MCP 上下文协议:从理论到实践

陈明勇

Go MCP MCP协议 go mcp

用 Go 语言轻松构建 MCP 客户端与服务器

陈明勇

Go MCP MCP协议 go mcp

深入研究:淘宝天猫商品详情查询API详解

tbapi

淘宝API 淘宝商品数据采集 淘宝商品详情API 淘宝商品接口

用友加入数据资源服务联合体

用友智能财务

财务 会计

祝贺!华为云GES完成中国信通院图数据库产品测试

华为云开发者联盟

图数据库 华为云GES 中国信通院

我对于AI领域商业模式的思考

老张

人工智能 商业模式 智能体 大模型

非凸算法全面上线华安证券,共筑金融数智化新生态

非凸科技

CSS AI 通义灵码 VSCode插件安装与功能详解

阿里云云效

CSS 前端

SQL开发的智能助手:通义灵码在IntelliJ IDEA中的应用

阿里云云效

sql

MES系统中的几大功能模块

万界星空科技

mes 数字化工厂 万界星空科技 制造业工厂 生产管理MES系统

【HarmonyOS 5】使用openCustomDialog如何禁止手势关闭的方案

GeorgeGcs

HarmonyOS OpenCustomDialog 手势关闭 禁止 关闭弹框

MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题

GreatSQL

数字藏品NFT技术架构

北京木奇移动技术有限公司

数字藏品 软件外包公司 NFT技术

【HarmonyOS 5】鸿蒙中如何使用MQTT

GeorgeGcs

mqtt HarmonyOS HarmonyOS NEXT

什么是用于REST API的JWT Bearer令牌以及如何通过代码和工具进行调试

数据追梦人

用友畅捷通基于阿里云 MaxCompute 搭建智能数仓的落地实践

阿里云大数据AI技术

大数据 云原生 数据处理 MaxCompute 智能数仓

金三银四冲击一波「腾讯」!

王中阳Go

Go 面试

SQL开发的智能助手:通义灵码在IntelliJ IDEA中的应用

阿里巴巴云原生

sql

无需登录+离线调试 Apipost完胜Apifox?

数据追梦人

黑龙江三级等保-信息安全等级保护制度中的重要级别

黑龙江陆陆信息测评部

理解 Calvin 的架构设计与工作原理

Databend

【同步教程】基于Apache SeaTunnel从MySQL同步到MySQL——Demo方舟计划

Apache SeaTunnel

数字藏品NFT的技术原理

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

做好设备管理这四大关键,事半功倍!

积木链小链

数字化 智能制造 设备管理

Python2 AI 通义灵码 VSCode插件安装与功能详解

阿里巴巴云原生

vscode Python2

Python2 AI 通义灵码 VSCode插件安装与功能详解

阿里云云效

Python

文章:SOA和敏捷:是朋友?还是敌人?_SOA_Amr Elssamadisy_InfoQ精选文章