【发布时间】:2010-08-17 18:16:27
【问题描述】:
我们有两个不同的敏捷团队,每个团队都致力于独立但相关的应用程序。
到目前为止,每个团队都能够以独立的方式工作(不同的代码库、持久性存储、冲刺、积压等)。最近,产品管理部门决定这些应用程序将更加紧密地集成在一起。另一方面,每个团队(由 QA、Dev、BA 组成)的规模将在未来 6-12 个月内增加。
管理层已决定在很大程度上保持敏捷流程的完整性,因为它运行良好(两个团队尽可能独立工作),但提出了将基于合同的服务层的想法作为集成应用程序的手段。
在每个 sprint 中,将确定需要与其他应用程序集成的任何故事。届时,将在其他团队的待办事项中添加一个额外的“整合”故事。然后,该团队将负责履行合同。与此同时,另一个团队可以继续他们原来的故事工作,替换一个 mock/fake 服务,直到另一个团队产生一个工作服务。
自从敏捷宣扬 KISS 哲学以来,团队中的几个人对这种方法的“复杂性”提出了质疑。他们提倡继续使用存储过程共享作为一种“过去运作良好”的更精简/更简单的集成方法。
出于各种原因,我更喜欢基于契约的编程,但主要原因是它能够提供编译时对您的应用程序预期提供的行为的可见性。您还可以清楚地了解谁拥有什么代码,以及如果您违反合同,您可能会破坏谁的代码。存储过程不做这些。
既然我们已经从敏捷中获得了很多好处,我想已经有一种“敏捷友好”的方式来处理这种应用集成/同步。创建基于契约的 SOA 层是否符合敏捷气味测试?有没有我没有考虑过的第三种选择?
【问题讨论】:
-
这个问题是题外话,因为它不在本网站的范围内,如What topics can I ask about here? 中定义的那样另见:What types of questions should I avoid asking? 您可以在another Stack Exchange site 上提问,例如@ 987654324@ 或Software Engineering。请务必阅读您打算在其上发布问题的任何网站的帮助中心内的主题页面。
标签: wcf agile integration soa agile-processes