Во время доставки клиент критикует отсутствие некоторых функций, которые не были написаны в моем предложении. Как реагировать?

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

Я составил коммерческое предложение с указанием 4 характеристик: A, B, C и D. Это коммерческое предложение было подписано клиентом.

Во время поставки (происходит сейчас) клиент критикует отсутствие функций E, F и G.

С одной стороны, кажется, что архитектура программного обеспечения, которое я создал, позволит легко интегрировать E, F и G в течение нескольких часов кодирования.

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

Как я должен реагировать как профессионал?

  • Интеграция E, F и G и доставка их без дополнительной платы с клиента, чтобы избежать потенциального конфликта.
  • Отказ от интеграции E, F и G, если я не взимаю с них дополнительную плату.

РЕДАКТИРОВАТЬ-----

Как отметил @Falco в своем комментарии ниже, я бы добавил, что я прямо попросил клиента протестировать решение по мере развития продукта (в соответствии с практикой Agile), но этого не произошло.

«Дайте им бесплатную работу, чтобы сохранить клиента» — понятная, но реально ужасная идея. Это создает прецедент «если мы пожалуемся, он сделает это бесплатно». Даже позволять клиенту торговаться за потраченное вами время — это плохо; это хуже.
«Несколько часов кодинга» — как насчет тестирования, развертывания и т. д.?
Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
Две мысли, не заслуживающие полного ответа: (1) Спросите их: «Почему вы ожидали, что E, F и G будут включены?» (2) Джоэл Спольски дает (несколько) юмористический отчет об этом распространенном явлении: «Мы построили его именно так, как они хотели. В договоре было прописано все до мельчайших деталей. Мы поставили именно то, что было указано в контракте. Но когда мы доставили его, они были удручены». Его совет: привыкайте. Клиенты не знают, чего хотят. Даже когда они это делают, у них нет навыков, чтобы выразить это. ( joelonsoftware.com/2002/02/13/the-iceberg-secret-revealed )

Ответы (8)

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

Если вы делаете EFG до того, как вам заплатят из-за какого-то неуместного смысла «что угодно», ожидайте, что вам скажут сделать HIJKLMNOPQRSTUVWXYZ.

Делайте то, что указано в контракте, получайте деньги, а затем договаривайтесь обо всем дополнительном.

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

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

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

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

«Мне сказали, что это лишит меня будущей работы», — полагаю, от клиентов, которые не хотели платить.
Они намекают так же, как и мои собственные люди, которые впечатлены размером компании и т. д., на практике я знаю, что это тактика ведения переговоров и почти всегда не только сохраняет клиента и получает больше работы, но и ставит моя цена на них. Неважно, насколько крупный и успешный клиент, важно лишь то, сколько денег он положил мне в карман.
FYPMA — где PMA означает «Pay Me Applies». Именно по этой причине сейчас многие поставщики активно перекладывают ответственность за пробелы в требованиях на клиента. Так что это не наша вина в том, что мы не смогли задокументировать требования, это их вина, что они не включили их в свои «истории»... Описание работы, описание области. Работа «соответствует требованиям» и «функционирует, как ожидалось». Все остальное является расползанием масштаба и может быть проверено в UAT, и должен быть UAT с «настоящими» пользователями, а не их агентами или замещающими заинтересованными сторонами.
«UAT» = пользовательское приемочное тестирование. Не все знают эту аббревиатуру. Кроме того, нет тега «фаза принятия», я думаю, что этот вопрос нужен.
Самое интересное, что это редко работает для клиента. Когда мы поняли, что некоторые из наших клиентов были такими, мы просто подняли все цены - клиент получил удовольствие от торговли, получил хорошее представление о том, что выманил у нас наши деньги, а мы получили столько же денег, сколько и при работе с надежный клиент. Самые сумасшедшие ситуации, когда есть посредники, которые каким-то образом убедили своих клиентов, что они могут вести переговоры о таких вещах - в этом случае клиент чувствует, что сэкономил много денег благодаря посреднику, в то время как на самом деле он потерял довольно много.
@smci откройте мета-вопрос, чтобы создать тег. Давайте обсудим это
+1, потому что я не вступаю в продолжительный диалог об этом . Следует избегать всего, что а) создает пространство для маневра или б) добавляет эмоций.
@Luaan Взимание «премии» просто потому, что клиент неоднократно пытается выманить у вас оплату за ваше время и усилия, является одним из наиболее приятных аспектов работы по контракту.
Если вы знаете, что выполнили качественно и профессионально все, что указано в контракте. Тогда да, все, что выше, заставляет вас набрасываться, и моя стратегия, когда вас набивают, заключается в том, чтобы просто продолжать поднимать цену. Я называю это «деньгами на панадол», это сумма, которая нужна, чтобы заставить меня смириться с головной болью.
@CaffeineConnoisseur Или, как выразился один из моих приятелей, цена «f-ck off».
Вы также можете составить предложение для EFG и представить его им, но затем проактивно (не позволяйте им торговаться) сказать: «Поскольку я ценю ваш бизнес, и он не очень деликатный или сложный, я продолжу и включу EFG. на этот раз без дополнительной оплаты. В будущем, пожалуйста, внимательно ознакомьтесь с предложением заранее, так как дополнительная работа, выходящая за рамки предложения, обязательно повлечет за собой дополнительные расходы». - также изложите это в письменной форме, чтобы, если они попытаются провернуть тот же трюк на будущей работе, вы можете предъявить электронное письмо и сказать: «Я уже говорил вам, что дополнительная работа будет стоить дополнительно».

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

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

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

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

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

