你是如何与敏捷项目签订合同的? (不是你怎么想的,你是怎么做的)

时间:2009-04-09 11:30:12

标签: project-management agile scrum

要执行敏捷项目,首先需要合同。没有合同 - 没有项目!没有项目 - 没有敏捷,SCRUM或者无论如何!

如果我们谈论大中型项目,合同必须有明确的安全触发器。即客户希望非常肯定,如果我们同意在时间上结束一个项目= T,预算= B和范围= S我们最终没有时间= T×2,预算= B×3或范围= S / 2。

另一方面,作为提供产品的公司,我们不希望项目意外结束。即如果经过一番迭代,客户说:“现在我发现这实际上就是我们所需要的。我们现在停下来。”这个项目计划再过2个月,而不是没有计划工作的人。如果3-6人不是一个大问题,15-25可能是一个真正的问题!

然而,我没有找到任何具有安全功能的合同的真实示例,该合同将允许项目以完全敏捷的方式执行(声明或未向客户声明)。我在许多论坛上找到的标准说法 - 与客户交谈,向他解释这是一种更有成效的工作方式等,并不能说服我和我的管理层。并不是说我们不相信敏捷实际上是一种更好的方式。只是安全触发器中的差距是如此明显,以至于我们的客户都没有购买它们而我们也不喜欢它们(差距,而不是客户;))。

请不要“它可能会以这种方式运作......” - 我已经阅读了大量内容。 只对“对我们这样做”感兴趣。毫无疑问,跳过所有自信的信息。

P.S。据我所知,标准迭代,特征驱动的方法建议客户在每次迭代(迭代次数)后付款,并且能够在任何迭代之后由客户和项目执行者停止项目,而不会过多地说明后果,而不是说“无论如何都会失败,所以越早越好”(这是正确的,但在签订合同时却没有多大帮助。)

7 个答案:

答案 0 :(得分:11)

我在政府工作。

我们最近开展了一个软件开发采购流程,并选择了三家供应商来开展敏捷项目。一些说明:

  1. 我们已经75%确定我们想要运行敏捷项目,因为我们知道我们的要求含糊不清,因为它是一个面向公众的Web项目,具有重要的设计元素。所以我会说,如果你的客户知道敏捷并从一开始就购买它会有很大的帮助,即使他们实际上没有在内部实践它。请注意,在(某些)政府圈子中对敏捷的接受程度正在增加,因此这可能会变得更容易。

  2. 我们使用的一个保障措施是聘请一位经验丰富(独立)的SCRUM主人为我们工作,并代表我们的团队负责人/架构师/可用性人员处理软件项目管理职责。我们花了很多时间找到这个人,并从三位伟大的申请人中挑选出来。这很昂贵但值得。

  3. 一旦我们选择了我们的供应商并广泛认可了他们的角色(设计,前端,后端),我们整理了一份快速的谅解备忘录,概述了我们的进展意图,可能的项目预算,可能性每个供应商的团队规模,承诺在月底签订完整的合同,以及时间和时间。临时的材料协议。

  4. 然后,我们参加了技术规划/规模调整会议,并将事情的一面进行了。在这段时间内没有开发工作或设计,但我们做了很多尺寸和高级估算。

  5. 到月底我们为每个供应商整理合同(一个是迟到的,但没关系)。一个供应商提出了我们可能使用的样本合同,一个基于项目三分之一的支付;另一个完成冲刺。我认为最终我们使用标准合约模板的付款部分中的一些供应商建议的语言完成了冲刺(每月开帐单)。

  6. 总体而言,我们对这种方法没有问题(尽管承认存在一些风险),因为我们认为整个项目中没有大量的实际技术风险,并且因为我们对采购流程和我们选择的供应商。

    最后,这是一个非常成功的项目,我们已经开始在内部使用SCRUM进行其他项目。我认为拥有一支优秀的团队是关键。我们对供应商充满信心 - 不仅是他们能够完成这项工作,而且他们非常适合他们作为一个团队工作的态度,并且对于每个团队都有明确的角色(即他们会不要争夺同样的钱)。

    如果我们的供应商不是那么好,我们会对签订这样的合同有更多的保留意见,但是运行采购几乎与科学一样艺术,我们知道我们已选择了最适合其他高质量受访者的态度。

    我们已经完成了所有三个合同的第二年开发,虽然我说这次不太顺利(新的SCRUM大师,不同的团队组成),它仍然是一个很好的项目参与用。

    您可能还会发现这个有趣:Outsourcing Agile

答案 1 :(得分:10)

由于我主要在Intranet应用上工作,这对我来说并不是一个问题。但是,我经常为其他部门做应用程序,有时候,特别是当项目很大时,我们会就项目范围,(预期)持续时间和成本签署一份谅解备忘录(MOU)。由于我以敏捷的方式工作,所以这些都没有修复,这往往很难向以前没有这种方式工作的其他部门解释。通常情况下,我将包括对流程本身的描述 - 几个段落 - 解释项目如何是他们和我之间的合作企业,我们一起确定我们何时完成。

在实际编写谅解备忘录时,我已经在项目中投入了大量时间来发现需求(这些是以标准的小时费率处理)。在此基础上加上我的速度和相似以前项目的估计,我给的时间和成本要求的特征量的粗略估计 - 再解释,即实际成本确定由哪些功能,我们真正实现与真正需要多长时间。这需要相当多的信任,但由于我们一直在共同制定要求,我通常会与我直接处理的个人一起制定这些要求。我经常试图将实际估计数从谅解备忘录中删除,但如果他们的经理坚持要包括它。我确实试着给他们一个预算编号。

