写点什么

讨论:从客户的角度衡量敏捷项目的成功

  • 2008-02-13
  • 本文字数:2006 字

    阅读完需:约 7 分钟

最近在 Scrum Development 用户组中发起了一场精彩的讨论:“客户该如何衡量敏捷项目的成功?”讨论重点放在了“衡量”二字上。看起来各方意见就“客户应该能够以他们自己的方式来衡量成功”这一点达成了一致,而且也得出了一些衡量标准。但没有最好的方式,只有最适合具体情况和客户的方式。

传统软件开发方法论中包括多种矩阵:质量矩阵,如每个发布的缺陷率;计划矩阵,如实际的工作量 / 天数与估算工作量 / 天数之比,又如交付里程碑的完成情况;还有成本矩阵,如预算与实际成本之比。

但是,绝大多数敏捷开发组织在收集和上报衡量标准相关数据的能力上表现薄弱,并因此而为人所诟病。他们确实有一些技术开发衡量标准,例如 checkstyle(译者注:一个 Java 程序源代码风格检查工具)发现的错误,测试代码覆盖率,NCSS(译者注:一款分析统计软件)等等,这些标准对客户而言却没有太大的吸引力。

以客户的角度来衡量项目成功至关重要,因为纵使开发团队遵守正确的流程,最终结果也未必是客户想要的。可能会南辕北辙。

Mike Dwyer 说道:

你这个问题跟外科医生的问题一样:如果我遵守所有的步骤行事,之后病人的生死便与我无关,这种情况下我算是称职吗?我的回答是,你的目标是什么?一个康复的病人还是成功的过程?

在这种情况下,如果最终结果跟我们理智上的期望相同,病人痊愈了。这时我们就可以称之为一个拥有成功过程的成功项目。

Vikrama Dhiman 提供了另一个例子:

我的项目可能是打算造起 1000 层的高楼,我希望把它卖给联合国——团队自组织的非常好,他们也帮我及时意识到自己的远景目标——但联合国不打算买下它,我也不想把它卖给其他人。这个项目是成功的吗?我也许会说是。那这个最终产品是成功的吗?我会说不。那是谁的错?理所当然是产品负责人(Product Owner)的问题。

这里,团队可能正确地遵守了所有的过程,但却可能造出错误的产品。产品负责人应该被指责吗?是的。团队应该被指责吗?是的。客户满意吗?当然不。

那么有没有办法可以让客户衡量一个敏捷项目的成功与否?正如上面几位所述,这个问题的答案与展示一个伟大的过程毫无关联。

有几个人建议说,如果客户满意的话,那他就会认为这个项目是成功的。但“满意度”却很难量化和衡量。在 Agile India 用户组中也有一个类似的讨论,在该组的讨论中得出了几个比较主观的衡量标准用来衡量客户满意度。如果以下情况满足的话,那客户就是满意的:

  • 他得到了项目预期的商业价值。
  • 他能够根据商业需要来调整路线,所发布的功能在发布的那一时刻更有价值。
  • 他能够给出早期反馈。
  • 他能够为特性 / 故事制定优先级,从而在恰当的时刻得到恰当的功能。
  • 他能够在所有的功能被实现完以前终止开发,因为他意识到剩下的功能可能永远都用不到。
  • 他与开发团队之间建立了双向的信任关系。
  • 他在项目过程中没有碰到出乎意料的事情。
  • 他觉得在项目上的投资物有所值。

也有其他几个人认为,在团队启动项目之前,有一个对于完成的定义是很重要的。客户和团队应该能够对一个故事的完成达成一致。一旦团队决定了如何才算“完成”,那么就可以由此来衡量客户满意度和使用其他几个矩阵了。

Mike Dwyer 补充说:

有一个对于完成的简单定义:到 sprint 结束时,团队的工作被客户验收通过,这部分工作就完成了。在这一点上,所有的工作和相关成本就从浪费变成了价值。这就回答了这几个问题:“从计划上来看我们走了多远?(产品 backlog——累计验收的工作)”和“从预算角度来看,我们目前干得怎么样?(完整计划预算——实际成本)”。它同样还回答了这些问题:“我们的效率如何?(全部实际成本 /已完成任务的计划成本)”和“我们的资金消耗率 [译者注:burn rate,一家新公司在赚取营运现金流前消耗创业资金支付日常开支的比率] 怎么样?(每个验收或是已完成任务的平均成本)”。

