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

2024-01-26 05:08
文章标签 敏捷 朋友 soa 敌人

本文主要是介绍SOA和敏捷:是朋友?还是敌人?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

作者:(来自infoq中文站)  2007-08-16


IT168 技术文档】SOA 的目标是以服务作为构建企业应用的“积木块”,使整个企业敏捷起来,而敏捷软件开发则是通过引入一些最佳实践来增加沟通与反馈,以达到同样的目的。哪个是正确的?哪个更好?我们正在拿苹果和桔子做比较吧?它们可以一起使用吗?如果可以,那怎么使用呢?很难用一篇文字来彻头彻尾地评判SOA和敏捷,所以让我们一同来关注它们吧。本文仅是关于这个讨论主题中一系列文章之一,随后将有更多的内容。


方法论和架构是互斥的吗?

有人认为,软件开发实践与架构是不重迭的。在其它环境中这么说也许是正确的,但在这个主题中却不尽然。一方面,敏捷方法(例如XP)直接关注设计,不是特别同意预先做大量设计(BDUF)的观点。另一方面,大多数SOA团队主要是围绕构建一系列服务而组成的功能性团队。SOA本质上鼓励有特性的团队结构和团队间的沟通方式,而这两点又都属于方法论的范畴。


敏捷与SOA是朋友

SOA
是一种架构,强调业务必须能满足市场要求,而且通过构建各种服务,可以消除重复,并达成“重用”这一很难捉摸的目标。团队通过构建“服务”而非“应用”,来平衡企业内部和外部的工作。

敏捷是一种方法论,强调事物是变化的,软件开发团队必须拥抱变化,并对变化做出反应。通过引入技术性和非技术性实践,团队可以使业务敏捷起来。

架构和方法论是可以一同使用的,它们本质上是互补的。而且,SOA和敏捷的目标相同,它们都承认(1)变化是必然的(2)组织需要有效地应对变化。所以,我们期望在构建SOA时,能够选择敏捷方法论,反之亦然。对吗?


敏捷和SOA是敌人

你可能认为既然目标相同,这两种技术必定是一致的,没有冲突的,也就意味着实践与架构的重迭。但在这一点上,SOA社区和敏捷社区都有不同的声音。为什么会这样呢?

主要原因之一就是,它们的出发点不同,最初的方向也不相同。尽管最近几年敏捷快速发展,社区中获得很多经验并总结了“敏捷宣言”,并将其应用于大项目,但从发展史上看,敏捷还是“草根”,从小项目中走来。而SOA是新兴的,具有自顶向下的本性,使用“分而治之”的方法来进行软件开发。这种方法,尤其是其中的“分割法”,很容易会导致团队间的沟通不畅,如文档、规范等等。

SOA
和敏捷在以下三方面有冲突:

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

当前现状

现在,虽然很少有文章涉及这一主题,但我还是找到了几篇文章:

Carl Ververs
描述了使用一整套的敏捷实践来构建一个SOA,并与开发人员共同完成了它(见Agile: The SOA Hangover Cure)。遗憾的是,这只是一个团队构建了一套服务。在另一个InfoQ的访谈中,Geoff HentonTom Stiehm也讨论了使用敏捷方法构建SOA。这篇文件似乎说的是一个项目中的一套服务,它仅是一个敏捷尝试,内部团队的交流如何?当服务完成后,上百个客户在使用这些服务,此时这些服务需要改变,如何维护呢?我建议:一是SOA团队应通过测试而非文档进行沟通,二是Frank Grossman的观点,但在异构环境中究竟该如何做呢?

此外,根据我对SOA团队的个人观察,从来没有发现有在内部团队方式上做任何敏捷实践的。团队被划分开,实现各自的服务与应用,通过分散的会议、文档和WSDL进行沟通交流。SOA鼓励BDUF,并很少为服务本身可能的变化做准备。

本文比较短,坦白地说,是因为我也不知道答案。这只是该主题上的第一个讨论。我们将以开放的形式进行,总结过程中出现的重要问题并分别讨论它们。欢迎并鼓励任何评论。

 

这篇关于SOA和敏捷:是朋友?还是敌人?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/645716

相关文章

菲律宾诈骗,请各位华人朋友警惕各类诈骗。

骗子招聘类型:程序开发、客服、财务、销售总管、打字员等 如果有人用高薪、好的工作环境来你出国工作。要小心注意!因为这些骗子是成群结伴的! 只要你进入一个菲律宾的群,不管什么类型的群都有这些骗子团伙。基本上是他们控制的! 天天在群里有工作的信息,工作信息都是非常诱惑人的。例如招“打字员”、“客服”、“程序员”……各种信息都有。只要你提交简历了,他会根据你的简历判断你这个人如何。所谓的心理战嘛!

PMP–一、二、三模–分类–14.敏捷–技巧–看板面板与燃尽图燃起图

