Стоит ли брать с клиентов часы, проведенные на неправильном пути? [закрыто]

17

Я взялся за небольшую задачу по CSS для клиента, и мне будут платить по почасовой ставке. В конце концов, я решил, что это заняло 5 часов, но я потратил примерно 25% времени на неправильном пути, попробовав решение CSS3, которое работало только в последних браузерах, и, наконец, обнаружил, что с помощью JS невозможно сделать откат (как я изначально думал). Должен ли я взимать с клиента 25%?

Более подробная информация: я не предоставил оценку, мне понравился вызов как таковой, поэтому я начал работать над ним, прежде чем давать оценку (но я работал с ним раньше, поэтому я знаю, что он не из тех людей, у которых есть нереальные ожидания ). В худшем случае я потратил 5 неоплаченных часов на интригующий вызов CSS. И я дам самую справедливую оценку для нас обоих, так как я уже сделал работу. :)

Изменить: Спасибо всем, я хотел бы принять более одного ответа! Я закончил тем, что не выставлял ему счета за дополнительные часы (я выставил ему счет за 3 с половиной), но я упомянул их, так что он знает, что я работал над этим больше, чем я выставлял ему счет. Может быть, поэтому он сразу принял «оценку» (которая в этом случае не была оценкой, следовательно, цитаты).

Леа Веру
источник
Какую начальную оценку вы дали своему клиенту?
JK
2
Вы надеетесь на дополнительную работу от клиента? Какие отношения вы хотите установить?
Стив Джексон,
@Jonathan: см. Мое редактирование
Леа Веру,
1
Возможный дубликат: programmers.stackexchange.com/questions/38415/…
Стив Джексон
1
Это не дубликат, я прочитал эту ветку перед тем, как опубликовать свой вопрос. Он говорит об изучении новых вещей, а не работает над неправильным решением.
Леа Веру

Ответы:

24

У меня часто бывают такие ситуации, когда я провожу несколько часов, делая что-то, потом замечаю, что есть более простое однострочное решение, или что моя первая идея была слишком плохой и т. Д.

В общем, в этих случаях я различаю три ситуации:

  • Недавно обнаруженное решение не было очевидным, и / или среднестатистический разработчик, вероятно, тоже был бы на неправильном пути, и / или неправильный путь был предпосылкой для нахождения окончательного решения. В этом случае я взимаю плату с клиента за время, потраченное на неправильном пути.

  • Недавно обнаруженное решение не было столь очевидным, но, вероятно, многие среднестатистические разработчики пошли бы по этому пути напрямую. Другими словами, если бы я подумал лучше, прежде чем начать писать код, я мог бы найти окончательное решение напрямую, а может и нет. В этом случае я взимаю плату с клиента, но снижаю цену вдвое или на процент, который кажется наиболее адекватным.

  • Очевидно, я был слишком глуп, слишком сонлив или вообще не думал, прежде чем начал писать код, поскольку окончательное решение было чрезвычайно легко найти. В этом случае, даже если я провел два дня на неправильном пути, это моя собственная ответственность, и клиент не должен за это платить.

Арсений Мурзенко
источник
Я не думаю, что «средние» разработчики решат это вообще. Но для тех, у кого опыт работы с CSS выше среднего, он, вероятно, будет вторым.
Леа Веру
1
@Lea Verou: когда я говорю о «средних разработчиках», это очень субъективно. Это также зависит от вашего уровня и того, что ваш клиент думает о вашем уровне. Если ваш клиент знает, что вы лучший из лучших и платит вам тысячи долларов в день, субъективное «среднее» будет намного выше, чем если бы ваш клиент думал, что вы обезьяна кода.
Арсений Мурзенко
Ну, я говорю на больших конференциях о CSS, и он это знает :) Но я определенно не зарабатываю тысячи долларов в день: p (есть ли веб-разработчик, который это делает?)
Lea Verou
4
Я бы также принял во внимание, сколько стоит ваша ставка. Если ваш показатель очень высок, то ожидается, что вы будете лучше среднего, поэтому очевидное может означать гораздо больше. Если ваша ставка очень низкая, то вы НЕ должны быть выше среднего, это менее очевидно.
Мартин Йорк,
скопировать и вставить комментарий, который я сделал в другом месте: время, потраченное на работу / размышление / исследование / оптимизацию проблемы, - это время, отработанное над проблемой. НО как насчет того, кто тратит время на что-то, о чем должен знать (в соответствии с принятой задачей) и / или уже решен (и это то, о чем просят). Другими словами, нет оправдания отсутствию знаний или просто плохой профессиональной работе. Обратите внимание , что настоящий профессионал может (и должен) действительно убедительно обосновать, сколько времени было потрачено и почему
Никос М.
33

