什么是流程工程以及为什么对软件交付很重要?
流程工程是一门创造性、可视化以及优化从企业到客户的价值流动的科学。它解决了大多数产品生产商面临的巨大挑战:如何以产品和服务的形式创造价值,并尽可能快速、可持续和无摩擦地将这种价值传递给客户。
从产品管理的角度来看,可以了解企业能多快实现客户的采用和满意度。从工程平台的角度来看,可以查看具有类似目标的DevOps指标,例如DevOps研究和评估组织(DORA)。从软件开发的角度来看,人们可能会关注代码质量和交付的功能数量。所有这些不同的观点都有一个共同点:衡量和优化从想法到实施和产品交付的流程。
流程工程是一种将价值交付视为从开始到结果的流程的现代方法。目标是让流程尽可能拓宽且通畅,以提供最大价值。
敏捷团队的4个关键流程指标
为了优化流程,它有助于可视化企业的内部工程和交付流程。最重要的是,希望了解企业当前的能力,以了解瓶颈在哪里以及在哪里进行经济高效的改进。
为了衡量软件交付能力,它有助于关注一些指标,这些指标可以捕捉企业具有的能力和面临的障碍。这些流量指标是:
(1)速度
交付的速度。企业能以多快的速度发布一个功能?所谓的从开始到结束的周期或提前期是多长时间?交货时间越短,交付速度就越快。
(2)吞吐量
可以完成的工作量。企业在一个季度内发布了多少个功能?在一周发布多少次?吞吐量表示企业当前的交付节奏及其容量,以及在当前设置中可以完成的最大项目数量。
(3)流动效率
企业遇到了多少浪费或摩擦?例如,做了多少计划外的工作?由于质量差,必须修正多少错误?发布的产品多久需要打一次补丁?能以多快的速度修补?要多长时间才能绕过批准流程或跳过预期的审查?
(4)流程风险
顺利交付的障碍是什么?企业规划实施的项目是否超出了其能力允许的范围?会让团队超负荷工作吗?是否存在导致延迟的流程故障?是否有太多的场景切换会降低整体效率?是否做了太多计划外的工作而导致沮丧和困惑?
流程工程可以比作从源头(企业)流到海洋(客户)的水流。人们更喜欢宽阔、快速流动、畅通无阻、清澈的溪流,它提供了一条从源头到海洋的清畅通道。
如何衡量流量指标
为了改善向客户交付软件的流程,企业不仅需要使工程与业务保持一致,还需要减少自己系统中的摩擦。只有当企业能够衡量当前的状态时,才能做到这一点。幸运的是,在现代软件组织中,可以自动捕获许多数据点以生成整体图。
大多数企业都运行某种形式的敏捷软件交付流程。这可能是运行敏捷Scrum团队、拥有看板流程或使用SAFe大规模运行敏捷软件。在通常情况下,这由处理企业的功能规划、软件开发和构建过程以及测试和发布工具的DevOps基础设施提供支持。
所有这些都会产生大量信息。例如,每个代码更改都讲述了一个关于更改内容、更改位置、更改花费多长时间以及每个步骤涉及的人员的细节。变更的元数据包括代码变更是否经过审查、谁参与了审查以及批准和合并需要多少次迭代的详细信息。此外,很容易获得补充DevOps信息:构建的持续时间和成功率;相应的测试覆盖率细节;以及功能或错误通知单的解决时间。
大多数企业已经拥有来自以下方面的宝贵数据:
- 功能规划和票务系统,例如Jira、Monday或Shortcut。
- 带有来自GitHub、GitLab或Bitbucket的相关元数据的软件存储库。
- 构建和发布自动化基础设施,包括GitHub Actions、GitLab Pipelines或CircleCI。
成功的关键是从不同的工程工具和孤岛中提取数据,融合数据,并应用智能领域特定的分析来生成流程洞察力,以优化和管理端到端交付流程。
使用流量指标实施工程管理
Logicica通过连接到上面看到的许多数据源、融合数据以及自动计算指标和洞察力,帮助工程领导者获得决策洞察力。然后,工程领导者可以对这些指标进行细分,并深入挖掘证据。这使开放的、数据驱动的团队文化能够做出更明智和协作的决策。
流程度量是一个核心概念,被软件交付团队和敏捷工程团队广泛使用,以更快地交付可持续价值。流程指标围绕三个核心支柱在不同来源之间保持平衡:
(1)交货速度:可以运送多少数据以及有多快?
(2)交付质量:是否遵循流程并实现质量目标?
(3)团队可持续性:企业是否确保保持在其能力范围内并避免让工程师感到筋疲力尽?
以核心支柱为中心的流程指标确保了一种平衡方法的能力,该方法不支持片面的极端情况,例如过度关注交付周期时间,导致忽视流程和团队成员的倦怠。
将三个核心支柱与流程指标相匹配,可以在整个工程组织内外提供一致且灵活的思维模型。
结论
软件交付是一个复杂的过程,一些指标对于持续跟踪和优化流程至关重要。然而,没有一个单一的指标可以解决所有问题,将指标围绕正确的概念集中比单一指标要好得多。
流程工程是一门蓬勃发展的学科,它专注于速度、吞吐量和风险,将每个人的想法集中在平稳、快速和可靠的交付上。