是否可以为平台开发做敏捷工作?想象一组开发 pod,每个开发 pod 负责平台的一个独特功能区域。现在想象一下使用该平台向公众构建软件应用程序的 2-4 个应用程序开发团队。在这种情况下,您如何使敏捷工作?
2 回答
敏捷可以在平台开发中发挥作用,其原因与它在应用程序开发中的作用相同,并且在这两种情况下都可能由于相同的基本原因而失败。
敏捷过程,顾名思义,适应他们的环境。通常是使用该过程的人对其进行调整,以便它仍然适合正在应用的任务的目的。这种适应性使敏捷过程具有内在的健壮性,前提是工作环境可以容忍过程适应性。
在平台开发中,发布时间表通常比在应用程序开发中更分散且更稳定。乍一看,这意味着提供功能增量的用处不大,并且不会提供与通过向客户提供可用功能增量所获得的反馈循环相同的反馈循环。仔细观察,只有当没有人在等待正在生成的功能,或者只有完整的交付物才有任何价值时,这才是正确的。
一方面环境更有利于成功;另一方面,缺少敏捷过程的基本机制之一。只要可以调整流程以弥补缺失的机制——例如,通过让测试人员或应用程序开发人员使用临时可交付成果——那么调整后的流程应该仍然适合目的。
在软件设计和构建方面,软件(包括规范)的编写方式或多或少是相同的:一次一行,并且或多或少由同一类人编写:软件开发人员;在动机和注意力跨度方面具有或多或少相同的特征。新功能的范围可能更大,目标定义的时间更长,但仍需要逐步实现,并且可以定义这些步骤以适应迭代,并在最后展示某种进展. 开发经理经常考虑里程碑和可交付成果,因此这可能只是当前实践的演变。
我见过不同团队在平台和应用程序开发中使用的 Scrum 流程。团队根据不同的需求和对流程的不同理解,以不同的方式实施流程,但主要的成功因素是团队(以及团队中的个人)的能力和团队管理的能力。
我认为这取决于您如何定义敏捷。敏捷是一堆方法论和实践的总称。
在维基百科中,它是这样定义的:
敏捷方法通常促进有纪律的项目管理过程,鼓励经常检查和调整,鼓励团队合作、自组织和问责制的领导理念 [...]。
我们在我工作的地方实践一种敏捷方法,架构团队以一种非常不明确的敏捷方式工作,而功能团队则使用 Scrum。未指定我的意思是没有关于流程如何的严格规则,但我们使用了几个敏捷原则。最重要的开发不是瀑布式的,而是迭代式的。
在整个核心软件开发部门,我们使用持续集成和大量自动化测试。每日站会根据定义是功能团队使用的一种做法,但有时也适用于平台团队,具体取决于具体情况。平台团队每周都会公开展示他们所做的事情。此外,用户故事不仅用于功能团队,有时也用于平台团队,当职责重叠并且产品需求被证明是更普遍的平台需求时。
所以,是的,我认为平台团队可以实现敏捷,只要环境(即管理和/或产品需求)允许。您使用什么以及如何使用它取决于您自己。