50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

基于SpringBoot、SpringCloud、Docker微服务架构实战,资源分享

Java架构之路

Java 程序员 架构 面试 编程语言

KubeVela 正式开源:一个高可扩展的云原生应用平台与核心引擎

阿里巴巴云原生

阿里云 开源 Kubernetes 云原生 OAM

IoT企业物联网平台,从设备端到云端业务系统全链路开发实战

不吃米饭

阿里云 最佳实践 物联网 IoT

开个交易所需要多少费用?数字货币交易所搭建

13530558032

年轻人不讲武德不仅白piao接口测试知识还白piao接口测试工具会员

测试人生路

接口测试

一次 Java 进程 OOM 的排查分析(glibc 篇)

996小迁

Java 编程 架构 面试 计算机

收藏!数据建模最全知识体系解读

华为云开发者联盟

数据仓库 数据 数据建模

Forrester 最新报告:阿里云稳居领导者地位,引领云原生开发浪潮

阿里巴巴云原生

阿里云 Serverless Kubernetes 容器 云原生

什么是低代码(Low-Code)?

移动研发平台EMAS

工具 研发效能 低代码 开发 代码

#不吐不快# CV千千条,修改最重要。代码不规范,伙伴两行泪!

程序员小航

奇葩的经历 不吐不快

SpringBoot:整合Swagger3.0与RESTful接口整合返回值(2020最新最易懂)

比伯

Java 编程 架构 面试 计算机

分布式事务太繁琐?官方推荐Atomikos,5分钟帮你搞定

互联网应用架构

分布式事务 springboot

胡继晔:中国应建区块链行业准入制度

CECBC

区块链 金融 数字经济

DàYé的CTO姗姗学步路

曲水流觞TechRill

管理 CTO

小学妹问我:如何利用可视化工具排查问题?

田维常

可视化

云算力矿机源码价格,区块链挖矿平台开发

13530558032

科普干货|漫谈鸿蒙LiteOS-M与HUAWEI LiteOS内核的几大不同

华为云开发者联盟

华为 鸿蒙 IoT

【涂鸦物联网足迹】涂鸦云平台消息服务—顺带Pulsar简单介绍

IoT云工坊

人工智能 物联网 云服务 Apache Pulsar 云平台

天啊!怎么会有人把Spring Cloud微服务架构讲得这么透彻?

Java架构之路

Java 程序员 架构 面试 编程语言

大四女学霸社招竟成功签约字节跳动,拿下30万年薪?

Java架构师迁哥

#不吐不快# 三观很正的Boss,你遇到过么?

架构精进之路

职场成长 奇葩的经历 不吐不快

一瞬间让我秒变“快男”!腾讯内部强推Java性能优化手册,快了不止一点点。

Java架构追梦

Java 架构 jdk 面试 性能优化

区块链数字货币钱包源码价格,区块链多币种钱包

13530558032

圆通快递回应内鬼泄露用户信息:严打数据倒卖灰色产业

石头IT视角

区块链在债券市场如何应用

CECBC

区块链 债券

高性能利器!华为云MRS ClickHouse重磅推出!

华为云开发者联盟

数据库 Clickhouse MRS

《垃圾回收的算法与实现》.pdf

田维常

垃圾回收

区块链,音乐,流媒体和版税

CECBC

区块链 艺术

太赞了!腾讯T3-3架构师整理了5000页的Java学习手册免费开放下载

Java架构之路

Java 程序员 架构 面试 编程语言

synchronized 到底该不该用

古时的风筝

Java synchronized

云原生2.0时代下,DevOps实践如何才能更加高效敏捷?

华为云开发者联盟

云计算 数字化 华为云

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