Я не думаю, что вы были на неправильном пути. Вы закодировали решение, протестировали решение (слава) и обнаружили, что оно не работает так, как вы ожидали. Вы отладили решение, а затем исправили его, следуя в другом направлении.

ИМХО, это не тот путь. Это регулярная разработка программного обеспечения.

Если бы я был тобой, я бы взял плату за полные 4 часа.

Tyanna
источник
1
Мне нравится, как ты думаешь: p :)
Леа Веру
2
Я согласен, что по своей природе исследования / дизайн являются областью, в которой важны даже неудачи. Демонстрация того, что что-то не работает (и оставляет след), облегчает обслуживание, потому что следующий парень не будет испытывать это.
Матье М.
1
Так делают все остальные профессии. Только программисты «благородны» (или, проще говоря, наивны) даже думать о том, чтобы не выставлять счета за все часы, отработанные над проблемой клиента.
Quant_Dev
8

Большинство программ, которые мы пишем, мы пишем, потому что решение не сразу и легко доступно. Практически все, что мы делаем, включает в себя изучение чего-то нового. Клиент не платил вам за продукт. Он платил вам за то, что вы научились создавать продукт и давал вам результаты (и если он сам назвал это «проблемой», он ожидал, что вы чему-то научитесь). См. «Вальс с медведями» Тома де Марко и Тимоти Листера - «Если у проекта нет рисков, не делайте этого».

Если вы хотите вернуть клиенту должное, отправьте ему свое решение вместе с подробной информацией о решениях, которые не сработали, чтобы он мог передать их любому другому сотруднику, которого он нанял, и помочь им занять меньше времени.

Вы должны договориться, если он думает, что платит слишком много. Конечно, я ожидал бы, что он заплатит за любое обучение, которое не легко использовать в другом месте.

Lunivore
источник
Сам он не называл это вызовом, он не знал, что это так. (хотя ему, вероятно, было трудно принять решение об аутсорсинге)
Леа Веру,
Не могли бы вы прокомментировать, почему за это проголосовали?
Лунивор
5

Иногда решение проблемы включает в себя устранение неоптимальных решений из набора разумных вариантов. Процесс устранения является одним из ваших инструментов решения проблем; клиент платит вам за решение и должен ожидать, что вы будете использовать любые инструменты в вашем распоряжении.

Это был бы необоснованный клиент, который ожидает, что вы немедленно представите лучшее решение - переходя от брифинга проекта к клавиатуре, где вы генерируете быстрый и оптимальный поток кода без возврата к месту. Это не значит, что таких клиентов нет. У меня был заказчик, который позвонил в середине проекта, чтобы убедиться, что он фактически платит только за «программирование, а не отладку». И, конечно, есть клиенты (или начальники), для которых программирование - это физический акт набора текста.

Ваш тупик может представлять лучшие потраченные деньги клиента: другой разработчик, возможно, не был таким же тщательным, как вы, и поставил бы более дешевое, но менее совместимое решение, которое могло бы отойти в будущем.