Scott Ambler 认为应该使用主观衡量标准和客观衡量标准的组合。他建议团队应该先开始收集一些基本信息,例如:

  1. 实际成本(时间,金钱,等等)
  2. 一些交付的功能(用例点,用户故事点,等等)
  3. 缺陷趋势
  4. 相关干系人满意度

通过这种方式,团队就可以用业务词汇(最基本的就是花销和系统能力)跟业务人员沟通,同时还是继续跟踪那些关系到开发成败的衡量标准——如质量。度量相关干系人的满意度也是最重要的衡量标准之一,无论是不是敏捷团队都应该把它引入项目。交付的代码没有缺陷,不一定就意味着交付的软件具备价值。

这里既有主观标准,譬如客户满意度、客户看法;也有客观标准,如已完成的故事、成本、缺陷趋势,它们组合起来帮助客户判断一个敏捷项目的成功与否。

这个讨论看上去在“遵守正确的流程不是最重要的”这个观点上形成了共识。在流程以外,还需要有主观和客观的检查,用以确保项目会走向成功,客户会满意。开发团队需要根据给定的场景来进行选择:是任取其一,还是兼容并蓄?关键是怎样做能够收到最佳成效。

查看英文原文 Discussion: Measuring Success of an Agile Project from the Customer’s Perspective

2008-02-13 19:071164
用户头像

发布了 197 篇内容, 共 55.4 次阅读, 收获喜欢 20 次。

关注

评论

发布
暂无评论
发现更多内容

ClickHouse利器—如何提高留存计算速度

行者AI

数据库

架构师 3 期 3 班 -week6- 作业

zbest

作业 week6

分享一个普通程序员的“沪漂”六年的历程以及感想

程序员老猫

回忆录 经历 年终总结 沪漂 上海买房

技术干货 | 六分钟学会使用 HBuilder 引入构建 mPaaS 小程序

蚂蚁集团移动开发平台 mPaaS

小程序 uni-app mPaaS

Linux基本操作命令

行者AI

Linux

Rust布道者张汉东倾授,入门Rust初学者都要攻破哪些难点?

华为云开发者联盟

学习 rust 语言

架构师训练营大作业

Gosling

架构师训练营第 1 期

跨年巨作!13万字!腾讯高工纯手写“JDK源码笔记”直接带你飙向实战

比伯

Java 编程 架构 面试 计算机

令数字起舞,让自然微笑:TECH4ALL的2020启示录

脑极体

Java中的常量

cdhqyj

Java

百度京Fun生活节 双旦福利HIGH 翻全城

DT极客

仅4步,就可通过SQL进行分布式死锁的检测与消除

华为云开发者联盟

数据库 sql 死锁

通达同城快递设计方案

garlic

架构师训练营第 1 期

近些年有哪些口碑炸裂的项目管理工具?各具特色的项目管理工具我们该如何选择?

爱吃小舅的鱼

项目管理 程序人生

第一张区块链完税证明在深圳开出,区块链政务应用再获突破

CECBC

区块链 电子证明

破除数据垄断,数据上链或是关键

CECBC

区块链 大数据

Flink Forward Asia 2020 -- Keynote 总结

Apache Flink

flink

爆赞!P8架构师总结29篇多线程与高并发+设计模式核心笔记

Java架构追梦

Java 学习 架构 面试 多线程高并发

LeetCode题解:239. 滑动窗口最大值,二叉堆,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

实用流程工具,浅析LR.NET配置型工作流引擎

雯雯写代码

.net 工作流

写出一手烂代码的19条准则

Java架构师迁哥

北京一咖啡店启动数字人民币应用场景测试 店员:目前处于内测阶段

CECBC

数字人民币

云挖矿APP系统开发|云挖矿软件开发

系统开发

如何使用mock应对测试所需随机数据

华为云开发者联盟

测试 数据 Mock

IPFS分布式存储矿机系统APP软件开发

系统开发

RPC Demo(二) 基于 Zookeeper 的服务发现

Java zookeeper RPC 服务发现

重新发现科技与人文的互动

脑极体

华为云·云享专家李万龙: IoT 梦想,从0到1的实现

华为云开发者联盟

技术 物联网 IoT

测开之函数进阶· 第6篇《闭包》

清菡软件测试

测试开发

送你一份迷你书,全面了解如何做好大促技术备战

京东科技开发者

DevOps

软件测试——网络协议知识(二)

测试人生路

软件测试 网络通信协议

讨论:从客户的角度衡量敏捷项目的成功_研发效能_Vikas Hazrati_InfoQ精选文章