离岸软件项目—解决冲突


11

我受命管理一个外包给一些乌克兰开发商的项目。

该公司以固定价格通过Elance雇用了他们。那时,我的老板让我一个人去处理它们并完成工作。我为需要完成的工作创建了详细的规范。

该项目涉及处理XMPP,RabbitMQ和数据库。在我与他们的第一次会面中(总是IM),我彻底解释了他们需要做什么。他们似乎理解了它-并且他们非常相信它将很容易做到。

到目前为止,一切都很好。但是一个星期后,当我们再次见面时,他们对需要做的事情充满了误解。当我问一个开发人员他是否知道XMPP时,他说他是第一次使用它。在我们的第一次会议上,我特别提到了项目的复杂性和所涉及的技术。另外,我一再要求他们编写一个功能规范,以确切地说明他们将如何做。但是他们说“不”,并坚持要宁愿编写代码。我说了可以。

该项目在3周后完成,他们交付了所需的东西。那时我开始查看代码。在大多数情况下还可以,但是存在一些重要问题:

  • 他们将需要分离的一些东西硬编码为配置文件
  • 我需要将多个配置文件合并为一个
  • 他们没有写任何文件
  • 其他一些小的变化

我要求他们进行这些更改(文档除外)-而且,我们有一个论点。

他们说,由于价格是固定的,我要求他们在完成工作代码后进行任何更改都是不公平的。他们在该项目上花费了不合理的时间,现在索要任何东西是完全错误的。

现在,他们终于进行了更改,项目结束了。但这在我心中留下了一些疑问...

  • 他们做了所需的工作,但我需要正确完成,因此进行了更改。我真的不公平吗?

  • 为什么我同意让他们在没有功能说明的情况下进行编码?

  • 为什么我不能确保他们第一次了解所有内容?

有人发现自己处于同一位置吗?您是否认为有更好的方法来管理外包项目?

-更新-

感谢所有意见-在考虑了全部经验之后,我可以得出结论...

  • 尽管从我的角度来看我对规格并不模糊,但是我当然并没有像建议的那样使它们变得铁定。因此,收获是:始终尽可能具体-从他们的角度阅读规格,看看是否错过了一些东西。重复至少三遍。

  • 仅指定代码应该做的还不够。您必须指定代码的外观。目录结构将是什么;甚至文件名(如果可能)。这样可以避免您日后烦恼。严格指定编码准则,变量命名约定,内部文档格式等。请确保它们遵守这些准则,否则请严格遵守。

  • 从他们的角度要求功能规范-坚持在任何代码之前编写它。这将避免很多混乱和误解。

  • 查看正在开发的代码,以便您更早地识别异常并进行纠正。每隔一天至少与他们交谈一次。

  • 最后,尝试与他们建立良好的融洽关系。让他们感到您欣赏他们的工作。不要夸大其词以使其符合您的准则,而是请他们这样做并告诉他们,一旦他们完成该项目,这将使您对代码的维护变得非常容易。


1
我从来没有见过海上项目进展顺利。当我开始阅读这篇文章时,我以为自己想读一个战争故事。
smp7d 2012年

Answers:


13

首先,这不是多余的问题,而是供应商管理问题

是的,你做ALOT错误...

他们做了所需的工作,但我需要正确完成,因此进行了更改。我真的不公平吗?

是的,这很公平,如果您希望以某种方式完成交易,则应该在同意价格之前就说过,这样他们才能相应地出价。

为什么我同意让他们在没有功能说明的情况下进行编码? 因为你不想PAY的规格!文档既费时又昂贵,他们应该免费吗?

为什么我不能确保他们第一次了解所有内容?

他们确实了解。但是,在您第一次见面之后,签订合同(以及约定的固定价格)就是您获得费用的时候!因此,需要尽可能地削减成本(小时)。基本上,每周仅召开一次会议,不提供任何计算方式。

下次如何执行此操作…分两个阶段…

阶段1:让他们收集需求,进行系统分析并编写技术设计和/或功能规范(或自己编写)。商定此阶段的价格。请务必说明您没有承诺要他们进入开发阶段。确保在价格中包括开会时间。

阶段2:现在,他们(和您)已经拥有并且真正知道要付出的努力,就让他们竞标基于规范的开发产品。再次确保在价格中包括开会时间。因为要包括少量可选的变更预算。


编辑:我想补充一点。供应商在这里也有错,部分工作也帮助您进行项目管理,并让您知道流程中的不足之处。


2
你忘阶段3和相位4:??? 利润:-)
拉姆猎犬(Ramhound)2012年

3
您如何要求外部实体编写您的功能规格?功能规范您希望他们从事的项目的要求。否则,您就是在给他们钱,然后告诉他们:“解决问题,...我不知道,弄清楚该软件应该做什么,我不为所动。”
maple_shaft

1
@maple_Shaft好点,需求收集是阶段1的一部分。我将更新答案。
白痴”

1
-1用于过时的Waterfall教条废话

3
@JarrodRoberson我不是任何特定方法论的粉丝。每个人都有其优点,但是说他们失败只是因为他们没有使用敏捷是错误的。
白痴”

17

我需要把它做好

然后,不要外包它,或者如果这样做,请确保他们在您的项目团队中工作,并且您当时参与了代码审查。

该项目在3周后完成,他们交付了所需的东西。那时我开始查看代码。

同样,您应该在项目期间而不是在之后检查代码。

他们说,由于价格是固定的,我要求他们在完成工作代码后进行任何更改都是不公平的。

您为工作代码支付了固定价格。哎呀 那不是他们的错,是你的错。花费他们的时间参加您控制的sprint,您就不会遇到这个问题。您应该为时间和接受的用户故事付费,而不是为代码付费。