Кен Редлер
источник
2
Ненавижу сталкиваться с этими ребятами, которые настроены на «программирование, а не отладку». Как будто писатель может просто начать записывать историю, не перечитывая ее и не внося изменений. Это, вероятно, станет паршивой историей, если написать так :-).
Htbaa
5

эти вопросы сводят меня с ума ...

если механик или юрист потратили время на работу над вашим делом / проблемой, вы ставите @@ $$, вы будете получать оплату, даже если они потратили время на неправильном пути

программисты должны начать больше ценить свое время

красно-грязь
источник
я бы согласился (следовательно, +1) время, потраченное на работу / мышление / исследование / оптимизацию проблемы - это время, отработанное над проблемой. НО как насчет того, кто тратит время на что-то, о чем должен знать (в соответствии с принятой задачей) и / или уже решен (и это то, о чем просят). Другими словами, это не оправдывает недостаток знаний или просто плохую профессиональную работу. Обратите внимание, что настоящий профессионал может (и должен) действительно убедительно обосновать, сколько времени было потрачено и почему
Никос М.
5

То, что ты сделал, было совершенно нормально. Фред Брукс обсуждает это явление в главе «План выбрасывания одного» своей основополагающей книги по разработке программного обеспечения «Мифический человеко-месяц».

Вы работали над контрактом времени и материалов; поэтому вы должны брать с ее клиента все время, потраченное на работу над проектом. Клиент должен определить, получил ли он / она достаточную ценность для своих инвестиций.

бит-бездельник
источник
4

Я смотрю на это так: в конце концов, вы платите за звонок. Есть много переменных, например, насколько вы счастливы, клиент, существующие отношения, ваши навыки продаж и т. Д. ... мы все с ними знакомы. То, что вы в конечном итоге предоставляете клиенту, и что он действительно хочет, это ценность. Какую ценность вы дали клиенту, и какое решение / результат, который вы предоставляете, стоит им?

Чтобы решить проблему, вам может потребоваться 10 минут, но вам понадобилось 10 лет, чтобы научиться решать эту проблему. Это заслуживает рассмотрения. В то же время некоторые из нас рассматривают возможность обучения "на работе" компенсации. Я часто учусь вещам, которые действительно стоят у клиента, я считаю это формой неденежной компенсации.

Вы также можете добавить его в счет, а затем пометить его как «скидку предпочтительного клиента» в счете-фактуре, не выставлять счет и проявить добрую волю. Я делаю это время от времени, что заставляет клиента чувствовать себя хорошо.

Кроме того, на ваш вопрос, есть ли разработчики, которые зарабатывают тысячи долларов в день, ответ - да. Вы должны быть одним из них, тоже со своими навыками. Я практически там, и я не близок к тому, чтобы быть в одной лиге с тобой в CSS.

Майкл Мусгроув
источник
1
+1, этот ответ сильно недооценен. В обоих самых популярных ответах совершенно не хватает смысла: «Сколько стоит решение для клиента». Черт возьми, иногда мы берем с клиента в 3 раза больше усилий, чем на самом деле, потому что это может быть для него все же дешевле, чем любое решение, которое он может получить от конкурента.
Док Браун
2

Это зависит от первоначального соглашения.

Вы сказали, что собираетесь сделать это готово и готово к работе? Тогда вам лучше брать плату за все время, потраченное на его разработку. Все это!

karlphillip
источник
2

Если вы нанимаете адвоката, который будет отстаивать ваше дело, и они его обманывают и проигрывают для вас, вы все равно оплачиваете их счет.

Так делают все остальные профессии. Нет причин, по которым программисты должны поступать иначе.

Если клиент думает, что заплатил слишком много, он не вернется к вам. Сохранение их в качестве постоянного клиента - единственная разумная причина не выставлять счета за все отработанные часы.

quant_dev
источник
1

