本文主要是介绍SOA and Agile: 是朋友还是敌人,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文:http://www.infoq.com/cn/articles/SOA-Agile-Friends-Or-Foes
这是一篇关于SOA与Agile的讨论,文章总结了当前使用这两种技术的观点。虽然没有结论,却也值得思考。
其实,无论是敌?是友?都有共同的目标,那就是用技术为企业提供更大的价值。想一想,任何一种技术的产生都是同样的理由。
下面是该文的部分引用:
敏捷与SOA是朋友
SOA是一种架构,强调业务必须能满足市场要求,而且通过构建各种服务,可以消除重复,并达成“重用”这一很难捉摸的目标。团队通过构建“服务”而非“应用”,可以平衡企业内部和外部的工作。
敏捷是一种方法论,强调事物是变化的,软件开发团队必须拥抱变化,并对变化做出反应。通过引入技术性和非技术性实践,团队可以使业务敏捷起来。
架构和方法论是可以一同使用的,它们本质上是互补的。而且,SOA和敏捷的目标相同,它们都承认(1)变化是必然的(2)组织需要有效地应对变化。所以,我们期望在构建SOA时,方法论的选择是敏捷,反之亦然。对吗?
敏捷是SOA是敌人
你可能认为既然目标相同,这两种技术必定是一致的,没有冲突的,也就意味着实践与架构的重迭。但在这一点上,SOA社区和敏捷社区都有不同的声音。为什么会这样呢?
主要原因之一就是,它们的出发点不同,最初的方向也不相同。尽管最近几年敏捷快速发展,社区中获得很多经验并总结了“敏捷宣言”,并将其应用于大项目,但从发展史上看,敏捷还是“草根”,从小项目中走来。SOA是新兴的,具有自顶向下的本性,使用“分而治之”的方法来进行软件开发。这种方法,尤其是其中的“分割法”,很容易会导致团队间的沟通不畅,如文档、规范等等。
SOA和敏捷在以下三方面有冲突:
· SOA鼓励架构设计在前,而敏捷对这种称为“BDUF”的方法持相反观点。
· SOA鼓励按功能线索来划分团队,而敏捷倾向于以交叉功能式组建团队。
· SOA中,服务一旦建立起来,SOA就不再对服务的变化做出相关的反馈,而敏捷则强调及时反馈,无论是技术层面,还是人的层面。
这篇关于SOA and Agile: 是朋友还是敌人的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!