写点什么

为确保敏捷行为的实施而制定合约

  • 2016-04-18
  • 本文字数:2258 字

    阅读完需:约 7 分钟

Martin Kearns 在澳大利亚墨尔本的第一会议上发表了一场关于敏捷合约的演讲。InfoQ 对他进行了采访,内容如下:敏捷合约与瀑布项目的合约有何不同之处,合约该如何应对范围内的变化,在开发过程中的主要干扰或延误,可以做些什么来确保合约能提供敏捷行为的权利和帮助所有那些相关的人在基于敏捷思维的基础上一起工作,当机构想要在敏捷软件开发中使用合约时律师所起的作用,以及为了能够使用敏捷合约,机构必须做什么。

InfoQ:为什么您认为合约对敏捷开发来说很重要?

Kearns:一所机构,无论何时需要第三方的参与来传送结果、提供支持,增强所作用和增加金融业务都是交易的一部分,而合约是成功的基础。最重要的是合约代表着该途径的意旨、预期行为和责任制。

InfoQ:敏捷开发的合约以何种方式不同于瀑布项目的合约?

Kearns:最重要的不同是在支持文件中,总是试图删除瀑布项目的变动,许多费用和重点都在于后续变化(即范围蔓延),这是不可避免的,无论计划多么提前完成。这就自然而言地创造了一种不利关系,即双方都努力专注于他们自己的最大利益。

敏捷合同开始于允许项目失败的构想,因为合约体系必须允许双方基于一个可怜的商业理念构建一个合同。太多的项目因为某一方的自身利益而持续。还需要有一个延伸的退出条款,因为一旦传输的价值比迭代的成本还要少,那就没有理由继续了。在栅栏的另一边(供应商),如果客户行为和思维不支持敏捷方法,那么在不产生损失的情况下,退出的能力就是必不可少的。对敏捷合约来说,共同的责任是必要的,不能降低到一种单方的交易。

InfoQ:在大多数“传统合同”中,必须交付的范围是一致的。在这段时间里你想用敏捷来接受变化,适应范围。敏捷合同怎么支持呢?

Kearns:在第二到第四次的任务迭代中,我努力确定的一件事是对积压任务以及用户故事的周期时间的自信度,为了敏捷合同的成功,我们需要对计算交付混合项目的成本有一个很好的处理。为了做到这点,我通常喜欢参与 Time 和 Materials 建设中最初的冲刺。

一旦我们有可以接受的自信水平,我喜欢用工作来确定以固定成本可以实现的很多功能和 / 或故事点。一旦认为这是“可行的”,我就可以像进入我的夜间俱乐部,“1 进 1 出”。我改变的方法就是一直说“是”,客户可以提高项目的最高限度或者删除大小相等的故事 / 功能。很明显当项目的最高限度得以提高,成本和更多可能的时间也会提高。

InfoQ:您能就敏捷合同是怎么处理开发过程中的主要干扰或者延迟,举个例子吗?

Kearns:我最喜欢的方式之一是创造一个障碍的气泡图,这样我可以追查一下随着时间延迟的轨迹。一旦图上出现气泡,它就会随着障碍存在的时间变长,开始向右移动。随着因为无所作为而引发的相关交付影响变得越来越显著,我们就会“冒泡”。一旦气泡离开容忍边界,相关成本(气泡大小)就转变成一个变化请求。

当项目延迟的影响不再被目前的合同所忍受,那么它就必须通过合同修正处理。这可以通过减少故事点的限度,或者增加项目支出而产生。正如我们所看到的气泡每天超出项目容忍度,而我们在它们成为财务问题之前就提供最大的领先时间来解决问题。

InfoQ:在您的演讲里提到敏捷合约应该确保敏捷行为帮助所有那些相关的人在基于敏捷思维的基础上一起工作。您能就此详细说明一下吗?

Kearns:我喜欢在我的合约里看到的一件事是,早期失败是安全的。如果我作为一个供应商,已经证明了你的项目假设是错误的,期望值不可能达到,因为我得到报酬以及我的客户在能够重新分配项目资金到其他地方上看到价值,是很重要的。仅此一项在最初的讨论中就产生了一个不同的重点,早期的迭代作为结果,也更加重视起来。

另一件关于敏捷合约的事是,因为范围不能高度提前定义。传统的供应商交付也设计为逐渐形成以及独立于项目其他元素,以保护供应商的利益。不幸的是,项目成果是相互依存相关的,需要重新设计敏捷合同条款。一种可以解决的方式,一种可以设计正确行为的方式,是各方“以原则工作”的必要手段。这一责任必须在两个机构中共享。这对我而言已经是我在对这种合同安排负责的律师间的合作中,学会欣赏的东西。因为原则共享,它提供了一个公平的与他人交战的游戏领域。这样原则的一个例子是将明确地显示由供应商团队在商业决策上要求的响应率,以实现目标的发布日期或者连续的对市场的交付速度。

