如何建立一个有效支持开发团队的平台

Team Work

我与 亚马逊云科技 客户的许多对话都是关于他们尝试构建开发者体验平台,以简化软件开发和运营、自动化部署、提高软件质量、降低成本并确保安全性和合规性。

不幸的是,并非所有平台都能达到他们的期望。最常被提及的问题是开发团队拒绝了本应为他们提供支持的平台。其他问题包括平台团队和开发团队之间缺乏协作以及平台要求复杂。

在这篇博客文章中,我将向您概述如何设置平台来有效支持您的开发团队。

平台的目的

IT 平台的主要目的是为交付团队提供简单、高效、无压力的工具链,以构建和运行软件,使他们能够专注于更快地解决业务问题。

平台团队是一个支持性组织单位

  1. 它向其他 IT 团队(主要是软件和数据工程团队)提供工具即服务;
  2. 这有助于就平台的工具和服务为这些团队提供入职、支持和建议;
  3. 这有助于平台用户在平台工具和服务的范围、路线图和优先级上保持一致;以及
  4. 负责确保产品开发团队遵守有关安全、合规和财务方面的既定全球指导方针

平台范围

开发者体验平台可以提供各种工具和服务,旨在支持交易和分析应用程序的开发和运营。典型产品包括用于软件开发和测试、CI/CD 管道、监控和记录、容器化和协调、服务和数据发现、分析、安全、协作以及计费和备份服务的工具和服务。在某些组织中,平台为部署和运行应用程序提供托管服务。

平台大小

根据经验,公司产品开发的10%至20%应由平台组成。这可能会随着时间的推移而有所不同,并取决于平台的范围。在平台开发之初,资源可能会更大,随着功能的充足和平台范围的变化减少,资源可能会缩小。

平台团队的特征

平台团队是内部使用的产品的产品团队。它们规模小、多样、跨职能、自组织。它们包括设计、构建和运营平台产品所需的所有角色。有效的团队包括6—10人,还有一定的回旋余地。所需的角色取决于贵组织当前的运营模式和成熟度。典型角色包括产品所有者、软件开发人员,有时还包括质量保证 (QA) 工程师和 IT 管理员。

平台产品所有者应了解开发者工具的社会技术领域(可能是平台产品的前用户),并具备构思、沟通、促进和交付管理技能。组织有时会低估产品所有者的角色——这是一个错误。产品所有者在平台的成功中起着关键作用。成功的平台团队从用户需求向后推进。

拥有具有运营和开发背景的团队成员非常重要。开发人员应该能够利用特定领域的专业知识(这些人被称为 T 型或 V 型开发人员)跨团队职责的技术堆栈工作。

在某些组织中,开发人员还负责测试他们的产品。其他组织增加了专门的质量保证工程师的角色,即专注于测试自动化的软件开发人员。我建议授权和培训开发人员,确保他们自己的产品质量。团队中的角色越少,其灵活性和效率就越高。如果 QA 工程师是专门的角色,则他们应该是平台团队的一员,而不是单独的 QA 团队。这使他们能够在很长一段时间内对平台的特定部分承担责任,并独立运行其服务。

你怎么知道你的平台是否良好?

很难衡量平台是否实现了目标,因此收集正确的数据和轶事很重要。一个很好的指标是净推荐值(NPS),该指标基于询问平台用户是否会向新会员推荐该服务。

另一个指标是交付小组对非强制性服务的采用率。这两个指标是一般指标,但您可以通过在 A/B 测试中部署平台服务来获得有关新版本平台服务的非常具体的指标。在这种方法中,一些交付团队使用新服务,而对照组不使用。您可以测量和比较某些能力,例如两个组的周期、吞吐量、发布频率或持续时间。

如何获得平台采用

我成功地使用了三种策略来克服在采用平台服务时遇到的问题:

  1. 让产品团队代表参与平台开发决策,但不要将他们视为一个发声板;授予他们有关平台产品的范围和优先顺序的决策权。
  2. 在用户团队和平台团队之间轮换工程师。这样,将使用该平台的工程师就可以积极参与平台的构建,并可以确保其设计符合他们的需求。相反,平台工程师在为消费工程团队工作时必须自己吃狗粮。合理的轮换时间为几周,但不超过四分之一。
  3. 不惜一切代价避免投机设计和 镀 金 。不要过早地概括。只有在其他消费团队承诺使用产品时才能开发产品。最好将平台产品原型设计给单个团队(可能还需要平台团队的额外能力),以便在同一个环境中学习和使用。只有当另外两个团队承诺使用它时,才将产品移交给平台所有权并在其余两个团队承诺使用时才将其推广使用。

结论

平台是大型产品开发组织的重要组成部分。除其他好处外,他们还可以实施集中和自动化的策略,从而提高您的合规性和安全性。如果设置得当,它们可以提高交付团队的质量、周期时间、吞吐量和积极性。我在这里给出的原则应该可以帮助你充分利用平台以及创建和管理平台的团队。

你对开发者体验平台有何体验?我很想听听其中的一些。