开发者自助服务的五大挑战(及解决方案)

开发者自助服务的五大挑战(及解决方案)

自助服务是开发者更快、更好地创新的方式,同时也降低了企业的风险。在设置内部开发者平台(IDP)时,以下是应该做和不应该做的事情。

翻译自 5 Common Developer Self-Service Challenges (and Solutions)

如何让开发者实现自助服务?

这是越来越多企业正在寻求答案的问题,因为它们正在拥抱开发者自助服务,或者有时被称为平台工程,以最大化提高软件工程师的生产力和工作满意度。对于已经拥抱 DevOps 的组织来说,开发者自助服务代表着下一个进化步骤,因为它可以帮助开发团队更高效地实施 DevOps 实践。

启用开发者自助服务最明显的解决方案似乎是部署所谓的内部开发平台,或 IDP 。越来越多的 IDP ,比如开源产品 BackstageAtlassian Compass ,以及其他受欢迎的例子,都可以帮助企业按需为开发团队提供多样化的技术解决方案。

IDP 无疑是有效的开发者自助服务策略的一部分。然而,实现开发团队的自助服务功能比仅仅部署一个自助服务平台并宣告完成要复杂得多。企业还需要解决一些需求,比如长期维护平台、更新以跟上不断演进的云技术、管理质量等等。如果事先不考虑这些挑战,可能会部署一个内部开发平台,其提供的价值远远达不到最大潜力。

为了证明这一点,我想简要介绍一下我在开发者自助服务项目中与企业合作时遇到的五个主要挑战,以及如何应对它们的建议。

开发者自助服务的定义和意义

在深入探讨挑战之前,让我们了解一下开发者自助服务的含义以及它为开发人员和企业带来的好处。

简而言之,开发者自助服务是一种模式,其中软件工程师可以创建所需的服务和环境,而无需等待或请求 IT 部门设置解决方案。通常,开发人员可以使用企业自助服务平台来提供各种现成的、官方支持的解决方案,比如允许开发人员快速简单地启动 Kubernetes 集群,或者使用经过批准的工具创建 CI/CD 流水线等服务。

当开发人员能够迅速获取所需资源时,他们可以更高效地工作,无需因为官僚程序而导致工作流程受阻。这不仅提高了工作满意度,还加速了企业的创新。

开发者自助服务还有助于减轻“影子 IT ”(指开发人员未经官方许可而创建的资源)带来的风险。如果企业允许开发者自助服务并提供现成的开发者解决方案,软件工程师就不再需要创建符合企业 IT 政策的定制服务和环境,而且这些定制服务通常未经管理和安全措施,因为 IT 部门不知道它们的存在。

此外,开发者自助服务模式有助于扩展常常短缺的专业劳动力。例如,许多企业的 Kubernetes 专家很少。通过让这些专家创建开发者可以按需启动的 Kubernetes 解决方案,企业可以让专家更高效地工作,因为专家不必为每个开发团队或需求创建一个定制的 Kubernetes 环境。

而对于不了解 Kubernetes 的开发人员,也无需花费大量时间尝试创建环境。相同的逻辑适用于网络工程师、系统管理员和其他类型的专家,他们的知识在企业中需求量很大。

总之,开发者自助服务是开发人员更快、更好地创新的一种方式,同时也降低了企业的风险。

开发者自助服务平台的挑战

决定为开发人员提供自助服务平台是一回事,确保该平台提供其应该提供的价值又是另一回事,由于以下挑战的存在。

1. 平台与开发者挑战不符

创建一个良好的自助服务开发者解决方案最常见的挑战可能是解决方案实际上并未解决开发人员的痛点。

这可能是因为设计和构建自助服务平台的人并不总是开发人员,或者并不能代表企业的所有开发团队。因此,他们不了解开发人员真正需要提高生产力的东西。

缓解这一风险的最佳方法是将自助服务平台视为一个产品,并指派一个产品经理(或多个产品经理)负责。这样的方法确保有人负责根据组织中的开发人员的实际需求,评估平台应该提供的功能。否则,可能会构建听起来很有趣但实际上开发团队并不真正需要的解决方案。

2. 保持质量

确保自助服务平台符合质量要求是另一个常见的挑战。低质量的工具和服务,工具之间的兼容性问题等,都可能影响自助服务体验,削弱自助服务平台的价值。如果开发人员不得不花时间修复你提供的解决方案,那么自助服务模式就无法提供其应有的好处。

解决这个问题的一种方法是为自助服务解决方案创建自动化测试。例如,您可以编写一个自动化测试来启动平台上的一个解决方案,然后评估它是否按预期工作。如果每周运行这些测试,您将能够及早发现问题,并确保开发人员不会因为平台错误或其他问题而中断工作。

从更广泛的角度来看,将产品经理分配给自助服务问题可以帮助提高质量。产品经理可以与开发人员沟通,收集有关他们在使用平台时遇到的问题的反馈,然后监督解决这些问题。

3. 自助服务平台的维护

即使您的开发者自助服务平台质量很高,如果没有人负责维护,随着时间推移它也可能会出现问题。它包含的解决方案可能会随着时间变化,导致需要通过更新来解决支持或兼容性问题。您可能还想将新的解决方案添加到平台中,这需要有维护和变更请求流程。

在这里,拥有一个产品经理将有助于确保自助服务平台得到必要的维护。最好还要有一个开发团队负责平台,以便在需要时进行更改。

4. 成本问题

一个良好实施的开发者自助服务平台将通过允许开发人员更高效地运作来节省费用。然而,与任何其他 IT 资源一样,平台本身的建设和运行都需要成本,如果您不对如何优化成本进行战略性考虑,可能会发现自助服务解决方案超出预算。

解决这个问题的方法是为您的自助服务平台制定成本管理和优化策略,就像对于任何对您的企业有重要成本影响的其他解决方案一样。换句话说,重要的是要考虑内部开发平台项目所提供的好处,以及与其相关的成本。

5. 缺乏参与度

最后,您可能会遇到这样一个挑战:您创建了一个自助服务平台,但实际上开发人员并没有使用它,因为他们不知道它或不了解它的价值。在企业中,“建设它,他们会来”很少奏效。

避免这个问题的方法是确保您的自助服务平台确实解决开发人员的痛点。向开发人员宣传解决方案,并通过优秀的文档和部署指南使解决方案非常易于使用,也将鼓励开发人员充分利用可用的自助服务解决方案。

结论:从开发者自助服务中获得更多

决定为开发人员提供自助服务解决方案是提升开发工作流程的第一步。但是,就像采用 CI/CD 流水线并不能自动保证提供 DevOps 所应提供的所有好处一样,仅仅构建一个自助服务平台并不能保证开发人员会享受到自助服务模式带来的生产力优势。

但是,当您计划好开发者自助服务的挑战时,您可以提前解决潜在的问题,并创建一个为开发团队提供最大价值的自助服务解决方案。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注