Одна вещь, которую вы не должны ожидать, это то, что ваш клиент будет «профессионалом». Это ваша работа: вы здесь профессионал, клиент — это просто клиент. Конечно хорошо иметь клиента, который всегда действует профессионально, но не ждите этого. Вместо этого ожидайте, что клиенты часто не полностью понимают свои собственные требования; эта часть вашей работы состоит в том, чтобы помочь им понять их собственные потребности и рассказать им о том, что можно им предоставить; и когда преодоление разрыва между ожиданиями клиентов и реальностью требует от вас дополнительного (небольшого) шага, подумайте о том, чтобы сделать этот шаг, не поднимая по этому поводу суеты.

Клиент уже показал себя «проблемным», он жалуется, а не обсуждает, и они не удосужились протестировать во время сборки, просто пожаловались в конце, когда им выставили счет. Они не заслуживают никакого перерыва. Хороший исчерпывающий ответ, хотя +1
@Kilisi Это мой любимый ответ. Будучи консультантом в течение 30 лет и сейчас на пенсии, я бы сказал, дайте им E, F и G, а затем рассчитывайте разорвать отношения. Я ценю клиентов, которые знают, чего хотят, и имеют готовые требования. Я лишь однажды согласился разработать что-нибудь для человека, который не был уверен. Конечно, это была катастрофа. Я был дураком, когда согласился работать с ними. Я обнаружил, что чувствую себя лучше, дав им немного больше времени, прежде чем попрощаться. Причина проста. Я дал им больше, чем они согласились. Любой спор закончится в мою пользу. Я считал это усвоенным уроком.
@closetnoc Мне также нравится этот ответ, я знаю консультантов, которые используют аналогичные стратегии, и я проголосовал за него, просто я не так делаю. Я также консультировал на протяжении десятилетий и давно обогнал парней, которые были недостаточно безжалостны.
@Kilisi Я предпочитаю убивать их добротой. В моем случае это был беспроигрышный сценарий. Один в 30 лет не плохо. Это была подработка между контрактами. Простая работа VB, и когда я ее выполнил, они вдруг решили, что хотят все это в Access. Я системный инженер. Я знаю код! Я писал операционные системы, драйверы устройств, стеки протоколов и т. д. VB был правильным решением, тем, о чем они просили и на чем согласились. Приложения Access — это кошмар! После того, как я сдал, я передал его программисту Access и работал с ним бок о бок, пока не закончил. Я все равно приобрел друга из программиста Access!
@Kilisi Мне просто пришло в голову ... что код доступа нужно было переделывать при каждом изменении требований компании, тогда как мой код был полным решением. Это было приложение для медицинских обследований, которое позволяло кому-то указать опрос, нажать кнопку, и исполняемый файл опроса был автоматически создан с процессом установки и экспорта в SAS, записанным на диск. Всего несколько минут. Что касается Access, это требовало изменения кода для каждого опроса и ручной упаковки установки, а также без экспорта в SAS и без диска. В конце концов, было грустно видеть, что мой милый код игнорируется. Я чувствую себя оправданным в любом случае!
Вы должны были обвинить их :-) Просто за то, что они были глупы, я делаю.

