Это глава из «Книги нормального фрилансера», в которой я делюсь опытом проектировщика интерфейсов, работающего на себя.

Самый страшный враг на свете — это правки от клиента,
Видишь правки — защищайся. Ты — эксперт, тебе видней!
Если это не поможет, правь всё молча, с грустным видом,
Чтоб заказчик сразу понял, как он был с тобой неправ. 

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

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

Открывал я его с большим оптимизмом, так как считал, что отлично справился с проектом. Но когда увидел объём обратной связи, расстроился и разозлился одновременно. «Мда, не видать мне оплаты в ближайшее время!» — подумал я, вчитываясь в десятки замечаний.

Я собрался с силами и уселся за правки. Многие из них были очень простыми и занимали всего несколько минут. Некоторые были посерьёзнее и требовали больше времени. А с какими-то не хотелось соглашаться просто потому, что на их внесение могло уйти столько же часов, как на создание всего проекта. Такие комментарии я отложил «на потом» и решил обсудить их отдельно во время следующей демонстрации.

Больше всего меня злило то, что я сам сильно усложнил себе работу, не наведя порядка в исходниках. Часть элементов назвал так, что спустя некоторое время сложно было разобраться, что имелось в виду. А ещё не использовал символы (или мастера). Это такие элементы, которые используются во многих местах интерфейса и при этом их можно отредактировать все разом, внеся изменения лишь в один из них.

С горем пополам за несколько дней я справился с правками и вдруг получил ещё одно письмо с перечнем комментариев. Клиент сопроводил его коротким сообщением: «Нашёл ещё несколько моментов, которые хотелось бы поправить».

Тут я совсем приуныл. «Сколько же можно меня мучить и когда это закончится?» — думал я, продолжая работу, отдавая последние остатки силы воли. Мне казалось, что клиент, который представлялся совершенно адекватным в начале сотрудничества, превратился в монстра и решил таким образом обесценить проделанную работу и свести меня в могилу.

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

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

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

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

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

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

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

Со временем я побывал на месте клиента и ужаснулся, во многих моментах вспоминая себя в начале фрилансерского пути.

Как заказчик я получал объёмные результаты работ в самый последний момент и вынужден был тратить часы на их изучение и обратную связь. За один подход не успевал всё проверить. Приходилось отправлять комментарии порциями, что создавало впечатление, будто я специально заваливаю фрилансера правками. Тут-то я и понял, что сделал неверные выводы о своих первых заказчиках. Они не хотели заваливать меня правками, я сам ставил их в такие условия.

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

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

Наконец, в какой-то момент меня огорошивали фразой: «Вы исчерпали лимит правок, все дальнейшие комментарии только за дополнительную плату».

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

А ведь я и сам частенько занимался угадыванием, мало времени затрачивая на сбор всех необходимых сведений о проектах и желаниях клиентов. Проблема была в том, что периодически мне везло (с первой попытки делал то, что нужно) и поэтому я поумнел не так быстро, как если бы каждый раз сталкивался с клиентами, разочарованными в результате.

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

  • Приступать к работе пораньше и сразу демонстрировать промежуточные результаты, чтобы быстрее «синхронизироваться» с клиентом и в конце работы уже иметь одинаковое видение.

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

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

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

  • Записывать все комментарии, даже самые незначительные, чтобы ничего не упустить. Если список предоставил сам клиент, то проработать все его пункты без исключений. Он не обратит внимание на 19 выполненных пунктов из 20, но запомнит именно тот, который фрилансер почему-то не сделал.

  • Не бояться переделывать базовые решения. Это гораздо эффективнее, чем пытаться спасти изначально неправильное видение с помощью большого количества «костылей».

  • Не ограничивать клиентов в количестве правок.

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

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

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

Когда клиенты выходили за рамки требований к проекту, ситуация могла развиваться двумя путями. Если правки были незначительными и их можно было легко внести без ущерба для себя, то я ничего не говорил заказчикам и вносил их в проект. Я делал так для того, чтобы не заставлять их нервничать из-за того, что они вынуждают меня делать дополнительную работу бесплатно (ведь они не в состоянии оценить трудозатрат в том, в чём не являются специалистами). Когда я сам заказывал услуги фрилансеров, и они сообщали, что проделали для меня что-то просто потому что такие хорошие и ценят своих работодателей, я испытывал дискомфорт. Я чувствовал, что становлюсь участником несправедливой сделки, в которой мне отведена роль эксплуататора. Поэтому сам стал использовать такой принцип: «Сделал больше, чем нужно, — не хвались этим, если не планируешь получить за это вознаграждение». Если это имело значение для клиента — он сам заметит. Если нет — не надо набивать себе цену за счёт того, что он не оценит.

