写点什么

供敏捷软件开发使用的合同

  • 2009-05-10
  • 本文字数:1550 字

    阅读完需:约 5 分钟

虽然《敏捷宣言》中说“客户协作重于合同谈判“,合同仍然是很多开发人员和公司要面临的现实。Peter Stevens 分析了 10 种不同类型的开发合同,并解释了每种类型对于敏捷项目的适合程度。他发现:相比固定价格合同与按时间和材料制定的合同来说,有一些合同似乎更适合敏捷项目。

正文

虽然 《敏捷宣言》 说“客户协作重于合同谈判”,合同仍然是很多开发人员和公司要面临的现实。 Peter Stevens 前不久分析了 10 种不同类型的开发合同,并分析了每种类型对于敏捷项目的适合程度。他发现:相比固定价格合同与按时间和材料制定的合同来说,有一些合同似乎更适合敏捷项目。

Peter 检查了这 10 种合同类型,针对每一种合同类型,描述了以下方面:

  • 合同的通用结构
  • 如何应对范围变化
  • 风险如何分散
  • 在客户与开发者之间培育起了什么样的关系

最基本的开发合同是按时间和材料制定的合同(time-and-materials)。 这将大部分的财务风险转嫁在了客户一边。开发人员没有动力去早点完成项目或是维持低成本式的开发。

最常用的另一种合同就是固定价格合同。这种合同很受客户欢迎,因为它将大部分风险都放在开发人员一边。如果项目时间超出预计,这种协议就对于项目范围的变化就不友好了,而且对于范围中应包含的特性酝酿着潜在的争议。

Stevens 考察了这些这些合同,其中还包括一些有趣的变种,比如固定利润方式的合同。缔约方事先就固定的利润达成一致意见,比如给付开发人员100,000 美元。不管项目用了多久完成,负责开发的公司都会得到利润外加发生的实际成本。如果项目提早完成,客户与开发人员都能受益。

Llewellyn Falco 使用了一种混合合同,并将之归功于 Bob 大叔(Richard Martin)。该合同既包括固定金额,又包括一个按小时收取的费率。开发人员会估算工作要用多久,比如 80 个小时。然后开发人员会用该时间乘以他们“通常”每小时收费的数目,比如 200 美元 1 小时;这样得到的金额会拆分成两部分:一部分是固定金额,另一部分是较低的每小时费率。比如:固定部分可能是 8000 美元,每小时的费率降低为 100 美元。如果项目按预计时间完成,那么价格就是 8000+80*100=16,000 美元。如果项目时间超出预期,开发人员就只按 100 美元一小时来收取额外的费用。该方法试图在开发人员和客户之间平分风险。

Peter Stevens 推荐使用基于阶段的开发合同与称为“ money for nothing, changes for free ”式的合同。他声称自己使用这种阶段式开发合同取得了成功,不过他也发现:

“Money for nothing, changes for free”合同将 Scrum 与 Agile 开发过程的优势转化为了竞争优势。 - 通过按增量式的方式排定并交付业务价值,彻底失败的几率就大大降低了。这种优势可以传递到客户那边。

  • 而且,这是一种合作模式,能够让双方都有动力保持成本不要升高。
  • 早期取消条款为 Scrum 团队赢得了更高的工作效率。可也有不好的一面,该条款让人觉得有点像是“黄金降落伞”【译注】,在目前的经济气候下,该条款可能在政治上难以接受。

Peter 在结尾时又回到了《敏捷宣言》,强调即使好的合同很重要,与客户保持良好的协作关系要更为重要。

您曾参与过哪种合同的制定?这些合同对于公司于客户的关系起到了什么样的作用?请在新闻后面留下评论并共享您的经验。

译注:“黄金降落伞(Golden Parachute)”是按照聘用合同中公司控制权变动条款对高层管理人员进行补偿的规定。“黄金”意指补偿丰厚,“降落伞”意指高管可规避公司控制权变动带来的冲击而实现平稳过渡。在目标公司被收购的情况下,公司高层管理人员无论是主动还是被迫离开公司,都可以得到一笔巨额安置补偿费用,金额高的会达到数千万甚至数亿美元,因此使收购方的收购成本增加,成为抵御恶意收购的一种防御措施。但其弊端是,巨额补偿有可能诱导管理层低价出售企业。

查看英文原文: Contracts for Agile Software Development

2009-05-10 08:362858
用户头像

发布了 479 篇内容, 共 180.3 次阅读, 收获喜欢 53 次。

关注

评论

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

如何将iso文件安装到Virtual里的ubuntu去

汪子熙

Linux ubuntu windows 虚拟机 Windows 10

如何给VirtualBox虚拟机的ubuntu LVM分区扩容

汪子熙

虚拟机 Cloud virtualbox CloudFoundry

那些年我用过的SAP IDE

汪子熙

ide SAP abap SAPGUI

过拟合 - DAY13

Qien Z.

5月日更 过拟合

ABAP宏的调试

汪子熙

调试 SAP abap macro

ABAP的语法高亮是如何在浏览器里显示的

汪子熙

SAP abap SAPGUI 语法高亮

S4HANA和CRM Fiori应用的搜索分页实现

汪子熙

CRM SAP Fiori SAP UI5 S/4HANA

SAP UI5和CRM WebUI的View和Controller是如何绑定的

汪子熙

CRM SAP abap WebClient UI SAP UI5

如何查看某个用户指定时间段的ABAP开发记录

汪子熙

SAP abap SAPGUI

作业 - 设计千万级学生管理系统的考试试卷存储方案

sN0wpeak

架构实战营

CRM, C4C和Hybris的工作流简介

汪子熙

CRM SAP C4C Hybris Commerce Cloud

优化docker镜像的几种方法

运维研习社

Docker 镜像 优化技巧 5月日更

S/4HANA for Customer Management里的搜索分页处理

汪子熙

CRM SAP abap S/4HANA

S4CRM和C4C的技术比较

汪子熙

CRM SAP ERP abap Cloud for Customer

SAP UI5, CRM, S/4HANA 和 C4C里的Association, Composition and Aggregation

汪子熙

JavaScript CRM SAP SAP UI5

你真的会用ABAP, Java和JavaScript里的constructor么?

汪子熙

JavaScript CRM SAP abap

ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较

汪子熙

JavaScript nodejs CRM SAP C4C

架构实战营 模块四作业

夏日

架构实战营

架构实战营 - 模块四作业

Sun

SAP Fiori里的List是如何做到懒加载Lazy load的

汪子熙

JavaScript SAP Fiori SAP UI5

使用ABAP Push Channel(APC)开发的乒乓球游戏,可双打

汪子熙

SAP abap APC

今天社区团购了吗?

lenka

5月日更

会说话的ABAP report

汪子熙

SAP abap SAPGUI

如何计算并测量ABAP及Java代码的环复杂度Cyclomatic complexity

汪子熙

Java SAP abap

如何使用Putty登录安装在VirtualBox里的ubuntu

汪子熙

ubuntu windows 虚拟机

如何使用SAP Cloud for Customer里的ABSL代码调用Web service

汪子熙

SAP C4C Cloud for Customer

Dubbo 令牌验证和优雅停机

青年IT男

dubbo

人生算法:做事要闭环

石云升

读书笔记 职场经验 5月日更 人生算法

sap.ui.require in SAP UI5 and require in nodejs

汪子熙

nodejs SAP SAP UI5

千万级学生管理系统的考试试卷存储方案

Lane

架构训练营模块四作业

Neil43

架构训练营

供敏捷软件开发使用的合同_研发效能_Chris Sims_InfoQ精选文章