Это еще один случай, когда клиент ожидает, что продавец прочитает его мысли, и подталкивает продавца:

  1. Скажите г-ну Заказчику, что ваше предложение было основано на спецификациях, которые он дал для A, B, C и D. Категорически заявите, что он ничего не говорил о E, F, G в то время, когда он подписал предложение.

  2. Скажите ему, что, хотя ваш обзор E, F, G указывает на то, что это займет всего несколько часов, вы рассматриваете это как дополнительную работу, НЕ покрываемую вашим первоначальным предложением, и что если он хочет, чтобы работа была выполнена, он должен будет заплатить дополнительные для дополнительной работы. Затем отправьте ему счет за оригинальную работу.

  3. Не делайте ни единой дополнительной работы до тех пор, пока вам не заплатят за оригинальную работу.

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

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

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

Пока проект развивался, я просил их протестировать добавочное решение, чтобы получить первые отзывы. Они сказали, что сделали это, но в конце концов признались, что не делали (из-за времени (они утверждают)). Они ожидают функции совершенно неявно.
@ Mik378 They said they did it, but eventually, they confessed they didn'tНу, это их вина. Я согласен, что вы просто требуете оплаты, а потом (если они еще захотят) можно говорить о других возможностях. (И если они не заплатят в ближайшее время, помните, что во многих странах вы можете потребовать какую-то плату за задержку).
@ Mik378 - Я думаю, что это важный момент, который следует включить в основную часть вопросов! - Поскольку вы явно попросили их проверить это, а они этого не сделали - они потеряли всякую репутацию.
@Falco, действительно, я обновил вопрос;)
Во время проекта, вероятно, было бы хорошо попросить обратную связь, и если вы ее не получите, скажите им, что у меня могут быть последствия. «Мне нужно, чтобы вы, ребята, провели тесты, иначе мы можем не обнаружить проблемы раньше или позже в проекте» (я бы небрежно вмешался, например). 1. Вы сделали тест, нет? Вы можете сделать это на следующей неделе, если мы скажем крайний срок в среду?

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

Мог ли клиент обоснованно ожидать, что E, F и G будут включены в состав A, B, C и D? Я имею в виду, если бы это была, скажем, система онлайн-заказов, а А было бы «клиент может ввести свой адрес доставки, город и штат», а теперь они говорят: «Подождите, вы не дали нам место для ввода почтового индекса», я не думаю, что вы можете винить их за то, что они думали, что это предполагалось в пункте А. Если теперь они говорят, что должен быть способ въезда в зарубежные страны, это спорно, что-то вроде того, что должно быть были выяснены в ходе ранних дискуссий. Если это было упомянуто в спецификациях/предложениях, вы имеете полное право сказать, что это не покрывается, но и т. д. Если теперь они говорят, что им нужен еженедельный отчет о том, сколько заказов было получено с разбивкой по почтовому индексу, штату и перекрестная ссылка по категории продукта ... нет.

У меня теплые воспоминания о клиенте, который после сдачи спросил, как получить некий сложный отчет. Я извинился, такой отчет никогда не упоминался в требованиях. И он сказал: «Я просто считал само собой разумеющимся, что могу получить любой отчет, который захочу, в любое время». Типа да, именно так работают компьютеры в «Звездном пути».

Если эти новые требования — всего лишь небольшой дополнительный процент от общего проекта, я был бы склонен отдать его им ради отношений с клиентами, даже если этого не было в предложении. Но скажите им, что вы даете им это ради отношений с клиентами, даже если это не было в цитате. Предоставление халявы без каких-либо оговорок означает, что вы будете делать это все время. Прошли годы с тех пор, как я был фрилансером, и я никогда не делал этого, но вот как бы я поступил, если бы возникла ситуация сейчас: внесите изменения, а затем отправьте им счет, который гласит: «Дополнительные функции E, F и G... 4 часа по 150 долларов в час (или, очевидно, какая у вас ставка)... 600 долларов. Списание на отношения с клиентами... -600 долларов. Чистая задолженность... 0 долларов». Затем вы говорите им, что оказали им услугу и насколько большую услугу, без намека на то, что вы сделаете это снова. Если кто-то пробовал что-то подобное, мне было бы интересно услышать подробности и как это сработало.