В этом месте хочу обратить пристальное внимание читателя: не нужно стесняться рассказывать о проделанной работе во всех деталях. Это поможет клиенту увидеть больше ценности в результате. Но не стоит говорить об этом в контексте «я сделал больше, чем вы просили», потому что это означает лишь то, что сделка была несправедливой.

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

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

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

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

  • И при этом не настолько детально, чтобы у клиента был «коридор вариативности», с помощью которого он мог бы получить тот результат, который его полностью устроит.

  • Те правки вне договорённостей, которые займут много времени и пойдут в ущерб фрилансеру, фиксировать и предлагать оценить отдельно в дополнительном соглашении.


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

Комментарии (18)


  1. mixsture
    26.12.2022 20:29
    +1

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

    Не соглашусь, можно и нужно при проектной работе. Собственно, это и есть «техническое задание» — когда вариативность сведена к минимуму и каждому участнику понятно, что будет сделано.


    1. foal
      26.12.2022 22:09
      +1

      Ну есть оно (что еще тот геморрой, смотри ниже), решение задачи полностью ему соответствует, но клиенту оно не подходит в деталях. И что дальше? Вы правы, клиент нет. Деньги у вас, клиента вы потеряли.

      Поймал негр золотую рыбку. — Отпусти меня, — говорит золотая рыбка, — Любое твое желание исполню. Подумал негр и говорит: — Сделай меня белым, и чтобы вокруг меня одни женщины были. Махнула рыбка хвостом… и превратила негра в унитаз в женском туалете.

      Да, иногда с некоторыми клиентами проще расстаться, но большинство клиентов хотят решить свои проблемы в бизнесе, а не писать тех. задание. И они готовы платить за решение деньги. А автор описывает свой опыт, с моей точки зрения весьма полезный.

      Хотя я склоняюсь к почасовой оплате, так таких проблем нет вообще.


      1. Areso
        27.12.2022 00:18

        Хотя я склоняюсь к почасовой оплате, так таких проблем нет вообще.

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


        1. foal
          27.12.2022 00:51

          Ну да, так всё и есть. Только я стараюсь разбить все на меньшие куски и хотя бы раз в неделю (обычно чаще) выкатывать законченные изменения на DEV. Время, затраченное на работу, заказчик видит в Jira.


          1. beeptec
            27.12.2022 10:26

            По абсолютному ТЗ от клиента, любой (почти) тупой (не креативный) разраб справится, когда все по полочкам разложено и все стороны удовлетворены 10 -и минутным обсуждением такого ТЗ, но так бывает только в сказке про Емелю.
            Как правило, если исполнитель своей компетенцией не в состоянии поставить клиентский локомотив на рельсы, это превращается в вагон и малую телегу, который сначала толкают в гору, а там как покатит...
            Таким образом правило №1, на начальном этапе отношений, уделите клиенту достаточно времени на консультации и судя по его вопросам и уточнениям Вы поймете, как правильно сформулировать каждый пункт ТЗ, чтоб все стороны согласились его утвердить как по срокам, так и по стоимости к исполнению.
            Если такую работу пустить на самотек, происходит то, о чем этот пост.
            Но с полной уверенностью скажу по личному опыту, каким бы идеальным Вам не показался ТЗ, всегда будут шатания и если по мере продвижения проекта какие то пункты ТЗ отвалятся по ненадобности, Вы сумели локомотив довести до цели.


            1. foal
              27.12.2022 10:47

              Угу, обидно проработать месяц и выяснить, что всё что ты сделал не соответствует ожиданиям заказчика. TЗ один из вариантов защиты от этого. Не могу сказать, что идеальный, но иногда единственный, особенно на этапе, когда продукта еще нет. Дальше проще, вы уже знаете бизнес, чтобы адекватно понимать требования заказчика, заказчик доверяет вам. Задачи почти всегда можно разбить на части. Оплата может идти за часы. Всё это ведёт к тому, что уже не надо писать ТЗ на каждый чих, а у вас есть уверенность, что все переделки и исправления будут оплачены.

              Но даже в случае нулевого продукта, можно жить без ТЗ и иногда это не плохой вариант, потому что не вы не заказчик изначально, не знаете, что хотите. К счастью, программирование — это не строительство и всегда можно скорректировать ход разработки, при минимальных затратах.


        1. yerbabuena
          28.12.2022 18:29

          А что такого не так с 80 часами на авторизацию?


          1. Areso
            28.12.2022 18:39

            Ну, конкретно я бы сделал бы за 16, причем даже без фреймворка.

            Поэтому то, что кто-то выставит 80 часов, когда менять коней уже поздно - то такое. Будь я на месте заказчика, я бы поперхнулся увидев 80 часов :)


            1. yerbabuena
              28.12.2022 20:06

              я бы поперхнулся увидев 80 часов

              А я бы - нет. Я ведь в глаза не видел что и как там навертели с желаемой идеологией авторизации, так что допускаю что есть кейсы, когда нужно не готовое OAuth + IdentityServer задействовать, а что-то свое родить, пусть и в 10% случаев.


      1. mixsture
        27.12.2022 13:13

        Если решение не подходит клиенту, то надо садиться за проектирование, а не начинать его делать. Корень проблем (в проектных работах малого масштаба) в том, что бизнес желает сэкономить на проектировании (это ведь надо заплатить какую-то часть еще до известной цены всего проекта!) и считает, что тяп-ляп накиданные идеи в кучу одним из его сотрудников магическим образом станут техническим заданием.
        По сути, он сажает школьника за квалифицированную работу, в какой-то момент высокие риски от этого реализуются и не очень понятно, как фрилансер должен покрыть эти риски? Вот просто финансово эту схему вы как себе представляете? Как нужно повысить оплату, чтобы учесть эти риски? Повысить для всех? Ну тогда вы заставляете одних клиентов (как раз заказывающих предпроект) платить за других (не заказывающих) — странная методика получается, хорошие клиенты платят за плохих.


        1. foal
          27.12.2022 16:32

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

          Ну посадили вы команду, ну потратила она неделю, две. Подписали ТЗ. Еще три месяца прошло. Выкатили продукт. А клиент смотрит и видит - не то. И ТЗ оно соответствует, и вроде сам дурак. И что?

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

          Да, по времени до полной функциональности это займёт больше. Но только если вам в самом деле удастся создать идеальное ТЗ и идеальную реализацию. В реале некоторые фичи могут отвалится по мере наращивания функционала. И клиент может понять, что продукт уже прямо сейчас можно запускать, а не ждать 100% реализации.

          Что касается оплаты, то я уже говорил - повременная. К чему там закладывать риски? Хочет заказчик месяц переделывать, будем месяц переделывать.


          1. mixsture
            28.12.2022 13:08

            С повременной оплатой вся проблематика исчезает. Я описывал проблему при проектной оплате. Что сначала заказчик хочет сумму проекта узнать, а его не оценить без технического задания. Заказчик решает, что он сам может тз составить без привлечения специалиста. По завершении оказывается, что по тз все сделано, а к бизнесу не подходит. По-моему налицо ошибка при составлении тз, кто составлял — тот и отвечает.


          1. beeptec
            28.12.2022 13:19

            Что касается оплаты, то я уже говорил - повременная. К чему там закладывать риски? Хочет заказчик месяц переделывать, будем месяц переделывать.

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


            1. foal
              28.12.2022 21:50

              Категорически не согласен

              Да, пожалуйста. Не знаю, зачем это разработчику, но заказчики такие точно есть. И если разработчик видит смысл с ними работать по формуле fix time fix price, то почему нет? Работы настолько много, что каждый может найти себе что-то по вкусу.


        1. yerbabuena
          28.12.2022 18:32

          хорошие клиенты платят за плохих.

          В этом месте на вас с улыбкой смотрят страховые бизнесы )))


  1. mrkaban
    28.12.2022 12:46
    -1

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

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

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

    И вы правы, фрилансеру полезно смотреть на весь процесс с точки зрения клиента.


  1. yerbabuena
    28.12.2022 18:27

    в мире существует слишком мало людей с садистскими наклонностями

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


  1. Stas911
    29.12.2022 06:35

    Если контракт Time&Material - то пусть присылает как можно больше правок :)