Если это проект, который я специально выбрал, чтобы кто-то заплатил мне, пока я учил себя новым технологиям, я стараюсь делать это меньше, чем обычно, когда я выставляю счет. С другой стороны, вы не можете предлагать слишком низкую ставку, иначе это навредит клиенту после этого («Эй, назад, когда ты сделал эту действительно классную вещь, ты взял намного меньше, чем это!») В противном случае, я не Это время, когда я облажался, и это заняло слишком много времени.

Мое исключение из этого правила: если причина, по которой проблема заняла несколько часов, заключается в том, что покупатель обвинил меня в том, что он сломал, я буду взимать плату за все это.

Satanicpuppy
источник
1

Я бы обычно не брал деньги, если бы это была моя вина, и я просто дергал, но я совсем не разбираюсь в бизнесе. Я обнаружил, что большинство умных в бизнесе людей применяют эту философию, согласно которой клиенты платят за свое время , а не просто конечный результат. В моей карьере было много раз, когда, оглядываясь назад, я сожалел, что так не думал. Все, о чем я думал, это о том, что конечный результат имеет ценность, мое время не имеет смысла, если только он не улучшит конечный результат. Тем не менее, можно потаскаться и тратить много времени на то, чтобы клиенты изменили свое мнение, коллеги вызвали ошибки, которые были назначены вам, и задержали вашу работу, например, а не только потому, что вам нужно было немного больше исследований искренне, чтобы действительно знать, что ты делал.

Когда вы начнете изменять правила и делать исключения из того, за какое рабочее время нужно платить и что должно быть бесплатным, в конечном итоге можно легко воспользоваться. Время - это самый простой показатель для оплаты. Это освобождает вас от сложной ответственности, которая может показаться безответственной, но защищает вас от того, чтобы вас отвлекали, а безответственность клиента приводила к некоторому снижению заработной платы.

В моем случае было бы безнадежно, если бы я не мог брать плату за неправильный путь, так как я часто работаю над такими вещами:

введите описание изображения здесь

... пытаясь превзойти почти 40-летний алгоритм подразделения Catmull-Clark, который укоренился в отрасли и неоднократно совершенствовался такими компаниями, как Microsoft и Pixar, пытаясь обеспечить более интуитивно понятные результаты, оставаясь при этом столь же конкурентоспособным, как и эти огромные компании скорость-накрест.

В таких случаях в 95% случаев я иду по неверному маршруту, постоянно возвращаясь к доске после сбоя за провалом за провалом. Если бы я не мог брать плату за свои неудачи, я бы уже был бездомным. Я вижу больше половины своей работы в качестве исследования, когда никто никогда не пробовал подобные вещи, и я никак не мог найти идеальный подход к решению с первой попытки (может быть, с 20-й попытки). Для меня цель никогда не состояла в том, чтобы добиться успеха с первой попытки, а потерпеть неудачу как можно скорее, причем каждый сбой после сбоя дает некоторые подсказки относительно того, каким может быть это правильное решение, которое могло бы реально изменить мир.

Не каждый может работать в такой интенсивной области исследований и разработок, где клиенты хотят и ожидают, что вы превзойдете самые устоявшиеся методы, просто потому, что вы начинаете новый проект, но для меня программирование никогда не бывает рутинным, независимо от того, как Простое и устоявшееся решение есть. То, как вы проектируете и интегрируете детали, будет по-прежнему уникальным, всегда некоторая форма искусства сама по себе дает уникальные плюсы и минусы, а не механические, не совсем научные, иначе роботы могут это сделать. Поэтому я думаю, что неизбежно нам всегда придется взимать плату за то, что мы идем по неверным маршрутам здесь или там, иначе мы могли бы извлечь выгоду только из самой рутинной работы, которую мы проделали уже сто раз, к которой мы применяем точно такой же решение каждый раз, и в этом случае мы будем взимать плату за нажатие кнопки копирования и вставки.

непредсказуемость

