Два года назад я сделал вебсайт для своего бизнеса. Сочетание моих собственных нулевых навыков дизайна и приличного шаблона дало на выходе сайт, который выглядел более-менее. Я сказал себе, что если дело пойдет в гору, я найму настоящего дизайнера, чтобы всё смотрелось профессионально.
Год спустя мой бизнес стал приносить сорок пять тысяч долларов выручки в месяц, но сайт по-прежнему наводил на мысли о любительском проекте какого-то студента. Пришло время обзаводиться профессиональным дизайном, который я себе обещал. Для меня имели значение только три страницы, поэтому я предполагал, что больших сложностей с редизайном не будет. Вероятно, несколько месяцев по срокам и тысяч пятнадцать по бюджету.
В результате редизайна я получил следующее:
Вот только несколькими месяцами и пятнадцатью тысячами дело не обошлось. Потребовалось восемь месяцев, сорок шесть тысяч и куча головной боли. Теперь, когда проект подошел к концу, я хочу разобраться, какие ошибки допустил и как позволил процессу настолько выйти из-под контроля.
Я знаю, что вы сейчас думаете. Когда слышишь, что кто-то потратил сорок шесть тысяч на редизайн трех страниц, сразу думаешь, что это какой-то простофиля, который ни в разработке, ни в найме не смыслит. Но мне-то это всё не в новинку! Я сам разработчик и неоднократно обращался к услугам фрилансеров, включая разработчиков, художников, контент-менеджеров и редакторов. С этим проектом я действительно допустил ряд ошибок, но, надеюсь, они окажутся поинтереснее, чем вы ожидаете.
Я не преследую в этой статье цели изобличить агентство, поэтому называть его буду просто Веб-Агентством. Это компания из США, а нашел я их в ежемесячной ветке для фрилансеров на Hacker News.
Из всех, с кем я общался, Веб-Агентство назначило самую высокую ставку, но их портфолио лучше всего соответствовало тому стилю, который я хотел. У них было в достатке талантливых сотрудников с широким диапазоном навыков, куда входили дизайн, кастомные иллюстрации и 3D-графика.
Айзек, руководитель Веб-Агентства, завоевал мое доверие в первом нашем телефонном разговоре, предложив сузить рамки проекта. Хотя для него это означало меньше возможностей заработать, он посоветовал обойтись ребрендингом вместо полноценно редизайна. Веб-Агентство предоставит базовые элементы: новый логотип, цветовую гамму, шрифты. Когда ребрендинг будет проведен, я смогу оценить результат и решить, стоит ли продолжать с редизайном. Ребрендинг, как минимум, даст мне прочное основание для маркетинговой кампании, которую можно будет выстроить при поддержке специалистов по цифровому маркетингу. Звучало разумно!
Веб-Агентство произвело расчеты: ребрендинг должен был занять тридцать-сорок часов, раскиданных на две-четыре недели. Тариф за час составлял сто семьдесят пять долларов, соответственно, разговор шел о пяти-семи тысячах долларов за логотип и бренд-дизайн. Сумма укладывалась примерно в половину от моего общего бюджета, так что возражений у меня не было.
Айзек предупредил, что они, по большей части, имеют дело с более крупными клиентами. С основной массой заказчиков агентство работало по долгосрочным договорам на внушительные суммы. Мой проект был таким компактным по масштабу, что его можно было поставить на почасовую оплату, но при этом возникала вероятность, что его придется периодически ставить на паузу, если на кого-то из постоянных клиентов понадобится больше времени.
Я не видел ничего страшного в том, чтобы приостановить проект на неделю-другую, если на команду свалится много работы. Как я тогда полагал, на всё про всё должно было уйти два-три месяца, так что пара лишних недель ничего не меняла.
Первый месяц работы над проектом всё шло замечательно. Каждые две недели Веб-Агентство приглашало меня на собрание, где присутствовали главный дизайнер, старший дизайнер, менеджер проекта и Айзек. Они показывали мне образцы новых логотипов и бренд-дизайна. Я давал обратную связь. С каждым циклом мы немного приближались к финальному результату.
По истечении шести недель мы сошлись на концепте, который нравился всем.
Эволюция набросков логотипа, которые мы рассматривали в первые недели, от старых к новым
На первых нескольких встречах Веб-Агентство показывало мне макеты сайта в разных цветовых гаммах.
По мере продвижения макеты становились всё боле проработанными. Мне начали показывать кастомные иллюстрации и иконки для сайта.
О кастомных иллюстрациях у нас разговора не было, но мне подумалось, что это небольшой объем работы, так что ничего страшного.
Спустя несколько недель Веб-Агентство организовало встречу, чтобы показать мне новые материалы. Но по логотипу и бренд-дизайну ничего нового у них не было. Вместо этого они все собрание показывали мне идеи по дизайну сайта.
— Просто чтобы уточнить: проект же по-прежнему предполагает ребрендинг, а не редизайн? – спросил я.
— Конечно, конечно, – заверил главный дизайнер. – Некоторые брендовые элементы сильно выбиваются из старого дизайна, мы просто набросали, как это примерно будет смотреться.
К декабрю работа над проектом продолжалась три месяца. Веб-Агентство на 95% закончило дизайн логотипа. Мне только хотелось, чтобы немного изменили закругленные углы и убрали рамку. В моем представлении, эти правки должны были бы занять пару часов.
Мне не терпелось закончить с логотипом, поскольку это был первый готовый продукт, который мне передаст Веб-Агентство. Финальную версию можно было бы разместить на сайте, интегрировать в веб-интерфейс и напечатать на футляре для устройства. И от этого меня отделяла всего пара часов. Но не тут-то было.
Где я мог бы разместить новый логотип (когда мне его сделают)
Вместо этого Веб-Агентство продолжало переделывать дизайн сайта. У главного дизайнера не находилось возможности доработать логотип, кстати, а как мне вот такая идея для главной страницы?
Последней каплей стало то, что Веб-Агентство начало показывать мне варианты нового дизайна для блога. Я с самого начала говорил, что меня волнуют только три страницы: главная, страница продукта и корзина. Всё остальное оставалось за рамками проекта, и мы это особо оговорили.
Отрывок из спецификации проекта, где это оговаривается
Я напомнил об этом Веб-Агентству, и со мной связался смущенный Айзек. Они признал, что дизайнеры не ограничились набросками. Проект их захватил, и они увлеклись, но он исключит из счета те часы, который были потрачены на редизайн блога.
В середине декабря я заметил, что прогресса у Веб-Агентства не наблюдается вообще. Они больше не устраивали встреч, чтобы обсудить ход работ, а комментарии, которые я оставлял к дизайнам, неделями висели без ответа.
Я списал всё на праздники. В декабре многие уходят в отпуск, и я полагал, что в новом году дело опять ускорится. Но когда наступил новый год, мало того, что темп не возрос, так еще и качество работы стало ухудшаться. Легкости и ясности в общении, которые сопутствовали начальным этапам работы над проектом, как не бывало. Теперь мелкое замечание о цвете фона обсуждалось в три захода.
В начале февраля я написал Айзеку на электронную почту и попросил объясниться. Он позвонил, извинился за то, что проект движется так, как движется, и признался, что на ходе работы сказываются внутренние проблемы Веб-Агентства. В ноябре уволился менеджер проектов, и теперь Айзек сам впопыхах выполнял его обязанности, параллельно подыскивая замену.
Айзек подтвердил, что спад в качестве мне не померещился. Крупные клиенты завалили Веб-Агентство работой. Дизайнеры хватались за мой проект, когда выдастся свободная минута, но, вероятно, не могли сосредоточиться на нем, как в начале работы.
Я понимал, что TinyPilot в их глазах – клиент мелкий. Я согласен был подождать несколько недель, пока не наступит затишье с другими задачами. Но мне хотелось, чтобы в оставшиеся десять-двадцать часов работа была такой, как в октябре – качественной, а не кое-как, урывками, как я наблюдал в декабре и январе.
— Ваш проект мы обязательно доведем до конца, – сказал Айзек. – Не могу только точно сказать, когда удастся выкроить часы.
Я спросил, найдут ли они время в ближайшие два месяца. Он не мог ничего обещать. Однако у него была мысль насчет того, как ускорить ход работы.
Проблема, на самом деле, в том, сказал Айзек, что я у них единственный клиент с почасовой оплатой. Мне так и предстоит оставаться на милости других клиентов, проекты которых всегда будут иметь приоритет над моим. Так почему бы мне не подписать долгосрочный контракт, чтобы время уделялось мне гарантированно? Контракт должен был охватывать минимум сорок часов, по тарифу 160 долларов в час.
Я чувствовал себя так, словно меня дурят и дергают за ниточки. Веб-Агентство выстроило работу таким образом, что всё было на 80% готово, но при этом абсолютно ничем невозможно было пользоваться. Если я передам работу другому исполнителю, придется многое переделывать. И что же, теперь они собираются держать этот двадцатипроцентный остаток в заложниках, пока я не подпишу контракт, который влетит мне в копеечку?
«Даже не знаю, что мне нужно для завершения...»
Со всей доступной мне дипломатичностью я объяснил Айзеку, что, как мне представляется, в сложившейся ситуации виноваты они. Если долгосрочный контракт был для всех выгоднее, почему нельзя было сказать об этом сразу, а не спустя много месяцев? Тогда мы могли бы уже закончить работу.
Айзек признал, что по отношению ко мне всё складывается несправедливо. Он пообещал пересчитать оплату за декабрьскую и январскую работу по тарифу постоянных клиентов и возместить мне разницу. Это предложение оставалось в силе независимо от того, подпишу ли я новый контракт.
Но что нам делать с сорока часами в месяц? Работы оставалось всего на двадцать.
Айзек внес предложение: Веб-Агентство возьмет на себя и разработку. Ставка у них выше, чем я заплатил бы своим разработчикам, но, по его расчетам, в целом, такая схема урежет расходы. Разработчики TinyPilot специализируются на таких языках, как Python и JavaScript, в то время как у сотрудников Веб-Агентства больше опыта работы с CSS и с прицелом на дизайн.
Я подписал контракт. Мои шестьдесят часов высококачественной, достойной постоянного клиента работы были запланированы на март.
На постоянном контракте всё поначалу шло неплохо. В первую же неделю Веб-Агентство закруглило почти все неоконченные задачи по дизайну. Где-то оставались еще шероховатости, но две из трех страниц были полностью готовы к передаче в разработку.
А потом наступила полная тишина.
Две недели от команды разработчиков не наблюдалось вообще никаких телодвижений. Я спросил у Айзека, в чем дело, и он объяснил, что расписание у команды свободное, так что они могут работать над моим проектом не каждую неделю. Он заверил, что к концу месяца оставшиеся у меня в резерве сорок восемь часов обязательно будут выработаны.
Месяц закончился, а Веб-Агентство так и не перевело сайт на новый дизайн. Вместо этого они потратили последние дни месяца на исправление мелких багов из трэкера.
Что их побудило взяться за эти незначительные правки? Ну, Веб-Агентство попросило меня завести тикеты в Github на все задачи, связанные с редизайном. Меня предупредили, что неиспользованные часы не переносятся на следующий месяц и деньги за них не возвращаются, так что лучше полностью забить расписание задачами, не ограничиваясь одной работой по редизайну.
Сюрпризом для меня стало распределение тикетов по разработчикам. Я думал, что один разработчик будет работать над страницей А, а другой – над страницей Б. Вместо этого Веб-Агентство передало всё, связанное с редизайном, одному разработчику, а на другого оставило прочие задачи. И вот таким образом четверть моего мартовского бюджета была потрачена на мелкие багфиксы.
В апреле возникла новая проблема.
На сайте TinyPilot используется фреймворк CSS Bootstrap, и соответствующая тема там оставалась еще со времен его первого запуска. Веб-Агентство заметило, что, если накладывать новый дизайн на диссонирующую тему, получится не пойми что. Они предложили заменить старую тему и наш внедренный по особому случаю CSS кастомной темой TinyPilot на Bootstrap. По прикидке разработчика, на переезд должно было уйти всего несколько дней, зато вся последующая работа от этого выиграет в скорости. Ну что ж, почему бы и нет.
Шли дни, шли недели, а о новой теме ничего не было слышно. Дело затянулось сильнее, чем они рассчитывали? Или повторялась мартовская ситуация и всю работу впихнут в последние дни месяца? Ответ я нашел в накладной за месяц. «Недельная» работа по замене темы Bootstrap в итоге заняла пять недель, то есть тридцать восемь оплачиваемых часов на общую сумму в шесть с небольшим тысяч долларов.
До и после пяти недель работы и шести тысяч долларов
К маю мы уже семь месяцев и сорок шесть тысяч долларов убили на проект, который предполагался четырехнедельным, с бюджетом в семь тысяч. Каждый месяц всё выглядело так, будто до конца остались считанные недели, но всегда возникали какие-то сложности, которые не позволяли Веб-Агентству доделать хоть что-то из того, что мне в реальности было нужно.
Пришло время сворачивать лавочку. Я сообщил Веб-Агентству о расторжении контракта за двадцать восемь дней, как того требовали условия. Они работали по ежемесячной предоплате, так что деньги за последний месяц были уже внесены. А теперь я еще и отказался от их услуг – какая у них оставалась мотивация закончить работу по проекту?
На удивление, с разработчиками всё пошло гладко, как никогда раньше, именно после того как я расторгнул контракт. Наконец-то темп работы стал таким, какого я изначально и ожидал. На код для одной страницы Веб-Агентство тратило по семь-десять дней.
Без сложностей не обошлось, но теперь я был к ним подготовлен. Мне постоянно предлагали то одно усовершенствование дизайна, то другое. Я от всего отказывался и настаивал на том, чтобы они сосредоточились на утвержденном макете. И слава богу, а то мы бы до сих пор не закончили.
В последний день последняя страница все еще была не готова. Веб-Агентство не прислало мне уведомлений о том, что прекращает работу. Первого июня, на следующий день после того, как наш контракт официально истек, разработчик сообщил мне, что Айзек дал добро на завершение неоконченных задач без дополнительной платы. Страницу он доделал за два дня.
Наконец всё было готово! Этот проект до такой степени разросся за пределы того, что я хотел изначально, и стал высасывать деньги и время в таких масштабах, что было большим облегчением оставить его позади.
Вот как выглядел финальный продукт.
Главная страница: до и после.
Страница продукта: до и после.
Корзина: до и после.
После завершения проекта я предложил Айзеку созвониться и обсудить, что каждый из нас мог бы сделать со своей стороны, чтобы всё прошло лучше. Объяснил, что пишу статью для блога о нашей совместной работе.
Айзек спокойно признал, что проект протекал не так гладко, как он рассчитывал. По его мнению, глубинная проблема заключалась в том, что Веб-Агентству сложно было подстроить свои рабочие процессы под небольшой бюджет TinyPilot. Типичные клиенты у них были на постоянном контракте и платили от двадцати до сорока тысяч в месяц. TinyPilot оплачивал всего сорок-шестьдесят часов в месяц – обычно они закладывали столько на проекты, которые требовали только поддержки, а не разработки с нуля.
Я выразил сожаление, что мы не выстроили работу так, чтобы я получил элементы дизайна, которые мог бы пустить в дело, раньше. Я бы предпочел, чтобы мне передали сначала логотип, потом новую панель навигации, потом главную страницу и так далее. Айзек ответил, что их клиенты, как правило, заинтересованы только в конечном итоге, без промежуточных этапов, но он понимает, почему для меня было бы удобнее получать результаты работы порциями.
Я поделился своим недоумением по поводу того, как мало Веб-Агентство участвовало в организации работы. Я полагал, что менеджеры проектов будут регулярно сообщать мне об изменениях в статусе проекта и следить за соблюдением сроков, но никто этого не делал. Айзек сказал, что это было ошибкой с его стороны. Веб-Агентство старалось, чтобы доля управления проектами составляла не более 5% от всех оплачиваемых часов. С моими масштабами 5% времени не хватило бы ни на что реально полезное, поэтому он вычеркнул управление проектом совсем. Оглядываясь назад, он признавал, что нужно было обсудить это решение и со мной, чтобы убедиться, что оно соответствует моим желаниям.
Мы поговорили о недостаточной прозрачности в распределении рабочих часов Веб-Агентства. Отчеты предоставлялись так редко, а работа велась так нерегулярно, что я постоянно упускал момент, когда задача раздувалась за пределы моих ожиданий. Я пожалел, что не поднял этот вопрос раньше – оказалось, нужно было только попросить. Веб-агентство использует для отслеживания оплачиваемых рабочих часов toggl, и Айзек с удовольствием предоставил бы мне доступ к дэшборду.
Если бы мне пришлось снова взяться за этот проект, я бы изменил в своих действиях следующее (в порядке убывания важности).
Нанял бы независимо фрилансера, вместо того чтобы обращаться в агентство
Не хочу делать далеко идущие выводы об агентствах на основании единственного опыта, но мне кажется, фрилансер лучше бы подошел для небольшого бизнеса, как у меня.
Большая часть проблем была связана с управлением, распределением ресурсов и коммуникацией. Я недооценил, насколько сложнее всё это становится, когда имеешь дело не с одним человеком, а с командой.
Веб-агентство работало на меня по сорок-шестьдесят часов в месяц – ровно столько же, сколько и разработчики-фрилансеры. Я думал, что контроля за ним нужно будет не больше, чем за фрилансером-одиночкой. Но когда в проект вовлечены несколько человек, усилий по управлению требуется больше, пусть даже они суммарно работают те же сорок часов в месяц.
Организовал бы работу так, чтобы получать серию небольших результатов
Поначалу казалось само собой разумеющимся, что будет лучше позволить агентству параллельно вести как можно больше процессов. Это позволит им эффективнее использовать свои ресурсы, и я получу быстрый результат за меньшую цену.
Но можно взглянуть на это под другим углом. Если проект состоит из восьми задач, каждая из которых занимает месяц, что бы вы предпочли?
Модель «от задачи к задаче» дает вам больше отдачи за те же деньги. К концу первого месяца у вас появляется продукт, который способен создавать ценность для бизнеса. К концу второго месяца их уже два, и так далее.
Кроме того, если исполнитель работает над всем сразу, вы оказываетесь в слабой позиции во время переговоров. Если у агентства на руках восемь задач, каждая из которых на 80% завершена, изменение масштаба проекта или смена исполнителя обойдется вам слишком дорого. Если количество задач в активной работе ограничено для агентства двумя или тремя, то, когда в проекте что-то разладится, в зоне риска окажется немногое.
Наконец, отслеживание восьми субпроектов более утомительно. Каждую незавершенную задачу необходимо держать в голове. Лучше сбывать их с рук небольшими партиями, чем тянуть полный набор на протяжении всего проекта.
Сузил бы рамки проекта
На стадии проектирования я позволил агентству зайти слишком далеко в редизайне сайта, хотя они должны были сосредоточиться только на логотипе, цветовой схеме и шрифтах. На стадии имплементации мне надо было жестче требовать, чтобы они не занимались исправлением мелких багов, пока новые дизайны не опубликованы.
Оговорил бы сроки
На первой встрече с командой Веб-Агентства я спросил, сколько, по их мнению, займет работа над проектом. «А сколько веревочка вьется?» — ответил вопросом их главный дизайнер. Как он объяснил, тут всё зависит от меня. Может, мне понравится первый же вариант, а может, я буду неделями всё браковать. Это прозвучало логично, и я не стал требовать большей ясности во временных рамках.
Я допустил ошибку и в том, что позволил этому расслабленному настрою просочиться в разработку. Нужно было добиваться, чтобы разработчики называли примерные сроки по каждой задаче и просить их пересмотреть масштаб, если объем работ слишком выбивался из рамок моих ожиданий. Это помогло бы предотвратить ситуации вроде пятинедельного квеста с рефакторингом, который в теории должен был уложиться в несколько дней.
Требовал бы совместного просмотра отчетов по рабочим часам
Проблемы с разрастанием масштабов во многом были вызваны замедленной обратной связью Веб-Агентства, когда дело касалось отчетов. Стандартно они предоставляли информацию по рабочему времени дважды в месяц. Пятнадцатого числа они сообщали, сколько выработали часов, без упоминания задач, на которые ушло это время. В конце месяца они пересылали разбивку часов по задачам.
Для сравнения: разработчики, работающие на TinyPilot, предоставляют отчет о рабочем времени в конце каждой сессии, чтобы я лучше себе представлял, как продвигается дело. Если десятичасовая задача начинает тянуть на все двадцать пять часов, мы решаем, снять ее или ограничить в масштабах.
Если я еще когда-нибудь обращусь в агентство, то буду настаивать на использовании инструмента, который даст обеим сторонам возможность просматривать отчеты в реальном времени – примерно по той же схеме, которую я применяю со своими обычными разработчиками.
Не стал бы самым мелким клиентом у исполнителя
Когда проект только начинался, Веб-Агентство сообщило, что большая часть их клиентов – компании крупнее моей, но они хотели бы помочь мне развить дело. Вроде бы отличная сделка – я смогу получить сервис того же уровня, что и крупные заказчики, несмотря на ограниченный бюджет.
На деле, сервис был далеко не таким же. Пока контракт был почасовым, мой проект то и дело задвигали ради постоянных клиентов. Когда я перешел в разряд постоянных, им не удалось эффективно выстроить работу в рамках бюджета.
Я уже делился отрывками этой истории, и получил много вопросов в духе «почему ты не решил эту проблему простым и очевидным путем». Думаю, намерения у этих людей были хорошие, но есть подозрения, что они рассуждают умозрительно или с позиции крупного, влиятельного клиента агентства.
Ниже я поясню, почему те очевидные выходы из ситуации, которые мне предлагали, не работали.
Почему ты не отказался платить, пока они не сдадут работу?
Веб-Агентство требует деньги вперед. На почасовом контракте я заранее оплачивал тридцатичасовые блоки. В качестве постоянного клиента с ежемесячной оплатой я вносил плату за предстоящий месяц до первого числа. У меня не было никаких финансовых рычагов, чтобы подтолкнуть их к завершению проекта.
Если бы я с самого начала настаивал на том, чтобы платить за конкретные результаты, думаю, Веб-Агентство отклонило бы мой проект. Они видели во мне не слишком крупного клиента с потенциалом, а работать с мелочью, которая предъявляет требования, как корпорация-гигант, не захочет никто.
Почему ты не подыскал разработчика, который всё бы тебе сделал за четыре доллара в час?
По моему опыту, дешевые разработчики годятся для двух сценариев:
Я рассчитываю, что сайт TinyPilot проживет долгую жизнь, поэтому мне нужен код, который можно будет без проблем поддерживать. А для этого необходимо нанять умелого разработчика, который пишет понятный код.
Почему ты не снял их с проекта и не нашел кого получше?
Если бы я отказался от услуг Веб-Агентства и стал искать кого-то еще, на организационные вопросы ушло бы от тридцати до шестидесяти часов. Причем без гарантии, что следующий исполнитель справился бы лучше.
Большую часть времени, пока велась работа над проектом, я сидел с ворохом частично выполненных задач. Передача этих недоделок и переход к новому исполнителю съели бы немногим меньше ресурсов, чем если бы я просто начал всё с нуля.
Почему ты просто не взял шаблон со Shopify?
Если бы можно было отмотать время назад, я бы создал простой магазин на Shopify с кастомной темой.
Когда я только запускал сайт, мне не хотелось привязывать себя к Shopify и вникать в их систему с шаблонами – ведь мне только и нужно было, что кнопка «Купить». Я вручную написал код для сайта при помощи фронтенд-фреймворка, который хорошо знал.
Со временем процесс покупки на TinyPilot усложнился. В итоге мне пришлось выложить круглую сумму за новую имплементацию функциональности, которую я мог бы иметь бесплатно на Shopify. Но на том этапе перенос всего контента сайта на Shopify сам по себе вылился бы в масштабный проект. Пришлось проводить редизайн того, что есть.
Я искренне считаю, что Веб-Агентство приложило все усилия при работе над моим проектом. Мне не кажется, что меня пытались обмануть или стрясти побольше денег. Мы просто друг другу не подходили. Я привык работать с независимыми разработчиками, а они привыкли к крупным клиентам.
Повторять этот опыт второй раз я бы не стал. Но, несмотря на все ошибки и стресс, результаты могут оправдать все мои страдания. По моим расчетам, появление нового сайта должно было повысить продажи на 10-20%, но реальное число оказалось ближе к 40%. В июле выручка TinyPilot составила семьдесят две с половиной тысячи долларов – рекордная сумма, на 66% больше, чем было до редизайна.
Делать выводы слишком рано, но я оптимистично оцениваю свои шансы остаться в плюсе после расходов в сорок тысяч долларов, которые заплатил Веб-Агентству.
График изменения выручки в течение года
Год спустя мой бизнес стал приносить сорок пять тысяч долларов выручки в месяц, но сайт по-прежнему наводил на мысли о любительском проекте какого-то студента. Пришло время обзаводиться профессиональным дизайном, который я себе обещал. Для меня имели значение только три страницы, поэтому я предполагал, что больших сложностей с редизайном не будет. Вероятно, несколько месяцев по срокам и тысяч пятнадцать по бюджету.
В результате редизайна я получил следующее:
Вот только несколькими месяцами и пятнадцатью тысячами дело не обошлось. Потребовалось восемь месяцев, сорок шесть тысяч и куча головной боли. Теперь, когда проект подошел к концу, я хочу разобраться, какие ошибки допустил и как позволил процессу настолько выйти из-под контроля.
Я знаю, что вы сейчас думаете. Когда слышишь, что кто-то потратил сорок шесть тысяч на редизайн трех страниц, сразу думаешь, что это какой-то простофиля, который ни в разработке, ни в найме не смыслит. Но мне-то это всё не в новинку! Я сам разработчик и неоднократно обращался к услугам фрилансеров, включая разработчиков, художников, контент-менеджеров и редакторов. С этим проектом я действительно допустил ряд ошибок, но, надеюсь, они окажутся поинтереснее, чем вы ожидаете.
Первая оценка: четыре недели и семь тысяч долларов
Я не преследую в этой статье цели изобличить агентство, поэтому называть его буду просто Веб-Агентством. Это компания из США, а нашел я их в ежемесячной ветке для фрилансеров на Hacker News.
Из всех, с кем я общался, Веб-Агентство назначило самую высокую ставку, но их портфолио лучше всего соответствовало тому стилю, который я хотел. У них было в достатке талантливых сотрудников с широким диапазоном навыков, куда входили дизайн, кастомные иллюстрации и 3D-графика.
Айзек, руководитель Веб-Агентства, завоевал мое доверие в первом нашем телефонном разговоре, предложив сузить рамки проекта. Хотя для него это означало меньше возможностей заработать, он посоветовал обойтись ребрендингом вместо полноценно редизайна. Веб-Агентство предоставит базовые элементы: новый логотип, цветовую гамму, шрифты. Когда ребрендинг будет проведен, я смогу оценить результат и решить, стоит ли продолжать с редизайном. Ребрендинг, как минимум, даст мне прочное основание для маркетинговой кампании, которую можно будет выстроить при поддержке специалистов по цифровому маркетингу. Звучало разумно!
Веб-Агентство произвело расчеты: ребрендинг должен был занять тридцать-сорок часов, раскиданных на две-четыре недели. Тариф за час составлял сто семьдесят пять долларов, соответственно, разговор шел о пяти-семи тысячах долларов за логотип и бренд-дизайн. Сумма укладывалась примерно в половину от моего общего бюджета, так что возражений у меня не было.
Айзек предупредил, что они, по большей части, имеют дело с более крупными клиентами. С основной массой заказчиков агентство работало по долгосрочным договорам на внушительные суммы. Мой проект был таким компактным по масштабу, что его можно было поставить на почасовую оплату, но при этом возникала вероятность, что его придется периодически ставить на паузу, если на кого-то из постоянных клиентов понадобится больше времени.
Я не видел ничего страшного в том, чтобы приостановить проект на неделю-другую, если на команду свалится много работы. Как я тогда полагал, на всё про всё должно было уйти два-три месяца, так что пара лишних недель ничего не меняла.
Медовый месяц
Первый месяц работы над проектом всё шло замечательно. Каждые две недели Веб-Агентство приглашало меня на собрание, где присутствовали главный дизайнер, старший дизайнер, менеджер проекта и Айзек. Они показывали мне образцы новых логотипов и бренд-дизайна. Я давал обратную связь. С каждым циклом мы немного приближались к финальному результату.
По истечении шести недель мы сошлись на концепте, который нравился всем.
Эволюция набросков логотипа, которые мы рассматривали в первые недели, от старых к новым
Первый звоночек: разрастание масштаба
На первых нескольких встречах Веб-Агентство показывало мне макеты сайта в разных цветовых гаммах.
По мере продвижения макеты становились всё боле проработанными. Мне начали показывать кастомные иллюстрации и иконки для сайта.
О кастомных иллюстрациях у нас разговора не было, но мне подумалось, что это небольшой объем работы, так что ничего страшного.
Спустя несколько недель Веб-Агентство организовало встречу, чтобы показать мне новые материалы. Но по логотипу и бренд-дизайну ничего нового у них не было. Вместо этого они все собрание показывали мне идеи по дизайну сайта.
— Просто чтобы уточнить: проект же по-прежнему предполагает ребрендинг, а не редизайн? – спросил я.
— Конечно, конечно, – заверил главный дизайнер. – Некоторые брендовые элементы сильно выбиваются из старого дизайна, мы просто набросали, как это примерно будет смотреться.
Доделайте уже логотип!
К декабрю работа над проектом продолжалась три месяца. Веб-Агентство на 95% закончило дизайн логотипа. Мне только хотелось, чтобы немного изменили закругленные углы и убрали рамку. В моем представлении, эти правки должны были бы занять пару часов.
Мне не терпелось закончить с логотипом, поскольку это был первый готовый продукт, который мне передаст Веб-Агентство. Финальную версию можно было бы разместить на сайте, интегрировать в веб-интерфейс и напечатать на футляре для устройства. И от этого меня отделяла всего пара часов. Но не тут-то было.
Где я мог бы разместить новый логотип (когда мне его сделают)
Вместо этого Веб-Агентство продолжало переделывать дизайн сайта. У главного дизайнера не находилось возможности доработать логотип, кстати, а как мне вот такая идея для главной страницы?
Последней каплей стало то, что Веб-Агентство начало показывать мне варианты нового дизайна для блога. Я с самого начала говорил, что меня волнуют только три страницы: главная, страница продукта и корзина. Всё остальное оставалось за рамками проекта, и мы это особо оговорили.
Отрывок из спецификации проекта, где это оговаривается
Я напомнил об этом Веб-Агентству, и со мной связался смущенный Айзек. Они признал, что дизайнеры не ограничились набросками. Проект их захватил, и они увлеклись, но он исключит из счета те часы, который были потрачены на редизайн блога.
В середине декабря я заметил, что прогресса у Веб-Агентства не наблюдается вообще. Они больше не устраивали встреч, чтобы обсудить ход работ, а комментарии, которые я оставлял к дизайнам, неделями висели без ответа.
Я списал всё на праздники. В декабре многие уходят в отпуск, и я полагал, что в новом году дело опять ускорится. Но когда наступил новый год, мало того, что темп не возрос, так еще и качество работы стало ухудшаться. Легкости и ясности в общении, которые сопутствовали начальным этапам работы над проектом, как не бывало. Теперь мелкое замечание о цвете фона обсуждалось в три захода.
В начале февраля я написал Айзеку на электронную почту и попросил объясниться. Он позвонил, извинился за то, что проект движется так, как движется, и признался, что на ходе работы сказываются внутренние проблемы Веб-Агентства. В ноябре уволился менеджер проектов, и теперь Айзек сам впопыхах выполнял его обязанности, параллельно подыскивая замену.
Айзек подтвердил, что спад в качестве мне не померещился. Крупные клиенты завалили Веб-Агентство работой. Дизайнеры хватались за мой проект, когда выдастся свободная минута, но, вероятно, не могли сосредоточиться на нем, как в начале работы.
Я понимал, что TinyPilot в их глазах – клиент мелкий. Я согласен был подождать несколько недель, пока не наступит затишье с другими задачами. Но мне хотелось, чтобы в оставшиеся десять-двадцать часов работа была такой, как в октябре – качественной, а не кое-как, урывками, как я наблюдал в декабре и январе.
— Ваш проект мы обязательно доведем до конца, – сказал Айзек. – Не могу только точно сказать, когда удастся выкроить часы.
Я спросил, найдут ли они время в ближайшие два месяца. Он не мог ничего обещать. Однако у него была мысль насчет того, как ускорить ход работы.
Решение: заплатить больше
Проблема, на самом деле, в том, сказал Айзек, что я у них единственный клиент с почасовой оплатой. Мне так и предстоит оставаться на милости других клиентов, проекты которых всегда будут иметь приоритет над моим. Так почему бы мне не подписать долгосрочный контракт, чтобы время уделялось мне гарантированно? Контракт должен был охватывать минимум сорок часов, по тарифу 160 долларов в час.
Я чувствовал себя так, словно меня дурят и дергают за ниточки. Веб-Агентство выстроило работу таким образом, что всё было на 80% готово, но при этом абсолютно ничем невозможно было пользоваться. Если я передам работу другому исполнителю, придется многое переделывать. И что же, теперь они собираются держать этот двадцатипроцентный остаток в заложниках, пока я не подпишу контракт, который влетит мне в копеечку?
«Даже не знаю, что мне нужно для завершения...»
Со всей доступной мне дипломатичностью я объяснил Айзеку, что, как мне представляется, в сложившейся ситуации виноваты они. Если долгосрочный контракт был для всех выгоднее, почему нельзя было сказать об этом сразу, а не спустя много месяцев? Тогда мы могли бы уже закончить работу.
Айзек признал, что по отношению ко мне всё складывается несправедливо. Он пообещал пересчитать оплату за декабрьскую и январскую работу по тарифу постоянных клиентов и возместить мне разницу. Это предложение оставалось в силе независимо от того, подпишу ли я новый контракт.
Но что нам делать с сорока часами в месяц? Работы оставалось всего на двадцать.
Айзек внес предложение: Веб-Агентство возьмет на себя и разработку. Ставка у них выше, чем я заплатил бы своим разработчикам, но, по его расчетам, в целом, такая схема урежет расходы. Разработчики TinyPilot специализируются на таких языках, как Python и JavaScript, в то время как у сотрудников Веб-Агентства больше опыта работы с CSS и с прицелом на дизайн.
Я подписал контракт. Мои шестьдесят часов высококачественной, достойной постоянного клиента работы были запланированы на март.
Разработка начинается… с мелких багфиксов?
На постоянном контракте всё поначалу шло неплохо. В первую же неделю Веб-Агентство закруглило почти все неоконченные задачи по дизайну. Где-то оставались еще шероховатости, но две из трех страниц были полностью готовы к передаче в разработку.
А потом наступила полная тишина.
Две недели от команды разработчиков не наблюдалось вообще никаких телодвижений. Я спросил у Айзека, в чем дело, и он объяснил, что расписание у команды свободное, так что они могут работать над моим проектом не каждую неделю. Он заверил, что к концу месяца оставшиеся у меня в резерве сорок восемь часов обязательно будут выработаны.
Месяц закончился, а Веб-Агентство так и не перевело сайт на новый дизайн. Вместо этого они потратили последние дни месяца на исправление мелких багов из трэкера.
Что их побудило взяться за эти незначительные правки? Ну, Веб-Агентство попросило меня завести тикеты в Github на все задачи, связанные с редизайном. Меня предупредили, что неиспользованные часы не переносятся на следующий месяц и деньги за них не возвращаются, так что лучше полностью забить расписание задачами, не ограничиваясь одной работой по редизайну.
Сюрпризом для меня стало распределение тикетов по разработчикам. Я думал, что один разработчик будет работать над страницей А, а другой – над страницей Б. Вместо этого Веб-Агентство передало всё, связанное с редизайном, одному разработчику, а на другого оставило прочие задачи. И вот таким образом четверть моего мартовского бюджета была потрачена на мелкие багфиксы.
Недельная работа, которая растянулась на пять недель
В апреле возникла новая проблема.
На сайте TinyPilot используется фреймворк CSS Bootstrap, и соответствующая тема там оставалась еще со времен его первого запуска. Веб-Агентство заметило, что, если накладывать новый дизайн на диссонирующую тему, получится не пойми что. Они предложили заменить старую тему и наш внедренный по особому случаю CSS кастомной темой TinyPilot на Bootstrap. По прикидке разработчика, на переезд должно было уйти всего несколько дней, зато вся последующая работа от этого выиграет в скорости. Ну что ж, почему бы и нет.
Шли дни, шли недели, а о новой теме ничего не было слышно. Дело затянулось сильнее, чем они рассчитывали? Или повторялась мартовская ситуация и всю работу впихнут в последние дни месяца? Ответ я нашел в накладной за месяц. «Недельная» работа по замене темы Bootstrap в итоге заняла пять недель, то есть тридцать восемь оплачиваемых часов на общую сумму в шесть с небольшим тысяч долларов.
До и после пяти недель работы и шести тысяч долларов
Последний месяц
К маю мы уже семь месяцев и сорок шесть тысяч долларов убили на проект, который предполагался четырехнедельным, с бюджетом в семь тысяч. Каждый месяц всё выглядело так, будто до конца остались считанные недели, но всегда возникали какие-то сложности, которые не позволяли Веб-Агентству доделать хоть что-то из того, что мне в реальности было нужно.
Пришло время сворачивать лавочку. Я сообщил Веб-Агентству о расторжении контракта за двадцать восемь дней, как того требовали условия. Они работали по ежемесячной предоплате, так что деньги за последний месяц были уже внесены. А теперь я еще и отказался от их услуг – какая у них оставалась мотивация закончить работу по проекту?
На удивление, с разработчиками всё пошло гладко, как никогда раньше, именно после того как я расторгнул контракт. Наконец-то темп работы стал таким, какого я изначально и ожидал. На код для одной страницы Веб-Агентство тратило по семь-десять дней.
Без сложностей не обошлось, но теперь я был к ним подготовлен. Мне постоянно предлагали то одно усовершенствование дизайна, то другое. Я от всего отказывался и настаивал на том, чтобы они сосредоточились на утвержденном макете. И слава богу, а то мы бы до сих пор не закончили.
В последний день последняя страница все еще была не готова. Веб-Агентство не прислало мне уведомлений о том, что прекращает работу. Первого июня, на следующий день после того, как наш контракт официально истек, разработчик сообщил мне, что Айзек дал добро на завершение неоконченных задач без дополнительной платы. Страницу он доделал за два дня.
Наконец всё было готово! Этот проект до такой степени разросся за пределы того, что я хотел изначально, и стал высасывать деньги и время в таких масштабах, что было большим облегчением оставить его позади.
Вот как выглядел финальный продукт.
Главная страница: до и после.
Страница продукта: до и после.
Корзина: до и после.
Постмортем
После завершения проекта я предложил Айзеку созвониться и обсудить, что каждый из нас мог бы сделать со своей стороны, чтобы всё прошло лучше. Объяснил, что пишу статью для блога о нашей совместной работе.
Айзек спокойно признал, что проект протекал не так гладко, как он рассчитывал. По его мнению, глубинная проблема заключалась в том, что Веб-Агентству сложно было подстроить свои рабочие процессы под небольшой бюджет TinyPilot. Типичные клиенты у них были на постоянном контракте и платили от двадцати до сорока тысяч в месяц. TinyPilot оплачивал всего сорок-шестьдесят часов в месяц – обычно они закладывали столько на проекты, которые требовали только поддержки, а не разработки с нуля.
Я выразил сожаление, что мы не выстроили работу так, чтобы я получил элементы дизайна, которые мог бы пустить в дело, раньше. Я бы предпочел, чтобы мне передали сначала логотип, потом новую панель навигации, потом главную страницу и так далее. Айзек ответил, что их клиенты, как правило, заинтересованы только в конечном итоге, без промежуточных этапов, но он понимает, почему для меня было бы удобнее получать результаты работы порциями.
Я поделился своим недоумением по поводу того, как мало Веб-Агентство участвовало в организации работы. Я полагал, что менеджеры проектов будут регулярно сообщать мне об изменениях в статусе проекта и следить за соблюдением сроков, но никто этого не делал. Айзек сказал, что это было ошибкой с его стороны. Веб-Агентство старалось, чтобы доля управления проектами составляла не более 5% от всех оплачиваемых часов. С моими масштабами 5% времени не хватило бы ни на что реально полезное, поэтому он вычеркнул управление проектом совсем. Оглядываясь назад, он признавал, что нужно было обсудить это решение и со мной, чтобы убедиться, что оно соответствует моим желаниям.
Мы поговорили о недостаточной прозрачности в распределении рабочих часов Веб-Агентства. Отчеты предоставлялись так редко, а работа велась так нерегулярно, что я постоянно упускал момент, когда задача раздувалась за пределы моих ожиданий. Я пожалел, что не поднял этот вопрос раньше – оказалось, нужно было только попросить. Веб-агентство использует для отслеживания оплачиваемых рабочих часов toggl, и Айзек с удовольствием предоставил бы мне доступ к дэшборду.
Что бы я сделал иначе
Если бы мне пришлось снова взяться за этот проект, я бы изменил в своих действиях следующее (в порядке убывания важности).
Нанял бы независимо фрилансера, вместо того чтобы обращаться в агентство
Не хочу делать далеко идущие выводы об агентствах на основании единственного опыта, но мне кажется, фрилансер лучше бы подошел для небольшого бизнеса, как у меня.
Большая часть проблем была связана с управлением, распределением ресурсов и коммуникацией. Я недооценил, насколько сложнее всё это становится, когда имеешь дело не с одним человеком, а с командой.
Веб-агентство работало на меня по сорок-шестьдесят часов в месяц – ровно столько же, сколько и разработчики-фрилансеры. Я думал, что контроля за ним нужно будет не больше, чем за фрилансером-одиночкой. Но когда в проект вовлечены несколько человек, усилий по управлению требуется больше, пусть даже они суммарно работают те же сорок часов в месяц.
Организовал бы работу так, чтобы получать серию небольших результатов
Поначалу казалось само собой разумеющимся, что будет лучше позволить агентству параллельно вести как можно больше процессов. Это позволит им эффективнее использовать свои ресурсы, и я получу быстрый результат за меньшую цену.
Но можно взглянуть на это под другим углом. Если проект состоит из восьми задач, каждая из которых занимает месяц, что бы вы предпочли?
- Ежемесячное выполнение одной из задач на протяжении восьми месяцев.
- Никаких результатов на протяжении семи месяцев, а затем, к концу восьмого – всё разом.
Модель «от задачи к задаче» дает вам больше отдачи за те же деньги. К концу первого месяца у вас появляется продукт, который способен создавать ценность для бизнеса. К концу второго месяца их уже два, и так далее.
Кроме того, если исполнитель работает над всем сразу, вы оказываетесь в слабой позиции во время переговоров. Если у агентства на руках восемь задач, каждая из которых на 80% завершена, изменение масштаба проекта или смена исполнителя обойдется вам слишком дорого. Если количество задач в активной работе ограничено для агентства двумя или тремя, то, когда в проекте что-то разладится, в зоне риска окажется немногое.
Наконец, отслеживание восьми субпроектов более утомительно. Каждую незавершенную задачу необходимо держать в голове. Лучше сбывать их с рук небольшими партиями, чем тянуть полный набор на протяжении всего проекта.
Сузил бы рамки проекта
На стадии проектирования я позволил агентству зайти слишком далеко в редизайне сайта, хотя они должны были сосредоточиться только на логотипе, цветовой схеме и шрифтах. На стадии имплементации мне надо было жестче требовать, чтобы они не занимались исправлением мелких багов, пока новые дизайны не опубликованы.
Оговорил бы сроки
На первой встрече с командой Веб-Агентства я спросил, сколько, по их мнению, займет работа над проектом. «А сколько веревочка вьется?» — ответил вопросом их главный дизайнер. Как он объяснил, тут всё зависит от меня. Может, мне понравится первый же вариант, а может, я буду неделями всё браковать. Это прозвучало логично, и я не стал требовать большей ясности во временных рамках.
Я допустил ошибку и в том, что позволил этому расслабленному настрою просочиться в разработку. Нужно было добиваться, чтобы разработчики называли примерные сроки по каждой задаче и просить их пересмотреть масштаб, если объем работ слишком выбивался из рамок моих ожиданий. Это помогло бы предотвратить ситуации вроде пятинедельного квеста с рефакторингом, который в теории должен был уложиться в несколько дней.
Требовал бы совместного просмотра отчетов по рабочим часам
Проблемы с разрастанием масштабов во многом были вызваны замедленной обратной связью Веб-Агентства, когда дело касалось отчетов. Стандартно они предоставляли информацию по рабочему времени дважды в месяц. Пятнадцатого числа они сообщали, сколько выработали часов, без упоминания задач, на которые ушло это время. В конце месяца они пересылали разбивку часов по задачам.
Для сравнения: разработчики, работающие на TinyPilot, предоставляют отчет о рабочем времени в конце каждой сессии, чтобы я лучше себе представлял, как продвигается дело. Если десятичасовая задача начинает тянуть на все двадцать пять часов, мы решаем, снять ее или ограничить в масштабах.
Если я еще когда-нибудь обращусь в агентство, то буду настаивать на использовании инструмента, который даст обеим сторонам возможность просматривать отчеты в реальном времени – примерно по той же схеме, которую я применяю со своими обычными разработчиками.
Не стал бы самым мелким клиентом у исполнителя
Когда проект только начинался, Веб-Агентство сообщило, что большая часть их клиентов – компании крупнее моей, но они хотели бы помочь мне развить дело. Вроде бы отличная сделка – я смогу получить сервис того же уровня, что и крупные заказчики, несмотря на ограниченный бюджет.
На деле, сервис был далеко не таким же. Пока контракт был почасовым, мой проект то и дело задвигали ради постоянных клиентов. Когда я перешел в разряд постоянных, им не удалось эффективно выстроить работу в рамках бюджета.
Почему ты просто не?..
Я уже делился отрывками этой истории, и получил много вопросов в духе «почему ты не решил эту проблему простым и очевидным путем». Думаю, намерения у этих людей были хорошие, но есть подозрения, что они рассуждают умозрительно или с позиции крупного, влиятельного клиента агентства.
Ниже я поясню, почему те очевидные выходы из ситуации, которые мне предлагали, не работали.
Почему ты не отказался платить, пока они не сдадут работу?
Веб-Агентство требует деньги вперед. На почасовом контракте я заранее оплачивал тридцатичасовые блоки. В качестве постоянного клиента с ежемесячной оплатой я вносил плату за предстоящий месяц до первого числа. У меня не было никаких финансовых рычагов, чтобы подтолкнуть их к завершению проекта.
Если бы я с самого начала настаивал на том, чтобы платить за конкретные результаты, думаю, Веб-Агентство отклонило бы мой проект. Они видели во мне не слишком крупного клиента с потенциалом, а работать с мелочью, которая предъявляет требования, как корпорация-гигант, не захочет никто.
Почему ты не подыскал разработчика, который всё бы тебе сделал за четыре доллара в час?
По моему опыту, дешевые разработчики годятся для двух сценариев:
- Нужен код, чтобы один раз использовать и выбросить.
- Вы не цените свое время и вас устраивает перспектива после каждого часа работы фрилансера тратить по два часа на правки.
Я рассчитываю, что сайт TinyPilot проживет долгую жизнь, поэтому мне нужен код, который можно будет без проблем поддерживать. А для этого необходимо нанять умелого разработчика, который пишет понятный код.
Почему ты не снял их с проекта и не нашел кого получше?
Если бы я отказался от услуг Веб-Агентства и стал искать кого-то еще, на организационные вопросы ушло бы от тридцати до шестидесяти часов. Причем без гарантии, что следующий исполнитель справился бы лучше.
Большую часть времени, пока велась работа над проектом, я сидел с ворохом частично выполненных задач. Передача этих недоделок и переход к новому исполнителю съели бы немногим меньше ресурсов, чем если бы я просто начал всё с нуля.
Почему ты просто не взял шаблон со Shopify?
Если бы можно было отмотать время назад, я бы создал простой магазин на Shopify с кастомной темой.
Когда я только запускал сайт, мне не хотелось привязывать себя к Shopify и вникать в их систему с шаблонами – ведь мне только и нужно было, что кнопка «Купить». Я вручную написал код для сайта при помощи фронтенд-фреймворка, который хорошо знал.
Со временем процесс покупки на TinyPilot усложнился. В итоге мне пришлось выложить круглую сумму за новую имплементацию функциональности, которую я мог бы иметь бесплатно на Shopify. Но на том этапе перенос всего контента сайта на Shopify сам по себе вылился бы в масштабный проект. Пришлось проводить редизайн того, что есть.
В заключение
Я искренне считаю, что Веб-Агентство приложило все усилия при работе над моим проектом. Мне не кажется, что меня пытались обмануть или стрясти побольше денег. Мы просто друг другу не подходили. Я привык работать с независимыми разработчиками, а они привыкли к крупным клиентам.
Повторять этот опыт второй раз я бы не стал. Но, несмотря на все ошибки и стресс, результаты могут оправдать все мои страдания. По моим расчетам, появление нового сайта должно было повысить продажи на 10-20%, но реальное число оказалось ближе к 40%. В июле выручка TinyPilot составила семьдесят две с половиной тысячи долларов – рекордная сумма, на 66% больше, чем было до редизайна.
Делать выводы слишком рано, но я оптимистично оцениваю свои шансы остаться в плюсе после расходов в сорок тысяч долларов, которые заплатил Веб-Агентству.
График изменения выручки в течение года