文章目录 技巧一模14.敏捷--方法--看板(类似卡片)1、 [单选] 根据项目的特点,项目经理建议选择一种敏捷方法,该方法限制团队成员在任何给定时间执行的任务数。此方法还允许团队提高工作过程中问题和瓶颈的可见性。项目经理建议采用以下哪种方法? 易错14.敏捷--精益、敏捷、看板(类似卡片)--敏捷、精益和看板方法共同的重点在于交付价值、尊重人、减少浪费、透明化、适应变更以及持续改善等方面。

颠覆你的开发模式:敏捷思维带来的无限可能

敏捷软件开发作为现代软件工程的重要方法论,强调快速响应变化和持续交付价值。通过灵活的开发模式和高效的团队协作,敏捷方法在应对动态变化和不确定性方面表现出色。本文将结合学习和分析,探讨系统变化对敏捷开发的影响、业务与技术的对齐以及敏捷方法如何在产品开发过程中处理持续变化和迭代。 系统变化对敏捷软件开发的影响 在敏捷软件开发中,系统变化的管理至关重要。系统变化可以是需求的改变、技术的升级、

PMP–一、二、三模–分类–14.敏捷–技巧–原型MVP

文章目录 技巧一模14.敏捷--原型法--项目生命周期--迭代型生命周期,通过连续的原型或概念验证来改进产品或成果。每个新的原型都能带来新的干系人新的反馈和团队见解。题目中明确提到需要反馈,因此原型法比较好用。23、 [单选] 一个敏捷团队的任务是开发一款机器人。项目经理希望确保在机器人被实际建造之前,团队能够收到关于需求的早期反馈并相应地调整设计。项目经理应该使用以下哪一项来实现这个目标?

PMP–一、二、三模–分类–14.敏捷–技巧–帮助团队交付价值的执行实践迭代和增量如何帮助交付工作产品

文章目录 技巧一模14.敏捷--实践--帮助团队交付价值的执行实践--持续集成--在不同层面测试、验收测试驱动开发 (ATDD) 、测试驱动开发和行为驱动开发、刺探 。90、 [单选] 敏捷项目的第一次迭代即将开始。发起人召集团队、Scrum主管、产品负责人和其他项目干系人参加启动会议。发起人强调需要在项目尽可能早的时候以最小的成本识别和应对项目风险。与会者实现发起人要求的最佳方式是什么?

PMP–一、二、三模–分类–14.敏捷–技巧–故事点

文章目录 技巧一模14.敏捷--术语表-自组织团队--自组织团队是一种跨职能团队,其中为实现团队目标团队成员根据需要轮换着发挥领导作用。 自组织团队的核心就是做什么事情,团队成员说了算。61、 [单选] 作为估算活动持续时间过程的一部分,项目经理促成了与产品负责人和Scrum团队的冲刺计划会议。项目经理将用户故事分解为较小的任务项,以小时为单位估算所需时间,并根据团队的能力确定冲刺待办事项列

【数据产品案例】有赞大数据实践- 敏捷型数据仓库的构建及其应用

案例来源:@洪斌 案例地址: https://tech.youzan.com/you-zan-big-data-practice/ 1. 数据仓库处理:近源数据层→数据宽表→基础指标表 1)近源数据层:封装中间层,实现: a. 合并不同业务数据,如pc和app的日志数据 b. 脏数据屏蔽 c. 冗余字段合并 2)数据宽表:提取足够

SDUT2779_找朋友(BFS裸二维)

找朋友 Time Limit: 1000MS Memory limit: 65536K 题目描述 X,作为户外运动的忠实爱好者,总是不想呆在家里。现在,他想把死宅Y从家里拉出来。问从X的家到Y的家的最短时间是多少。 为了简化问题,我们把地图抽象为n*m的矩阵,行编号从上到下为1 到 n,列编号从左到右为1 到 m。矩阵中’X’表示X所在的初始坐标,’Y’表示Y的位置 ,

PMP–一、二、三模、冲刺、必刷–分类–14.敏捷–技巧–刺探

文章目录 技巧一模反例不选“刺探”14.敏捷--流程:(2)每日站会(15分钟、轮流开、提出问题、`不解决问题`):输入任务板/看板 → 输出任务板更新、燃尽图更新、障碍日志、产品增量;14.敏捷--方法--每日站立会--每日站会让团队自我组织,并让团队成员为完成之前和整个迭代中承诺完成的工作承担彼此的责任37、 [单选] 敏捷项目团队与产品负责人、项目经理和其他关键项目干系人会面,讨论项目

【系统架构设计师】论文:论SOA在企业集成架构设计中的应用

论文:论SOA在企业集成架构设计中的应用 文章目录 论文一摘要正文总结 论文二摘要正文总结 论文一 摘要 2021年10月, 本人所在保险公司启动了超级销售 APP 项目,该项目通过运用先进的销售工具、客户管理、营销活动管理等功能以达到提升销售人员的效能,加大业务驱动的目标。我在该项目中担任系统架构师, 主要负责系统的架构设计工作。 本文以该项目为例, 主要论述面向服务架构