您是否应该向客户收取错误时间上花费的时间?[关闭]


17

我接受了一个小的CSS挑战来为客户解决问题,我将按小时收费。我最终解决了它,花了5个小时,但我花了大约25%的时间在错误的轨道上,尝试了仅在最近的浏览器中可用的CSS3解决方案,并最终发现通过JS不可能进行任何回退(就像我最初想的那样)。我应该向客户收取25%的费用吗?

更多详细信息:我没有提供估算值,我本身很喜欢挑战,因此我在给出估算值之前就开始进行研究(但是我之前曾与他合作过,所以我知道他不是那些抱有不切实际期望的人之一)。在最坏的情况下,我将花5个无偿小时来进行有趣的CSS挑战。因为我已经完成了这项工作,所以我将为我们俩提供最合理的估计。:)

编辑:谢谢大家,我希望我可以接受多个答案!我最终没有给他多花几个小时的账单(我给他开了三个半小时的账单),但我提到了他们,所以他知道我在这方面的工作要比他付账多。也许这就是为什么他立即接受“估计”的原因(在这种情况下,这不是估计,因此不是引号)。


您给客户的初步估计是多少?
— JK

2
您是否希望客户提供更多工作?您想建立什么样的关系?
— 史蒂夫·杰克逊

@Jonathan:见我的编辑
— 利·贝罗


1
它不是重复的,我在发布问题之前先阅读了该主题。他在谈论学习新事物,而不是致力于错误的解决方案。
— Lea Verou 2011年

Answers:


24

当我花几个小时做某事,然后注意到有一个更简单的单线解决方案,或者我的第一个想法太糟糕等时,我经常会遇到这种情况。

通常,在这些情况下,我会区分以下三种情况:

  • 新发现的解决方案并不明显,和/或一般的开发人员也可能走在错误的轨道上,并且/或者错误的轨道是找到最终解决方案的先决条件。在这种情况下,我会向客户收取在错误轨道上花费的时间。

  • 新发现的解决方案并不那么明显,但是可能很多普通开发人员都会直接采用这种方式。换句话说,如果在开始编写代码之前我想得更好,那么我可能会直接找到最终的解决方案,也许没有。在这种情况下,我向客户收费,但将价格降低一半或一个似乎最合适的百分比。

  • 显然,在开始编写代码之前,我太傻了,太困了,或者根本没想过,因为最终的解决方案非常容易找到。在这种情况下,即使我在错误的轨道上花了两天时间,这也是我的责任,客户不必为此付费。


我认为“一般”开发人员根本不会解决它。但是对于那些拥有超过平均CSS经验的人,它可能是第二。
— Lea Verou 2011年

1
@Lea Verou:当我谈论“普通开发人员”时,这是非常主观的。这也取决于您的级别以及客户对您的级别的看法。如果您的客户知道您是最好的,并且每天付给您数千美元,那么主观的“平均值”将比您的客户认为您是代码猴子的价格高得多。
— 阿森尼·穆尔琴科

好吧,我在有关CSS的大型会议上发言,他知道:)但是我每天绝对赚不了几千美元:p(有任何Web开发人员这样做吗?)
— Lea Verou

4
我还会考虑您的汇率。如果您的比率很高,那么您将被期望比平均水平更好,因此显而易见的意味着更多的事情。如果您的费率很低,那么您就不会高于平均水平。
— 马丁·约克

复制粘贴我在其他地方发表的评论:花在工作/思考/研究/优化问题上的时间就是解决问题的时间。但是花时间做某事的人应该知道(根据所雇用的任务)和/或已经解决(并且要求得到什么)的人呢?换句话说,没有任何借口是缺乏知识或仅仅是糟糕的专业工作。请注意,真正的专业人员可以(并且应该)确实令人信服地说明花费了多少时间以及原因
— Nikos M.

33

