产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

文章: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:21860
用户头像

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

关注

评论

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

吊打面试官!从多维度理解架构

不在线第一只蜗牛

程序员 面试

快手自研Spark向量化引擎正式发布,性能提升200%

快手技术

spark 引擎 大数据 开源

延迟退休,程序员的你准备好了吗?

伤感汤姆布利柏

3D动画制作软件NewTek LightWave 3D for mac

Mac相关知识分享

TDengine 与飞腾腾锐 D2000 完成兼容互认证,推动国产软硬件深度融合

TDengine

数据库 tdengine

镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态

镜舟科技

大数据 开源 分析型数据库 StarRocks

延迟退休,如何影响程序员?

秃头小帅oi

职场女性的心灵救赎:数业智能心大陆照亮新曙光

心大陆多智能体

智能体 AI大模型 心理健康 数字心理 AI 智能体

替换 Oracle ,江河信息用 TDengine 解决高基数查询写入问题

TDengine

数据库 tdengine

CPP在内网穿透技术的思考

不在线第一只蜗牛

cpp

TikTok云手机解决运营效率低、封号问题

Ogcloud

云手机 tiktok云手机 tiktok运营 TikTok养号 tiktok矩阵

磁盘诊断工具SMART Utility for mac

Mac相关知识分享

高可用与低成本兼得:深入了解 TDengine 的双副本与双活方案

TDengine

数据库 tdengine

java springboot监听事件和处理事件

快乐非自愿限量之名

Java spring Spring Boot

数业智能心大陆探索生成式AIGC创新前沿

心大陆多智能体

智能体 AI大模型 心理健康 数字心理

内幕!smardaten无代码平台全方位测评,这些细节你绝对想不到!

中杯可乐多加冰

低代码 无代码开发 无代码 无代码平台

数字货币期权秒合约交易所APP开发与平台搭建全攻略

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 NFT开发 公链开发

Java 应用程序性能分析工具JProfiler for Mac

Mac相关知识分享

百度联合北京市文化和旅游局搭台 让文旅智能体开发者“唱主角”

Geek_2d6073

链游开发指南:基于Dapp合约的链上游戏开发与源码出售

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

面试官:线程池遇到未处理的异常会崩溃吗?

EquatorCoco

Python 面试 线程池

Detailed analysis of IPQ5332 and IPQ5322 WiFi 7 schemes

wifi6-yiyi

WiFi7

35岁嫌老,65嫌年轻,程序员还有路子吗?

高端章鱼哥

k8s 中的 Service 简介

EquatorCoco

Java Kubernetes

ETL数据集成丨建设BI的关键前提是ETL数据集成?

RestCloud

数据分析 BI ETL 数据集成 企业数据工具

软件架构:问题起源和应对

FunTester

多任务 BT 种子下载工具BitComet for Mac

Mac相关知识分享

公司的电脑性能差有什么解决办法?

上海锐起科技

和鲸科技聘任上海交通大学医学院张维拓老师为公司医学行业专家顾问

ModelWhale

人工智能 大数据‘’ 医学研究

喜讯!和鲸科技荣获「2024 爱分析·数据智能优秀厂商」

ModelWhale

人工智能 大数据 数据智能

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