在我与他们的第一次会面中(总是IM),我彻底解释了他们需要做什么。他们似乎理解了它-并且他们非常相信它将很容易做到。

在处理完全外包的项目时,您需要确保您的规范是铁定的。如果您要解释的内容花费的时间超过几句话,则说明不完整。这就是为什么他们偏离规范。

当我问一个开发人员他是否知道XMPP时,他说他是第一次使用它。

当外包给受欢迎的低成本离岸国家时,开发商通常会夸大其简历和技能以求职。他们通常不会担心自己的能力,直到他们降落,因为他们中的许多人只是恢复建造以实际支付舒适生活工资的演出。

为什么我同意让他们在没有功能说明的情况下进行编码?

只有您自己可以回答此问题,但是下次可以将其作为学习经验。


2
我不同意“如果您希望正确完成此操作,请不要外包”。
白痴

1
@Morons当然,这是个懒惰的说法。我只是默认这种心态,因为对离岸外包前景最感兴趣的公司就是那些最缺乏正确做事纪律的公司。如果他们将内部问题解决到可以正确解决的地方,那么他们甚至一开始就无需进行海上作业。
maple_shaft

3
应该说“如果您想做得正确,不要期望出价最低的人会提供高质量的产品”,自由摄影师的朋友说“最便宜的客户,最不切实际的期望”

1
我也不同意这种说法,内部团队或本地开发机构可能会遇到完全相同的问题。

7

该公司以固定价格通过Elance雇用了他们。那时,我的老板让我一个人去处理它们并完成工作。我为需要完成的工作创建了详细的规范。

因此,你们两个首先签了合同,然后他们让您写了一份规范,然后他们接受了该规范成为您合同的一部分?如果那是事实,那不是你的错,那是承包商的错。您可以轻松地编写一份规格书,为他们提供3个月而不是3星期的工作-所有这些都以相同的价格进行。

在大多数情况下还可以,但是存在一些重要问题:

  • 他们将需要分离的一些东西硬编码为配置文件
  • 我需要将多个配置文件合并为一个
  • 他们没有写任何文件
  • 其他一些小的变化

这些东西是否属于您的规格?如果是的话,那是他们的错。如果没有,那是你的。如果尚不清楚这些内容是否包含在规范中,那也是您的错,因为您编写了文档。下次尝试编写更好的规范。


3

我前段时间做了关于离岸外包的演讲。它被称为“全球外包,增强业务能力的10条技巧”。这是10条提示的摘要(来自400个外包项目):

一个选择

  1. 避免最低和最高出价者。这很明显,您不想冒险以较低的竞标者来承担风险,而最高竞标者的价值(价值/价格)往往不如中位数。

  2. 检查等级(或参考)。我总是检查参考和评级。

  3. 优先考虑动力。以同等的价格,我选择了动机。例如,让投标人谈论您的项目权利是一个很好的信号。

B.监督

  1. 保护您的知识产权。这是最大的错误之一。通常由您使用的平台(例如vworker或elance)处理。

  2. 拒绝自定义框架。否则您可能会被它束缚住,或者更具体地说,是与编写它的开发人员联系在一起的;

  3. 强加标准。与上一个技巧有关。使用标准可以增加源代码的价值,因为这可以被大量开发人员所理解。

  4. 尽早审查,经常审查。如果您在第一周或工作后查看源代码,大多数问题都可以“调整”。

C.策略

  1. 用小项目测试提供程序。在将大型项目提供给提供商之前,我先用一个或两个较小的项目对其进行测试。

  2. 接受多个投标人以降低风险。对于关键项目,我选择两个或三个投标人,然后采取最佳实施方案。在小型项目(5000美元以下)中效果最好。

  3. 组装组件。另一种策略是外包您稍后组装的组件。优势之一是,您可以轻松地在提供程序之间切换,并且没有人真正可以访问整个系统(降低了知识产权风险)。


1

我完全同意maple_shaft的回答。

您接受了代码,我假设写了支票,然后查看了代码,您将所有工作都向后进行了。

为什么我同意让他们在没有功能说明的情况下进行编码?

因为您没有将其写入合同。由于您希望完成工作,因此您接受了他们的原因,即使这确实使您陷入麻烦。

为什么我不能确保他们第一次了解所有内容?

您应该为他们提供您认为可行的设计。然后,如果他们不完全理解,就没有什么关系了。我的意思是您没有付钱给他们这样做,那么谁来做呢?没有任何文档和设计规范,如何维护此代码。答案可能不是

他们说,由于价格是固定的,我要求他们在完成工作代码后进行任何更改都是不公平的。

您很幸运,他们进行了所需的更改。他们可能会说:运气不好

有人发现自己处于同一位置吗?您是否认为有更好的方法来管理外包项目?

当然,其他人会处于您的位置,否则,整个“外包”行业都不会受到伤害,许多公司开始意识到必须付费(或等待)才能完成该任务,而一次正确执行一次则要贵3到4倍。 。

至少自己动手,您可以每天检查项目的状态。如果您落后,至少在理论上可以采取一些措施来控制损失。


1
companies are starting to realize having to pay ... to do it 3 and 4 times is more expensive then doing it right once.不仅如此,我只是认为离岸软件开发的行业蜜月阶段即将结束,越来越多的公司开始意识到这并不是他们认为的那样(或者被告知会这样做)。由顾问)。大多数管理人员都很烂,他们不知道为什么,所以他们寻找解决问题的灵丹妙药。如果做得对,离岸外包是很好的选择,但大多数人没有这种纪律。
maple_shaft
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.