我不认为您走错了路。您编码了一个解决方案,测试了该解决方案(荣誉),发现它没有按预期工作。您调试了解决方案,然后通过不同的方向进行了修复。

恕我直言,这不是错误的路线。那是常规的软件开发。

如果我是你,则需要支付整整4个小时的费用。


1
我喜欢您的想法:p :)
— Lea Verou 2011年

2
我同意,从本质上讲,研究/设计是一个错误甚至很重要的领域。证明有些东西行不通(并留下痕迹)使维护变得更容易,因为下一个家伙不会去尝试。
— Matthieu M.

1
这就是所有其他职业的做法。只有程序员才“高尚”(或者直言不讳,天真),甚至考虑在解决客户问题的所有时间中不计费。
— –quant_dev

8

我们编写的大多数程序之所以在编写中,是因为无法立即轻松获得解决方案。我们所做的一切几乎都涉及学习新知识。客户没有为您付款。他付钱给您学习如何构建产品并为您提供结果(如果他本人称其为“挑战”,他希望您学到一些东西)。参见汤姆·德马可(Tom de Marco)和提摩西·李斯特(Timothy Lister)的“与熊共舞”-“如果一个项目没有风险,那就不要这样做”。

如果您想适当地偿还客户,请将解决方案连同无法使用的解决方案的详细信息发送给他,以便他可以将其传递给他雇用的任何其他员工,并帮助他们减少花费的时间。

如果他认为自己付了太多钱,则由您决定。当然,我希望他为任何在其他地方不易使用的学习付出代价。


他自己并没有称它为挑战,也不知道这是一个挑战。(尽管他可能发现很难决定将其外包)
— Lea Verou 2011年

拒绝投票的人请问为什么要拒​​绝投票?
— 鲁尼武尔2011年

5

有时解决问题涉及从一组合理的选择中消除次优解决方案。消除的过程是您解决问题的工具之一;客户正在向您付款以获取解决方案,并且应该期望您使用任何可用的工具。

会是一个不合理的客户,希望您立即设想出最佳的解决方案-从项目简介直接进入键盘,在键盘上您会获得快速,最佳的无退格的代码流。这并不是说没有这样的客户。我有一个客户在项目的中间打电话来验证他实际上只为“编程而不是调试”付费。当然,有些客户(或老板)的编程是打字的实际​​行为。

您的盲区可能代表了客户的最佳支出:另一个开发人员可能不如您那么周全,并提供了一种价格更低廉但兼容性较差的解决方案,该方案将来会再次出现。


2
讨厌遇到这样的人,他们的思维方式是“编程而不是调试”。好像作家可以开始写下一个故事而无需重新阅读并进行更改。如果这样写的话,那可能会变成一个烂故事:-)。
— Htbaa 2011年

5

这些问题让我发疯...

如果技工或律师花时间在您的案件/问题上,即使他们花了时间在错误的轨道上,您也会打赌@@ $会被收取费用

程序员需要开始更多地评估自己的时间


我同意(因此+1)花费在工作/思考/研究/优化问题上的时间就是解决问题的时间。但是花时间做某事的人应该知道(根据所雇用的任务)和/或已经解决(并且要求得到什么)的人呢?换句话说,这不是缺乏知识的借口,也不是缺乏专业素养的借口。请注意,真正的专业人员可以(并且应该)确实令人信服地证明花费了多少时间以及原因
— Nikos M.

5

您所做的完全正常。弗雷德·布鲁克斯(Fred Brooks)在他关于软件工程的开创性著作“神话中的一个月”的“计划扔掉”一章中讨论了这种现象。

您正在签订时间和物资合同;因此,您应该向客户收取所有花费在该项目上的时间。由客户决定他/她是否获得了足够的投资价值。


4

我是这样看的:在一天结束时,这是您要付费的电话。有很多变量,例如您希望客户多高兴,现有关系,您的销售技能等...我们都对它们很熟悉。您最终为客户提供的,以及他们真正想要的是价值。您给客户带来了什么价值,您为客户提供的解决方案/可交付成果是什么?

