跳到主要内容

保存的帖子

教练敏捷架构师 - 创造价值,确保质量和赋权变化

迈克尔·罗布拉德|龙头
迈克尔·罗格拉德
读: 教练敏捷架构师 - 创造价值,确保质量和赋权变化

看企业概念的人亚博vip9通道

教练敏捷建筑师

作为一个敏捷的教练,我通常会在透视图中找到两个班次对新的敏捷架构师有用:第一,提供功能切片的可能性(通常通过风险或价值优先考虑),而第二,可能会提供支持增量交付所需的架构切片的可能性。我经历了这个视角,个人变成了现在像以前的生活一样变化除了架构它们之外,预计还有建造解决方案的校舍。结果,我认为讨论敏捷教练如何以精神讨论敏捷教练如何接近第二班的最适合可能的艺术虽然同时试图把事情简单化我的目标是逐步和迭代的F.ormulute框架通过在设计架构中的思想所需的思想过渡,帮助推荐一个新的敏捷架构师,这使得能够增加价值的架构。虽然它不需要BUFD,但它确实需要深思熟虑的建筑要求,例如质量属性,NFR和预期波动性点和可扩展性。由于最终会变得明显,细节包含由于适当考虑而容易避免的Gotchas。

两个潜在的观点

我的思想作品的方式,上下文有两个明显的表现。首先,我使用以下实体查看架构:

  • 事物- 使用......常用...
  • 消息- 包含或以某种方式传输...
  • 信息- 用于上下文,配置或其他处理

第二个,并且可能更有用,透视是在更传统的图层中查看架构:

  • DomainApability Interaction领域- 架构价值交付的公共面孔,内部或外部,通常以服务的形式
  • 能力- 功能或组件构建块
  • 相互作用- 集成驻留在架构中和架构上的功能

虽然两个观点与我共鸣,但对于本次讨论,我将使用后者。在未来的帖子中,我将更深入深入,这将与前者更自然地对齐。

有什么挑战?

那么我在这个特定地区常见的挑战是敏捷的教练?以下是出现的常见问题:

  1. 如何在增量细化期间支持域服务稳定性?
  2. 如何逐步提高集成点的复杂性,同时保持稳健性和管理波动性?
  3. 如何支持组件稳定性,同时逐步增加功能?

此外,每种情况通常都具有要求,以确保可扩展性和向后兼容性,以及实现质量属性,如可扩展性和性能。

识别并解决每种类型的挑战

因此,新的敏捷建筑师将发现有用的任何系统方法必须至少解决这些类型的挑战。3千岩所以我想提出一种方式来看待这一挑战,帮助您的客户完成这种心理过渡。这种方法的特殊好处是,所有引用的内容已经存在,正在使用中,并且在书籍和公共领域中提供了广泛的信息。请参阅最后的引用和进一步读取部分。所以让我们更详细地挖掘每个挑战。

如何支持域服务稳定性?

我建议通过讨论面向服务的架构模式来接近这一挑战。这些模式的主要好处是管理遇到架构以增量扩展时遇到的动态和易失利的服务上下文和合同。可以在soapatterns.org中找到这些每个详细信息(请参阅最后的引用)。以这种方式利用一些有用的模式包括:

  • 服务外观通过将核心域功能从公共合同解耦来支持动态服务合同。这将允许核心领域能力或公共合同独立发展。
  • 不可知的能力通过将可用的明确常见的域功能提供颗粒服务,帮助推导新的服务上下文。
  • 协议桥接通过确保通信协议的差异来支持协议波动 - 根据预期的协议波动,计划或紧急,充分处理任一类型的变体。
  • 兼容的更改/并发合同通常通过在不影响现有功能的情况下引入新功能以及为特定消费者类型创建相同域功能的多个合同来支持正在进行的修改。

如何支持逐步构建的集成?

对于通过增量架构开发改变的集成,介绍企业集成模式工作机构(HOHPE)。这些模式的主要好处是稳定第1天的集成点,因为它们增加能力和复杂性。一些常见的细化模式来识别和计划包括以下内容,我在几个大型项目上个人经历了以下内容:

  • 基本整合细化发生作为一个简单的集成变得更复杂和有能力。集成的示例演变可以包括从硬编码的转换,以将共享存储器共享到RPC,最后到消息传递。使用其他保护模式,这种细化可以随着解决方案和客户的影响最小。
  • 消息频道细化涉及集成的路径变得更加强大和强大。例如,消息信道可以从点对点转换到消息总线到消息桥接的使用。这将使用称为点对点通道,消息总线和消息传递桥的EIP。(Hohpe)。
  • 消息路由细化发生作为用于在通道上放置消息的路由机制从相对愚蠢到优雅和智能移动的路由机制。我用于逐步构建强大的路由基础架构的一些示例包括基于内容的路由,消息过滤,收件人列表,分离器和聚合器,编组消息处理器和消息代理。虽然核心集成也可能需要更改,但与由架构设计模式保护的消息路由能力相比,它是最小的。