我的经验是,一旦项目启动并开始为客户提供价值,他们很少会感到不快乐。通常,他们要求(并支付)超过原始项目范围。通常,我们都同意不需要一些原始功能,但我总是希望如此。毕竟,他们真的无法确切地知道,直到他们真正看到他们真正需要的东西。通常,我们会删除一些功能,并根据实际开发添加其他功能。我想如果我们不这样做,就没有任何意义可以使用敏捷方法。

我认为关键问题是信任。我建议在小型项目上与新客户合作,或明确将大型项目分成小型项目以建立信任。一旦他们和您知道您可以相互信任以构建具有正确功能的正确产品,我认为客户突然撤出的风险 - 并且总有一个 - 被最小化。

答案 2 :(得分:7)

我曾经参与的唯一敏捷项目是内部,时间和材料(T& M)或按周期付费项目。

正如您所指出的那样,问题在于项目有可能导致项目失败/提前结束。但是,是不是和任何项目一样?如果你去T& M你承担全部风险,如果你去固定价格,客户将承担全部风险。通过按周期付费,您将承担大部分风险,但是每次将一小部分风险传递给客户一个周期。因为它发生了你或客户都不想承担任何风险,这就是你发布这个问题的原因。

风险就在于冒险就是企业的全部意义所在,风险越大,获利的风险就越大,但如果没有,损失也就越大。如果风险太大,您无法处理,唯一的解决方案就是找到可以承担风险的其他人,但您将不得不支付他们的费用。如果您和客户都不准备接受它,那么可能只有两个答案:

  1. 让一些富有的傻瓜承保风险(即获得保险)。
  2. 将风险分散在众多人群中,直到每个人所承担的风险都很小,以至于可以接受。
  3. 我认为第二种选择是让接触者如此受欢迎的原因。因为它们很容易摆脱,所以最终会冒着早期项目终止的风险。由于风险将在其中一些风险之间传播,风险将扩散到可接受的水平。由于额外的风险,他们会向您收取的费用超过员工,但这是您自己试图避免风险的原因。

答案 3 :(得分:3)

您希望敏捷项目的最后一件事是固定范围(通常是传统瀑布项目合同中包含的内容)。您所需要的是达成一个固定时间表的协议,其中固定规模的团队针对优先级产品积压工作。

如果您强制业务合作伙伴在发起期间定义固定范围,他们将会在合同中记录所有他们想到的内容。不是因为它有价值,而是因为以后很难做出改变而且可能需要它。

可以为业务合作伙伴请求的一组功能提供高级别估算。但是,由IT和产品所有者组成的团队接受范围和优先级将在功能实施期间轻松更改。通过始终专注于处理最重要的功能,团队成为价值驱动而非计划驱动。如果有任何事情从名单中删除,那么它的价值就会降低,并且被团队学到的更重要的东西取代了。

固定范围的合同将团队锁定在他们对功能知之甚少时做出范围决策。专注于优先级并允许优先级和范围在迭代之间进行灵活调整,以确保交付的内容具有价值。

不要与业务部门签订固定范围的合同,而是与业务合作伙伴一起参加敏捷新兵训练营。该课程应概述敏捷过程和产品所有者的角色。如果业务接受敏捷方法,您就可以开始开发了。构建产品待办事项,确定优先级,提供高级别估算,构建发布和迭代计划并开始实现价值。

我们执行关系的方式是首先将业务合作伙伴发送到敏捷新兵训练营。然后,我们培训业务合作伙伴成为产品所有者。然后我们构建了积压,提供了高水平的估计并修复了团队的大小和时间框的开发。在两周内,第一个工作软件进行了演示。从那时起,业务合作伙伴就已经了解了更改的价值。任何关于固定范围合同的讨论很快就会被遗忘。

答案 4 :(得分:2)

我们处理这个问题的方式非常有成效。

我们的客户基本上购买迭代。客户签署合同说“X 2周迭代”。有一个客户端教育过程(与我所研究的所有敏捷项目一样)帮助客户加快规划过程,并确保他们在开发过程结束时实际获得的内容并不具体。项目的开始,但他们控制最终的结果。

我们的团队已经合作了将近六个月,我们拥有坚实的技术基础,我们自己开发以最大限度地降低风险。我们非常可靠地掌握了我们在速度方面的持续能力 - 这有助于我们预测满足所需客户结果所需的迭代次数。

答案 5 :(得分:1)

我们的PM实践仍在追赶敏捷的软件交付方法。大多数情况下,在谨慎方面犯错,初始合同定义了高级别目标,但在可预见的技术挑战上附加了功能限制。某些主要的交付里程碑,即alpha,beta,final,被定义和定价。附加范围被定义为补充原始合同的变更请求。当我们摆脱传统的瀑布式方法时,这是一次学习经历;我看到的最大的问题是,常规部署等一些事情难以定价,因为你永远不知道从迭代中解决“反馈”需要花多少时间。我们已经“这太棒了,我们一直都很顺利!”我们已经“在这里列出了200个缺陷”;对客户之间频繁发布的目的有不同程度的理解。

答案 6 :(得分:0)

自从我们转向敏捷以来,我们的合同没有改变,客户仍然希望在重要的里程碑上接收构建,并且在sprint的每一端都没有直接参与。产品所有者不必是合同另一端的人,也可以是执行经理。产品所有者不断地与真实客户的需求沟通,他评估向客户展示需求的需求。如果他经常发布,那么与该客户沟通仍然会容易得多。