解决一个问题可能需要10分钟,但是学习如何解决该问题却花费了10年。这值得考虑。同时,我们中有些人考虑学习“在职”薪酬的能力。我经常学到东西,实际上是在客户的一毛钱上,我认为这是一种非金钱补偿。

您也可以将其添加到帐单中,然后在发票上将其标记为“首选客户折扣”,不要收取费用并建立良好的信誉。我时不时地这样做,这使客户感觉良好。

另外,如果您的问题是每天有成千上万的开发人员,答案是肯定的。您也应该凭借自己的技能成为其中之一。我几乎在那儿,而且在CSS方面,我还远没有和您处于同一个联盟。


1
+1,这个答案很不值得。投票结果最高的两个答案都完全忽略了“对客户而言有价值的解决方案”这一点。哎呀,有时候我们向客户收取的费用是我们实际付出的三倍,因为这可能比他从竞争对手那里得到的任何解决方案便宜。
— 布朗

2

这取决于原始协议。

您是否说过要交付并准备好交付?然后,您最好将所有花费的时间都花在开发上。所有的!


2

如果您聘请律师为您辩护,而他们却为您蒙受了损失,您仍然要支付账单。

这就是所有其他职业的做法。程序员没有理由不这样做。

如果客户认为他们支付了太多,他们将不会再找您。保持他们为回头客的唯一理智的原因是在所有工作时间都不会计费。


1

如果这是我专门从事的项目,所以有人会付钱给我,而我却自学了一些新技术,那么我倾向于以比通常花费的时间少的钱来做。另一方面,您不能将出价调得太低,否则它将在以后永远与该客户打交道(“嘿,回来时,您做了一件非常酷的事情,您收取的费用比这还便宜!”)否则,我不会我花时间搞砸了,结果花了太长时间。

我对此规则的例外:如果问题需要几个小时解决的原因是由于客户对我将他们弄坏了的东西胡说八道,我将承担全部责任。


1

通常,如果这是我的错,而我只是在四处走动,我通常不会收费,但我根本不是商务人士。我发现大多数商务智能人士都采用这种理念,即客户在为自己的时间付费,而不仅仅是最终结果。回想起来,我在职业生涯中有很多次后悔没有这么想。我只想到最终结果是有价值的,除非改善最终结果,否则我的时间是毫无意义的。但是,由于客户改变主意,同事导致将错误分配给您并延误了您的工作,例如,这可能会被拖拉并浪费大量时间,例如,不仅仅是因为您需要更多的研究预先知道自己在做什么。

当您开始制定规则并在应支付哪些工作时间和哪些时间免费的情况上作例外时,很容易最终被利用。时间是最简单的付款方式。它使您免于承担看似不负责任的许多复杂责任,但可以保护您免于被拖拉,并使客户的不负责任导致减薪。

就我而言,如果我不能为走错路而收费,那将是绝望的,因为我经常从事以下工作:

在此处输入图片说明

...试图击败已有近40年历史的Catmull-Clark细分算法,该算法已在行业中根深蒂固,并被Microsoft和Pixar等公司反复改进,试图提供更直观的结果,同时仍然与这些大公司一样具有竞争力速度方面。

在这种情况下,有95%的时间我走错了路线,失败后不断失败,然后不断返回白板。如果我不能为失败负责,那我已经无家可归了。我看到我的工作有一半以上是研究工作,以前没有人尝试过这些东西,而且我无法找到一种完美的方法来解决第一次尝试(也许是第20次尝试)的问题。对我而言,目标从来没有是第一次尝试就能成功,而是要尽快失败,失败之后的每一次失败都为正确解决方案(可能实际上能够改变世界)提供了一些线索。