如何设计能力足够强大,以便增量开发?

这可能是大多数技术人员是最熟悉的地方,但它在您的教练谈话中值得讨论,因为这不仅与其他作品联系在一起,还提供了更多的工具,可以在所有级别应用。在这里,我们考虑了能力水平的gof模式。一些常见的设计模式,为增量交付带来很大的价值,包括以下设计模式:

  • 工厂方法抽象并扩展创建功能。通过创建界面和继承,实现确定要实例化的类。此外,在此处也可以应用更简单的工厂模式,不依赖于继承。
  • 适配器,桥梁,装饰员,外立面和代理保护和稳定结构。这些中的每一个利用抽象来稳定结构是或可能最终挥发的区域。在大多数情况下,如果真正波动率的程度小于预期,则保护保护的成本将是最小的。
  • 策略,指挥,调解员和模板方法用于行为的增量延伸。同样,通过抽象的力量,可以根据需要扩展组件能力和行为,对核心解决方案的影响最小。

概括

我的目标是在谈到建筑切片方面,在可能的艺术中,创造一种系统的方法来聘用和教练可能的新敏捷建筑师。在架构的每个关键层上使用一般可用和经过验证的模式:域,功能和集成,架构可以设计,传送和内置垂直切片,使用增量传递方法满足质量属性和稳定性。作为教练,传达这种可能性并为新的敏捷建筑师提供工具对于赋予最早,并且经常创造和提供价值至关重要。

你怎么看?

  • 您发现哪些其他模式对切片架构有用?
  • 您如何向新的敏捷建筑师传达这项技术挑战?
  • 这样的系统会用于技术领域中的敏捷教练吗?

遵循这将更详细地描述我的教练视角:

  • 好处特定模式切片,
  • gotchas.考虑,
  • 具体例子来自企业项目和
  • 脚步使用这些工具,形成自己的分析模式

......所有希望引发一些深思熟虑的话语,并在技术领域的额外工具提供教练。

参考资料和额外的阅读

下一个>敏捷转型与行政参与

Michael Robillard是商业软件开发领域的专业,拥有超过20年的经验。在此期间,迈克尔举行了各种作用,包括;软件开发人员,软件架构师和系统分析师在管理领导和流程改进的领域工作。

评论(3)

  1. 唐娜
    回复

    一个大挑战是在保持高质量的同时将架构切成敏捷。最大的是拥有那种敏捷的建筑师,并让那个人在团队/产品中集成。不幸的是,这不会发生这种情况,因此,我认为最好让这些切片零件在客户提供功能外部。因此,其他敏捷团队将由逐步构建,步骤逐步构建,API为构建大多数公司的产品。

    回复
  2. 迈克尔·罗格拉德
    回复

    关于质量Dona的好点,因为我仅引用了对质量属性和要求的光明。

    我目前正在使用两个型号的客户,您描述:一个集成的架构师,以及为特征团队提供功能的服务团队。虽然我有一个技术背景,但我意识到并非所有敏捷的教练,这次谈话都始于一个这样的教练,问我如何与在建筑级别的架构师那样与不可行的建筑师一起使用。我正在尝试解决的具体方案是,当特征团队渴望快速交付价值切片,而建筑师,无论是集成还是外部服务团队,都成为瓶颈,因为“它必须全部建造”。我很容易拥有这种类型的对话,而其他人则不太自信。我也希望通过阐明我的思维过程,可能会磨练和对他人有用。

    我很感激你的反馈,一切顺利,迈克尔

    回复
  3. 克里斯
    回复

    我是我自己是一个建筑师,我认为教练必须是背景。
    例如,我的应用程序没有工厂,但我广泛使用依赖注入和TDD,所以你说的是不适用的。

    如果您希望遗失辅导是教导原则的话:(de)耦合,测试,稳固,休息(如果您做网络),MVVM / MVP / MVC,例外处理,...:不断发展的架构真的是马丁的一个大题Fowler,Robert Martin,Ron Jeffries,Rod Johnson(Java的春天)等人说!

    回复

发表评论

您的电子邮件地址不会被公开。必需的地方已做标记*