Вы сказали, что эти новые требования — это всего лишь несколько часов работы. Но если бы это было важно, я бы сказал: «Извините, но цитата охватывает A, B, C и D. Если у вас есть дополнительная работа, которую вы хотели бы сделать, я был бы рад подготовить новая цитата».

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

Очень полный и интересный ответ :)

Несколько недостатков

  1. Оплачено позже
  2. Не оплачивается для E, F и G
  3. Вы получаете I и J, когда ставите E, F и G

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

Даже если вы укажете E, F и G отдельно, я все равно попрошу оплатить первый.

@cognacc Я действительно должен знать, что такое EFG? Спросите ОП, уверен ли он, что это всего несколько часов.

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

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

Это отличный момент. Аналогия: около года назад мне нужно было сделать ремонт в доме. Я позвонил подрядчику, и мы подписали контракт, за который они выполнят эту работу, я думаю, это было 1800 долларов. Затем через пару недель они перезвонили и сказали: «О, мы допустили ошибку, чтобы сделать эту работу правильно, нам пришлось бы сделать такую-то дополнительную работу. Это будет стоить еще 900 долларов». Я сразу решил, что это мошенничество. Я ни на минуту не верю, что они ошиблись. Это была попытка заставить меня выполнять эту работу по разумной цене, а потом они подняли цену. ...
... Я, наверное, мог бы подать на них в суд за нарушение контракта и мошенничество. Моя точка зрения: вы эксперт. Если вы скажете клиенту, что для удовлетворения его потребностей необходимо сделать A, B, C и D, и это будет стоить X долларов, он может подписать контракт, предполагая, что это общая цена. Если, когда они увидят, что это не соответствует их потребностям, вы скажете им, что выполнение дополнительной работы будет стоить дороже, они могут счесть это уловкой: вы заставили их взять на себя обязательство по цене, которую они могут себе позволить, но теперь нужно выполнить дополнительную работу. НАСТОЯЩАЯ работа, вы требуете большего. Я не говорю, что вы пытались их обмануть, для меня это звучит как недопонимание...
... Но я мог видеть, что кто-то, кто ничего не знает об ЭТОМ, ДУМАЕТ, что это была попытка их обмануть.

Я был на стороне клиента по «инженерному программному обеспечению — бесполезному программному обеспечению». Создание новой платформы действительно требует времени и НИОКР. Вы выполнили то, к чему призывал подписанный контракт. Есть ли у вас механизм постоянной поддержки? Используете ли вы этот продукт для других клиентов? С обеими этими концепциями вы можете участвовать в распределенных обновлениях. Вам придется построить модель, которую вы сможете поддерживать. Сложность и тестирование и подтверждение следующего уровня продукта. У вас будут клиенты (если их база знаний позволяет), которые настаивают на том, чтобы быть бета-тестерами. Вы должны будете сообщить им как о своих, так и об их ожиданиях. Оставайтесь в этом диапазоне. Это дает вам управляемую модель для обновлений/модернизаций, непрерывного денежного потока и довольных клиентов. ИМХО JLH Вот как мне пришлось работать с несколькими поставщиками (слияниями), реализующими многофазный,

Добро пожаловать на рабочее место.stackexchange.com! Как бы то ни было, я не совсем уверен, что ваш ответ действительно отвечает на вопрос. Возможно, вы захотите отредактировать, сосредоточив внимание на представлении возможного решения проблемы, а не на том, чтобы задавать вопросы и описывать, что вы сделали. Как только вы заработаете 50 очков репутации, вы сможете прокомментировать вопрос, чтобы запросить разъяснение у задавшего вопрос, чтобы лучше обосновать свои ответы (например, используете ли вы этот продукт для других клиентов?).