并非每个人都可能在这样一个研发密集型的领域中工作,在该领域中,客户希望并期望您击败那里最先进的技术,仅仅是因为您正在启动一个新项目,但是对我来说,编程从来都不是例行公事建立简单的解决方案是。您如何设计和集成零件仍然是独一无二的,总是某种形式的艺术本身会产生独特的利弊,而不是机械的,不是完全科学的,否则机器人可以做到。因此,我认为不可避免的是,我们总是必须为走错了路线而收费,否则,我们只能从已经完成了一百次的最常规的工作中获利,而我们已经对其应用了完全相同的每次解决方案,在这种情况下,我们将为点击“复制和粘贴”按钮付费。

不可预测性

另一件事是,编程总是很困难,不可预测且从来都不是例行程序。这不像通常的披萨送达,而是可以解决诸如交通事故之类的所有问题(不幸的是我曾经在一位老板的带领下工作,他将程序员的估算等同于披萨送达估算,并认为我们实际上唯一要做的工作就是打字)。 。它始终是在网站上学习的-我无法想象它会变得完全常规化,除非有人实际上反复向我付钱让我反复实施像快速排序这样的工具。那里总会有一些实验和学习,只要不过度,就不必为此感到内。

我经常梦想成为一名农民或其他人,以便我可以在自己的工作中找到更多例行动议,而不必总是超越我现有知识的范围。取而代之的是,我尝试通过使我的工作以外的生活变得尽可能平常和平凡来补偿自己,为保持理智而在某些地方添加一些可预测性和例行动作,这使我感到厌烦,这些人希望在外面的生活中找到兴奋的人工作-我发现工作量足够。

他在谈论学习新事物,而不是致力于错误的解决方案。

研究错误的解决方案是在学习新事物,不是吗?您是否知道刚开始时这是一个错误的解决方案,或者即使您知道这是绝望的错误,您是否仍在坚持不懈地努力?希望不是后者。通常,学习的过程是通过错误。是最好的老师。我发现的最有效的策略是,尽早犯错误,并在我们将所有事情提交给他们并采用此类解决方案之前尽快发现它们确实是设计错误,因为我能数的唯一常数并几乎100%地确定将要犯错误。如果发现得很晚,它们才是昂贵的。


0

这实际上取决于您如何提出该项目以及该项目如何计费。

例如,如果它是基于可交付成果的合同,那么即使是为了学习新知识,也应将所有小时数都跟踪到项目中。

如果是基于时间和材料的合同,那么您需要对此更加敏感。例如,如果您在问题的范围内并且遇到问题,则应将其计费。例如,如果您正在学习旧版API或部分代码,并尝试使其与您的代码一起使用。

但是,如果您被跟踪尝试做某事,或者只是想学习一种新方法,那么我只会对实施实际解决方案所花费的时间而不是对我进行学习所花费的时间进行计费。

我不同意Lunivore,他们会付钱给我们学习东西。他们向我们付款是因为我们的专业知识,而且大多数时候我们应该已经知道该怎么做。他们付给我们实施费用。

简而言之,如果您的最初估计没有包括学习问题所花费的时间,那么您可能不应该为此付费。把它当作一种学习经验,并知道下一次您将不会遇到这种延迟。

编辑:由于您以后指定没有估算,所以如果您认为这将是重复客户,那么我当然不会包括该时间。我也总是会在将来提供一个估计。


-1

为了解决这个问题,我确定了我认为会遇到的不利情况,并根据每小时的报价,根据我认为应该采取的情况进行报价,并根据“不良”情况设置的最大报价。这样我们都是赢家。


我不那么喜欢,因为如果不是“坏”情况,客户总是会输掉。
— Lea Verou 2011年

“坏”情况和“最坏”情况之间是有区别的。如果是最坏的情况,我要承担损失。
— 戴夫

嗯,好点。但是,如果是“好”案例怎么办?
— Lea Verou 2011年

然后是按小时。我会向您收取最高小时数x每小时的费用。
— 戴夫
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.