Другое дело, что программирование всегда сложно, непредсказуемо и никогда не бывает рутинным. Это не похоже на обычную доставку пиццы, где можно объяснить все, кроме автомобильной аварии (я, к сожалению, однажды работал под руководством босса, который приравнивал оценки программиста к оценкам доставки пиццы и думал, что единственная работа, которую мы фактически выполняем, это печатать) , Он всегда учится на сайте - я не могу себе представить, чтобы это когда-либо становилось полностью рутинным, если бы кто-то на самом деле неоднократно платил мне, чтобы я реализовал его как быструю сортировку снова и снова. Там всегда будут какие-то эксперименты и обучение, и пока они не чрезмерны, нет необходимости чувствовать вину за это.

Я часто мечтал стать фермером или кем-то еще, чтобы я мог найти гораздо больше рутинных движений в своей работе, не всегда раздвигая границы моих существующих знаний. Вместо этого я стараюсь компенсировать, делая свою жизнь вне работы рутинной и настолько обыденной, насколько это возможно, чтобы добавить некоторую предсказуемость и рутинные движения где-то ради здравомыслия, что делает меня скучным среди людей, которые хотят найти волнение в своей жизни вне работы - я нахожу достаточно на работе.

Он говорит об изучении новых вещей, а не работает над неправильным решением.

Работа над неправильным решением - это изучение новых вещей, не так ли? Вы знаете, это было неправильное решение, когда вы начали, или же вы продолжаете упорно работать над ней даже после того, как вы знали, что это безнадежно неправильно? Надеюсь, не последний. Часто процесс обучения происходит на ошибках. Это лучший учитель. Самая эффективная стратегия, которую я нашел, - это просто совершать ошибки как можно скорее, обнаруживать, что они действительно проектируют ошибки как можно скорее, прежде чем мы передадим им все и вступим в брак с такими решениями, поскольку единственную константу, которую я могу сосчитать и с почти 100% уверенностью предсказывать, что ошибки будут допущены. Они дорогие, только если их обнаружили очень поздно.


источник
0

Это действительно зависит от того, как вы предложили проект, и как проект оплачивается.

Например, если это контракт на основе результатов поставки, то все часы, независимо от того, должны отслеживаться для проекта, даже если это было для изучения чего-то нового.

Если это время и материалы на основе контракта, то вы должны быть гораздо более чувствительны к этому. Например, если вы находитесь в контексте проблемы и у вас есть проблемы, то она должна быть оплачиваемой. Например, если вы изучаете устаревший API или фрагмент кода и пытаетесь заставить его работать с вашим кодом.

Однако, если вы попадаете в тупик, пытаясь что-то сделать, или просто хотите научиться делать это по-новому, то я бы выставлял счет только за то время, которое потребовалось для реализации фактического решения, а не за время, которое я потратил на его изучение.

Я не согласен с Лунивором, что они платят нам за изучение вещей. Они платят нам за наш опыт и за то, что большую часть времени мы должны знать, как это сделать. Они платят нам за реализацию.

Короче говоря, если ваша первоначальная оценка не включает время, затрачиваемое на изучение проблемы, то, вероятно, вы не должны платить за нее. Оцените это как учебный опыт и знайте, что в следующий раз у вас не будет такой задержки.

Изменить: Поскольку вы указали позже, что не было никакой оценки, я, конечно, не буду включать это время, если вы думаете, что это будет повторный клиент. Я также всегда предоставил бы предварительную оценку в будущем.

Roloc
источник
-1

Чтобы обойти это, я полагаю, что, по моему мнению, был бы плохой случай, и цитирую на почасовой основе то, что, как я думаю, следует принять, с максимумом цитаты, установленным «плохим» случаем. Таким образом, мы оба победители.

Дейв
источник
Мне это не очень нравится, потому что клиент всегда проигрывает, если это не «плохой» случай.
Леа Веру
есть разница между «плохим» случаем и «худшим» случаем. Если это худший случай, я возьму потерю.
Дейв
Хм, хорошая мысль. Но все же, что, если это «хороший» случай?
Леа Веру
тогда это по часам. Я буду взимать с вас сумму x в час до h часов.
Дейв