在合同计里嵌入敏捷思维有很多好处。我想提及的最后一件事是供应商管理在这种情况下的作用。随着我们在合同评审(2-4 周)上有更快的节奏,会持续关注于结果以及迭代的交付产品如何增加价值和 / 或认知。通过正式的循环反馈,定期重新调整关系,透明度也以此鼓励各方关注结果,互惠繁荣,因为成功是共享的。

InfoQ:您认为当机构想要使用敏捷软件开发合约时,律师该起到什么作用?

Kearns:律师有着同样确保项目条款反映交付的工作性质以及客户利益得以保护的责任。我觉得这个没有改变。敏捷合同的迭代是通过使用更精细的信息和定期的审核节奏来降低风险的。

InfoQ:为了能够使用敏捷合约,机构自己需要做些什么呢?

Kearns:于我而言,首先它开放于一种新的工作方式,并意识到为了成功实施,任何合同都有双向责任。在一项敏捷合同中,有更多的合作以及对双赢局面的忠实渴望。人们需要积极主动地参与其中。当难以辨认在办公室奔波的是供应商 / 客户时,我就知道了一切都在运转。

查看英文原文:Contracting to Enable Agile Behaviour


感谢张龙对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们。

2016-04-18 19:001170

评论

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

4层板到12层板叠层经典设计方案

不脱发的程序猿

28天写作 电路设计 3月日更 PCB PCB布局

【LeetCode】扁平化嵌套列表迭代器Java题解

Albert

算法 LeetCode 3月日更

如何在3分钟内实现音频变声和趣味音效?

拍乐云Pano

音视频 RTC 出海社交 社交泛娱乐

SQLServer性能调优方法小结

嘉为蓝鲸

数据库 sql 运维 SqlServer MAXDOP

一文搞懂 FlinkSQL 的 KafkaSource

shengjk1

flink flink源码 flink sql

Flink 计算 TopN

shengjk1

flink flink 实战 flink topN

Flink 计算 PV UV

shengjk1

flink flink 实战

Swift 5创建和使用Framework, XCFramework 从入门到精通 John 易筋 ARTS 打卡 Week 42

John(易筋)

ARTS 打卡计划 Framework XCFramework

Redis新版本开始引入多线程,谈谈你的看法?

Java架构师迁哥

使用Redis,你必须知道的21个注意要点

Java 数据库 redis 架构 面试

SDK介绍及相关功能测试

行者AI

测试 sdk

FlinkSQL 平台

shengjk1

flink flink sql flink sql 平台

快速使用Vue3最新的15个常用API(1W5+字详解,建议收藏)

零一

vue.js 大前端 Vue3

超全Android中高级面试复习大纲,在线面试指南

欢喜学安卓

android 程序员 面试 移动开发

一文搞懂 Flink 中的锁

shengjk1

flink flink 锁

java deep vs shallow copies

shengjk1

Java deep copy shallow cop

万众瞩目的EGG Network,备受期待的New-DeFi自治共识论坛在海口闭幕

币圈那点事

区块链

一文搞懂Flink SQL执行过程

shengjk1

flink flink源码 flink sql flink sql 执行过程

图解TCP的通信机制

零一

TCP 网络

想学IT的必看!漫谈MySQL权限安全,分享一点面试小经验

欢喜学安卓

android 程序员 面试 移动开发

JVM G1GC的算法与实现

Yano

Java JVM GC G1GC

一文搞懂 FlinkSQL函数 LAST_VALUE 的原理

shengjk1

flink flink sql flink 源码

Dubbo的设计理念原来就藏在这三张图中

中间件兴趣圈

dubbo RPC

硬件工程师必备,常用元器件封装速查表

不脱发的程序猿

28天写作 电路设计 3月日更 元器件封装速查表 电子设计

Python-计算机视觉-OpenCV-调色板

Aldeo

Python OpenCV

阿里一战封神,百万人跪求的Java面试手册终于开源;

Java架构师迁哥

已拿到蚂蚁金服Offer!阿里内部二十三万字Java面试题总结

Java架构追梦

Java 阿里巴巴 架构 面试 金三银四

Python OpenCV 图像处理二值化,取经之旅第 7 天

梦想橡皮擦

3月日更

Flink 提交作业运行的各种模式总结

shengjk1

flink flink 执行

寻找被遗忘的勇气(二十三)

Changing Lin

3月日更

到底什么是Event Loop?那就来了解一下JavaScript分别在浏览器和Node环境下的运行机制吧

零一

JavaScript 大前端

为确保敏捷行为的实施而制定合约_文化 & 方法_Ben Linders_InfoQ精选文章