高效能团队模式:支持软件快速交付的组织架构
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

序言

我们始终追求让系统保持小而美的状态,但是大多数成功的系统都难以做到这一点。雷曼软件进化定律,特别是持续增长法则,反映了随着系统的使用、不断涌现出新需求和机会,给软件能力扩展带来了巨大的压力。为了应对这种日益增加的复杂性,并且从中受益,需要极大地提升双模设计领域的重要性:系统设计及创建和迭代这些系统的组织设计。关于前者,我们已经投入了大量的精力,比如领域驱动设计、软件架构方面的图书品种数在持续快速的增加。而《高效能团队模式》则更关注软件开发组织设计,这一点同康威定律可以说是一脉相承的。

一种基本的观点是,设计系统的组织由于受限于组织的沟通结构,只能设计出与之类似的系统架构。我们发现,这对于系统设计管理方面存在显著的影响。从根本上讲,我们发现了一种设计组织的架构标准,即组织设计需要以满足沟通的需要为导向。

上面这段文字援引自梅尔·康威发表的软件开发组织设计领域的经典论文,这正是本书的绝佳起点。《高效能团队模式》描述了与团队结构和交互模式相关的组织模型,将组织对系统的作用作为驱动设计的关注点。

随着系统复杂性的提升,组织构建和进化方面的认知需求也会随之增加。通过定义清晰的职责和边界来管理团队间的认知负荷,是团队拓扑方法在团队设计方面最与众不同的特点。实现适当范围、有限职责、自然且相对独立的(子)系统结构是团队想要达成的目标。这也考虑了康威定律,并通过康威定律来维护一个具有清晰边界的松耦合、高内聚结构(也就是众所周知的逆康威定律)。

从这方面看,《高效能团队模式》可以作为康威论文的有用论述。当然,本书的内容不止于此。值得特别关注的是,本书定义了四类团队模式,并描述了它们的产出、组织形式及塑造这些模式的影响因素。流动式团队是最主要的团队形式。这种团队针对流动进行优化,它们的目标就是持续交付价值,并且职责完全闭环。这意味着系统设计不仅要追求低耦合,而且要尽量解耦,从而支持流动式团队间的流动及更少的依赖和协作需求。复杂子系统团队和平台团队降低了流动式团队的工作负荷,将下游作为上游子系统或平台能力的内部用户,支持多个流动式团队全流程的开发、交付和运维工作。赋能团队同样服务于另一个团队,并作为服务的提供者,帮助流动式团队学习和预研新技术,使流动式团队在保持专注的同时获得效率方面的提升。

Matthew Skelton和Manuel Pais利用他们丰富的经验,在本书中不仅描述了如何帮助这些多样化形式的团队获得成功,也强调了实际应用中的变量,识别设计本质,指出那些需要回避的反模式。他们非常慷慨地提供了相关工作的指引和洞察,并通过大量的学习案例进一步充实了本书的内容。

《高效能团队模式》通过对这些关键组织模式、动态交互模式及组织进化方面细致入微的展示,丰富了我们对于组织结构的理解。而正是因为本书的清晰和聚焦,使本书可以作为一个实用指南,在组建团队时赋予团队面对挑战迎难而上的能力,帮助现有团队在响应价值交付方面变得更加有效。

——Ruth Malan,Bredemeyer Consulting公司架构咨询师