Типичные ошибки заказчика при работе с фрилансером
Всем привет. В последнее время я зарабатываю на жизнь консультациями по разработке компиляторов, парсеров, DSL языков плагинов под Intellij Idea и Eclipse. В работе чаще всего использую платформу Eclipse, фреймворки ANTLR4 и Xtext. В особых случаях приходится писать DSL-языки и руками. Проекты такого рода нужны не всем, но платят обычно хорошо, потому что на рынке таких людей немного.
В этой статье я хотел бы пояснить типичные ошибки, из-за которых заказчики не получают того, что им нужно, теряют деньги, время и попадают к фрилансерам в чёрный список (а вы как думали? Не только у HR он есть). Эти ошибки — следствие незнания или игнорирования принципов отношений заказчика и исполнителя, их сути. Также, по ходу дела, я дам советы, следование которым поможет общаться продуктивно и с удовольствием.
Итак, фрилансер (freelancer) — «свободный работник, частный специалист, который может одновременно выполнять заказы для разных клиентов» © Википедия. Как правило, фрилансер работает удалённо, отыскивая заказы через интернет. Занимается поиском более-менее постоянно, потому что работа имеет свойство подходить к концу. Это фактически бизнесмен — владелец фирмы из одного человека. Для многих фриланс — первая ступень к страницам Форбс (ну или они на это надеются). То есть неправильно строить взаимодействие с фрилансером по модели начальник-подчинённый.
Далее, коль скоро фрилансер — бизнесмен, выполняющий разовые заказы, он не является частью вашей команды. Заключение вроде бы очевидное, но при переговорах о нём часто забывают. Да, я прагматично работаю за деньги и не интересуюсь карьерой. Нет, я не дам вам скидку только потому, что у вашей быстрорастущей фирмы временные сложности с финансами. Тем более ничего не буду делать бесплатно. Почему? Да потому, что с одной стороны любая скидка означает меньше денег для меня и моей семьи. С другой — никаких плюсов конкретно для меня от неё не будет.
Зачем становятся фрилансерами
Причин несколько:
- Возможность самостоятельно определять время и место работы/отдыха. Фактически, фрилансер может работать в любом месте, где есть интернет в любое время, хоть с 24 до 7. Например, я прошедшую неделю провёл в Стамбуле. Полдня гулял и пол -работал.
- Фриланс может стать началом большого бизнеса. В начале ты глава фирмы из одного человека, потом нанимаешь помощников и пошло-поехало.
- Нет необходимости соответствовать корпоративным стандартам и принимать участие в политических играх.
Вместе с тем у фриланса есть и недостатки:
- Неравномерный график доходов и рабочей нагрузки: то работа и, соответственно, деньги есть, то нет.
- Необходимо заниматься всем сразу: поиском заказов, переговорами с клиентами, собственно работой, вопросами получения денег.
- Погонщика в виде менеджера над тобой нет. Поэтому требуются навыки самоконтроля и учёта рабочего времени.
- Практически каждый фрилансер был хоть раз кинут заказчиком.
Виды фрилансеров
Я разделяю два их вида: собственно фрилансеры и консультанты. Первые занимаются относительно простой работой, которая тем не менее является непрофильной для клиента. Пример — «сайт-визитка» для фирмы занимающейся ремонтом холодильников. Несложно, но заплатить за разовую работу дешевле, чем брать программиста в штат. Так что первые в основном продают владение преимущественно техническими навыками — отвечают на вопрос как.
Вторые — консультанты — решают проблемы. Отличие от фрилансеров в том, что очевидного решения задачи не существует. Требуется выявить, что происходит, предложить методы решения, зачастую самим составить техническое задание. Хороший пример: оптимизация работы энтерпрайз приложения на Java-машине. Профессионал в этой области может ускорить приложение минимум в 10 раз. При этом заказчик не знает, что именно надо сделать. Выявить это — задача консультанта.
Где найти специалистов и как выбрать подходящего
Собственно фрилансеров хорошо брать на биржах, таких как Upwork. Выбирать лучше всего по рейтингу: чем он выше, тем лучше. Однако, цена на работу у давно работающего специалиста с репутацией бывает соответствующей, да и за работой они не гоняются. Так что, вполне возможен и такой ответ: «Дорогой друг, спасибо тебе за предложение, но напиши мне летом. Сейчас никак не могу — очень много работы».
Можно ли поручить работу человеку без рейтинга? Конечно, да, но нужно понимать, что в этом случае вы рискуете. Неизвестно кто это: опытный программист, недавно работающий на бирже, или товарищ, вчера купивший книгу по HTML и думающий, что с остальным разберётся по ходу. Поэтому таких следует проверять на небольших и некритичных для бизнеса заказах.
С консультантами сложнее. Дело в том, что консультации возможны, если с одной стороны человек знает область очень-очень хорошо, а с другой стороны она достаточно экзотичная, иначе ответы будут тривиальны, и заказчик справится сам. К примеру, на upwork-е пункта «разработка инструментальных средств» нет вообще, поэтому лично я туда заглядываю редко. Где же искать? По публикациям, конечно. Консультанты обычно генерят для себя заказы с помощью статей, публикаций, лекций, проектов на гитхабе. Ищите там и обрящете.
Как формируется цена работы
Если фрилансер уже опытный, нижняя рамка цены не может быть меньше полуторной для штатного программиста из одного с ним региона. Почему? Да потому, что загрузка неравномерная, больничных и отпуска нет. Если ещё и получать меньше, чем за спокойную работу на дядю, лучше пойти в офис.
Правда и на минимальную планку фрилансер, скорее всего, не согласится. Он ведь работает на глобальном рынке и может брать заказы везде, не только в вашей богом забытой Кацапетовке. Особенно это справедливо для консультантов, которых на рынке может быть раз-два и обчёлся. Как говорится: не нравится — походите по базару, поищите дешевле :)
Отсюда ошибкой является попытка определить цену работы фрилансера исходя из того, сколько платят у вас в городе или стране. Оплата может быть как выше, так и ниже, но к вашему местоположению она никак не привязана.
Верхняя рамка цены всё же есть: она определяется вашей выгодой от полученной работы. То есть, если стоимость превысит xxx, вам проще вообще отказаться от заказа — вот это xxx и будет верхней планкой для вас. Из этого следует совет: торгуясь о цене, руководствуйтесь соображениями прибыли для вас конкретно и ничем больше. Иногда мне пытаются задвинуть такое: «Я слышал, что в вашей стране фрилансеры работают за xxx в час». На это я отвечаю: «Дорогой друг, мы говорим с тобой о нашем сотрудничестве. Моя цена вот такая. Если интересно, давай общаться дальше». Действительно, какое кому дело до того, как я распоряжаюсь финансами? Может я вообще на полюсе живу, в свободное время пью спирт и объезжаю белых медведей. И это аргумент, чтобы платить мне меньше? Я же не спрашиваю о том, сколько на моей работе имеешь ты. И отсюда еще совет: не считайте чужих денег.
«Что, если?» или заключаем договор
В качестве введения в проблематику предложу пространную, но подходящую к месту цитату из замечательной книги «Договориться можно обо всём» Гэвина Кеннеди:
«Вы коммивояжер, и вам необходим на месяц фургон, чтобы развозить товары в далекой Аравийской пустыне. Ваш хороший приятель из местных предлагает контракт на аренду автофургона:
„Один автофургон, $1000, аренда на один месяц“.
Что же плохого в простом и ясном („один автофургон и т. д.“) контракте?»
Ситуация очень частая в мире IT. Представим себе такой договор: сайт-визитка, срок реализации — неделя, оплата 200 долларов. Как этот сайт должен выглядеть, включается ли в услугу размещение на хостинге, а может быть и домен? Оплата покрывает неизбежные переделки, а поддержку, если да, то в течении какого времени?
Как справедливо указывает старина Гэвин, контракт этот не защищает ни исполнителя, ни заказчика. В результате сорванные сроки, выяснение отношений, потеря репутации у обоих сторон (помним, чёрные списки есть не только у рекрутеров). Отсюда совет: заключая договор, нужно прописать как можно больше подробностей и условий.
Изменились цели, или крепок задним умом
Положим, контракт ваш составлен идеально. Учитывает все подробности. Но в процессе работы вы поняли, что это совсем не то, что вам нужно. Время потеряно, деньги тоже. Чья это проблема? По моему мнению, ответственность полностью на заказчике. Вы читали договор? Читая поняли? Если нет, почему не обратились за разъяснениями и не потребовали внести их в текст? Так что теперь это проблема ваша. К счастью, решалась она множество раз и выход давно найден: итеративная разработка, или аджайл. В качестве классического примера можно привести скрам. Описание его выходит за рамки статьи, но вкратце, заказчику раз в неделю-две показывают, что получилось, а он выдвигает новые требования, базируясь на том, что уже видит. Но, как и везде, подход этот не универсален.
Во-первых, результаты работы часто бывают непонятны неспециалисту. К примеру, добавлял в алгоритм парсера обработку леворекурсивных грамматик. Что это за грамматика такая, зачем она нужна, почему это нужно делать сейчас, если результат не виден? Тут приходится или вникать в проблематику, или полагаться на мнение исполнителя. Но если во всё вникать, не проще ли самому сделать?
Во-вторых, невозможно указать фиксированную цену за работу, если объём её неизвестен.
Что же делать? По поводу первого пункта совет будет таким: выбирайте специалиста, которому вы доверяете. Совет по второму пункту такой: определите минимальный набор, без которого ваш проект жить не может, и выполните его в первую очередь. Собственно это является частью аджайл-манифеста.
Замечание. В случае с консультантом, решающим проблемы, ответственность за неверный выбор целей проекта лежит отчасти и на нём. Но вот, бяка случилась, декларируемые цели не совпадают с реальными, проект отчасти реализован. Как такую ситуацию предупредить? Правильно: думать головой и записывать в цели проекта именно то, что вам нужно. Именно поэтому я, как консультант, часто задаю вопрос «зачем»? Вам нужен новый язык программирования? Для чего? Быть может удастся обойтись xml, json или yaml? Нужен плагин под Eclipse? Почему обязательно под Eclipse и почему плагин? Возможно вас устроит правильно настроенный emacs? А может для ваших задач и вовсе подойдёт онлайн редактор? Это не от того, что я не хочу получить работу, мне лень что-то делать или я считаю себя умнее вас. Просто я хочу вам помочь, основываясь на своих знаниях и опыте, не просто выполнить заказанную работу, но решить проблему — снять вашу боль.
Давление, манипуляции, шантаж
Любой хочет сэкономить, поэтому понятно желание получить за свои деньги чуть больше (а может и не чуть) изначально оговоренного. Механизмы для этого известны: задержка последней оплаты и шантаж плохими отзывами. Да чего там последней, каждый фрилансер в начале деятельности сталкивался с тем, что заказчик, получив заказ просто пропадал. Обжегшись на молоке, дуешь на воду, поэтому большинство принимает меры, чтобы подобного не допустить.
Во-первых, учишься говорить слово «нет». В моём случае, это состоит в установлении предельного срока оплаты, после которого я перестаю работать. Есть ещё один срок, после которого я перестаю общаться вообще. Почему? Потому что бесплатно ничего не делать гораздо дешевле, чем бесплатно работать. Кроме того, время не резиновое: работая на одного заказчика, запросто можешь упустить другого.
Во-вторых, каждый успешный фрилансер хорошо снимает лапшу с ушей. У вас может быть много-много заказов в будущем (а может и не быть), вы станете самыми лучшими, мегауспешными, только мне-то какое дело? Где гарантия, что эти заказы (если они будут) достанутся мне? Поэтому ничего бесплатно в чаянии будущей манны небесной я делать не буду. Скидки возможны, но если это выгодно: например, мне доверяют заказ с технологией, которую я хотел бы освоить, но пока мало знаком. Из вышесказанного следует совет: шантаж опытного фрилансера бесполезен, он просто перестанет с вами разговаривать.
Невыплата последней суммы имеет смысл только, если вы никогда-никогда не будете обращаться к этому фрилансеру. Был у меня такой случай: делал DSL, оплату последней итерации зажали. Через некоторое время обращается ко мне тот же заказчик за модификацией. Говорю, мол, дружок, ты же не оплатил последнюю порцию работы. Оплати и тогда можно продолжить разговор по поводу следующей. Он туда-сюда, мол ты точно будешь делать? Я говорю: «В начале оплата предыдущего, и только потом разговор о следующей». Делать нечего, пришлось ему платить. Он правда пытался пропетлять, мол я заплатил, деньги скоро будут — начинай уже работать. Нет, говорю, в начале они должны прийти мне на карту. Пришли, всё в порядке. Я говорю: «Хорошо, но сейчас я занят очень, если хочешь могу сделать работу по премиальному тарифу (и задвигаю цену большую на порядок). Ну, или жди пока я освобожусь (хе-хе)». Как так, говорит. А вот так! Ты был должен за предыдущую работу — её и оплатил, я о дальнейшем сотрудничестве говорить не отказываюсь. А что цена изменилась, так никто не гарантировал её постоянства.
Последним советом будет такой: не плюй в колодец, или обманывать того, к кому придётся ещё не раз обратиться, себе дороже.