Как найти программиста, который не кинет

Денис Гордиенко, генеральный директор Bright Mobile, о том, как найти программиста, который не кинет.

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

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

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

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

Чтобы моя статья была наглядной, я создал на фрилансе проект с просьбой разработать для меня биржу заказа услуг, с идеей Uber, как в нашем коробочном решении поиск заказчиков и исполнителей. На него появилось множество откликов: столько, что заказчику без опыта запуска проектов может показаться, что море программистов готово драться за его проект. У меня пришло 33 отклика.

Как оформить задание

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

Как найти программиста, который не кинет

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

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

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

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

Ценность моего предложения как директора студии – как раз в том, что я принимаю заказ от клиента, работаю со своей командой, а затем отчитываюсь перед заказчиком, сдавая ему проект. Я представляю как раз того «одного единственного», которого они ищут. Если хочется сэкономить, такой груз придётся взять на себя, а это потребует опыта по управлению командой разработки.

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

В описании задания постарайтесь уместиться в несколько строк, выделив самые важные моменты вашего проекта. Исполнитель, отвечающий на проект, должен понять, соответствует ли он вашим требованиям, просто прочитав задачу. В моём случае требуется разработка приложения Uber в сфере услуг. Убер знают все, что такое сфера услуг понятно тоже. Сразу же прикрепляю подробное ТЗ, которое разработчики могут скачать и посмотреть.

Как правильно составить ТЗ для программиста?

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

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

Полностью вникать в ТЗ сразу никто не будет: шанс, что человека выберут, не такой большой (примерно 3%), чтобы попусту тратить время на каждый бриф. Однако хоть какое-то время потратить исполнитель должен, и ваша задача – выявить именно таких.

В постановке задачи нужно упомянуть обязательные пункты того, что нужно делать. Например, я указал, что админка пока не требуется, хотя в ТЗ она есть. Что означает перспективу её разработки в будущем – но сейчас считать её не надо. Сейчас речь только об iOS, Android и сервере.

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

1. Антиспам – какое-нибудь слово, по наличию которого можно разделить тех, кто внимательно читал ваше задание и тех, кто просто написал автоответы.

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

3. Для тестового проекта спросил про дизайн: потребуется ли он от меня или есть ли свой? Или вообще можно сделать его на элементах фреймворка На стеке фреймворка можно проработать весь дизайн: не потребуются ни дизайнер, ни верстальщик. Конечно, он будет простеньким, без каких-либо изысков, но, в целом, если дизайн в вашей сфере – не самое главное, это хороший вариант, позволяющий сэкономить до 30% от всего бюджета. Этот вопрос я задал для того, чтобы понять, умеет ли программист работать с подобными элементами или же рассматривает исключительно вёрстку, которую предоставит ему заказчик.

4. На вопрос, когда будет готово/какой срок займёт работа, все отвечают по-разному и обычно мажут, т.к. не читают ТЗ. Но ориентировочные сроки понять можно даже так: месяц, год, полгода. Также вопрос на этот ответ показывает степень занятости программиста: для меня, например, странно, если он готов начать работать уже завтра. Разработчик, который не занят здесь и сейчас, либо лентяй, либо мухлюет, т.к. сейчас заказов на порядок больше, чем адекватных исполнителей. Все нормальные разработчики сейчас заняты. И брать в работу проект через месяц – это считается нормально.

5. Стоимость работ. Стоит указывать бюджет, на который вы рассчитываете, в настройках самого проекта. Важно не заиграться и не указывать 30 или 10 тысяч: вас нормальные разработчики просто воспримут как неадекватного заказчика, который хочет за копейки сделать аналог Яндекса. Разговаривать с такими людьми никто не любит, разве что мошенники, которые расчитывают кинуть на эти 10 тыс, а сервис разрабатывать не станут. Поэтому пишите реальный бюджет. А если уж так хочется сэкономить, спросите лучше у самого программиста, что можно такого подрезать в ТЗ, чтобы удешевить разработку

Разбор откликов

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

Если же система антиспама пропустила спамные сообщения, определить их. так же просто.

Спам

Во-первых, нет ответа на ваши вопросы. Их отсутствие означает, что фрилансер просто оставил отклик, даже не вглядываясь в то, что вы писали. Аля «здравствуйте, как раз наш профиль, пишите сюда». Фраза, которую можно писать под любой проект. Заказываете ИМ? Как раз наш профиль. Нужна биржа услуг? Как раз наш профиль!

Как найти программиста, который не кинет

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

Похоже, фрилансер кидает этот файл всем заказчикам и просто ждёт, когда кто-нибудь клюнет. Не ведитесь на такие обманки: на первый взгляд круто — человек постарался, разработал коммерческое предложение, всё расписал, только сделал это он уже давно и теперь рассылает его всем подряд. Индивидуализации нет ни в отклике, ни в самом файле. Даже называется как-то универсально: mobile application. Ещё он по пунктам расписал варианты оплаты: поначалу я даже подумал, что это ответы на мои вопросы, но нет.

Неформат

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

Например, опыт – 13 лет. Кросс-платформа – react native или нативная kotlin и swift, по дизайну можно доработать шаблон, можно мой, а можно отрисовать. Сроки – начать может завтра, займёт около 40 дней, что, на мой взгляд, вряд ли, потому что у нас в ТЗ 29 экранов + куча дополнительного функционала.

Делать по экрану в день – очень шикарно, уровень у программиста должен быть очень высоким. Смущает и стоимость в 120 тысяч, такая работа вряд ли будет столько стоить. Такой специалист даже в офисе без рисков фриланса зарабатывает порядка 200 тысяч. А человек, который может самостоятельно собрать такое приложение за полтора месяца, будет ещё дороже. Триста в месяц – это минимум, так что он должен попросить не меньше 450 тысяч.

Причём, нисколько не обезопасив себя рисками фриланса. За такую работу обычно попросят тысяч шестьсот: так что сумма в 120 кажется очень подозрительной. Можно, конечно, написать и прямо спросить человека, почему он так себя недооценивает, но отсутствие портфолио за 13 лет и отзывов всё-таки не внушает доверия.

Адекватные отклики

Следующий программист пишет, что «для скорости разработки лучше выбрать react native или flutter». Как раз то обоснование, о котором я писал выше. Не будем сейчас рассматривать, так ли это, главное, что хоть какое-то обоснование у нас есть. «Для backend последнее время натренировался писать на postgres + notejs» — человек показывает, что ему, в общем-то, без разницы на чём писать, но на вот этих он умеет лучше. Тоже какой-никакой аргумент.

Как найти программиста, который не кинет

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

Цена на всю команду в 200 тысяч адекватная, сроки – 3-4 недели. И ссылка на портфолио. Тут я хочу отметить, что оно часто бывает рисованным, и при проверке важно найти какую-нибудь ошибку или сложную логику, а потом спросить человека, как он это делал. Если портфолио ворованное, исполнитель будет отмазываться какими-нибудь общими фразами. Если его – ответит конкретно, и ему можно верить.

В принципе, это можно рассматривать, как вариант идеального отклика:

  • Обоснованная позиция с точки зрения стека
  • Чёткое понимание что он может сделать, а что нет
  • Привёл ссылку на портфолио, причём на опубликованное в сторе

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

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

Ответ нормального фрилансера
Ответ нормального фрилансера

А здесь, у меня указано в одном из проектов система бронирования а-ля букинг. Подобный ответ программиста показывает, что ТЗ он даже не открывал:

Ответ курильщика
Ответ курильщика

Нюансики

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

Разбег цен и дорогие чеки

Важно учитывать, что будут откликаться и частники и команды, причём команды разного уровня. Например, один из откликов: 900 000 рублей, 90 дней. Адекватный ценник, как раз уровень моей команды. Вариант в принципе подходящий, но на фриланс за специалистами такого класса обычно не приходят.

Аналогично следующий отклик: «Денис, добрый вечер! Задача в целом понятна, уже разрабатывали приложения с подобной архитектурой». Снова та же самая обманка в духе «делали то же самое, а ссылки не дам». Спасло от спама то, что человек ответил на мои вопросы. Написал, что он от команды, довольно подробно рассказал о стеке, возможность создания дизайна подтвердил. Начать готовы сразу после подписания договора (что вполне нормально для студии). Стоимость (для команды) в 1 200 000 – тоже адекватная, хотя я бы назвал поменьше. Неплохой кандидат, если вы готовы рассмотреть подобный бюджет, но если вы планируете потратить 300 000, а вам предлагают почти 1,5 миллиона – вы в любом случае не сойдётесь, так как «сторговаться» не получится.

Как побороть смущение?

Если вроде бы предложение адекватное, а вроде что-то смущает, то что тут можно сделать? Можно договориться о каком-нибудь тестовом задании, которое вы оплатите. Например, сделать экран авторизации. Разделить 200 000 рублей на 30 экранов – получим 6700 за тест. И предложить сделать экран с оплатой по факту выполнения.

Тут программиста в принципе не должно ничего смущать: работа постфактум напрягает, когда она за весь проект: сделаешь 30 экранов, я проверю, заплачу – это уже странно. А если дробить задачу на микроэтапы – то люди вполне адекватно на это идут, у меня отказывается максимум 1 из 10. В этом случае вам всегда нужно быть на связи, а не отвечать ему раз в месяц и работать точно так же оперативно, как и сам программист.

Если устроили сроки и адекватность, увидели apk для одного экрана — значит всё хорошо. Если по произвольным причинам 1 экран не может родиться несколько дней, то опасения были не просто так и за 6 700р вы сняли риск завала проекта — рассматривайте следующего программиста.

Управленческие страдания

Как я уже говорил: уровень управленческого геморроя растёт соответственно вашей экономии: вы не потратите 700 000р, зато вам придётся включаться в проект на каждой стадии, креативить, дорабатывать, доплачивать. Нужно быть готовыми, что 200 000 – это то, от чего вы начнёте, а закончите, скорее всего, в районе 300-350.

Северная часть

Часто в откликах бывает что-то типа «Серверную часть не делаем, можно сделать на firebase». Весьма любопытный ответ, ведь хотя у firebase тоже есть серверная часть на Node JS, но попадаются программисты, которые делаю не фулстек, а только приложения. Если Вы договариваетесь с таким, имейте ввиду, что придётся искать серверщика, а про баги API и поиск того кто прав, а кто виноват в них — это отдельная статья.

Разброс сроков / цены

Количество часов в одном из проектов меня смутило: фрилансер указал его в районе «500-1000». Ладно бы не было ТЗ, но ведь приложил достаточно подробное. Понятно, что человек хочет сэкономить время, понятно, что не факт ещё, что его выберут, но раз он сейчас ради себя не суетится, то ради меня и подавно не будет – я бы с таким человеком работать не стал. Оценки само собой могут быть примерными, но не с разбросом в 2 раза.

Статистика ответов на проект

В итоге я получил 14 спамерских откликов, 10 отказов и 9 кандидатов.

Спамерские – объяснять нечего, ответы в стиле «сделаем всё, напиши, договоримся».

В кандидаты я выбирал тех, кто явно отвечал на мои вопросы, и называл хотя бы примерные ориентиры цен. Тут я не градирую сам ценник: кто-то предлагал двести тысяч, кто-то миллион, я смотрел не на цену, а на то, вникал ли кандидат в мой проект или откликался на автомате. Но можно смело отрезать половину из них, т.к. ценовой диапазон настолько разный, что если вы ищете разработчиков за 900 000, вам не подойдут те, что делают за 200, и наоборот.

Объективно из 33 откликов я выбрал четырёх кандидатов, с которыми можно продолжать хоть какое-то общение.

Можно подвести итог, что из всех откликов примерно 12% — это те, с кем имеет смысл общаться детальнее. Для того чтобы найти программиста на проект, в среднем, требуется ±50 откликов. То есть, в моём случае, шанс только 60% что я найду хоть кого-то подходящего из этих 4-х.

Иногда нужно оставить 4-5 заданий, чтобы из общей массы найти одного или двоих. В принципе, это как раз те риски, которые касаются фриланса. Бывает, клиенты спрашивают: почему на FL приложение стоит двести тысяч, а у вас такое же семьсот? Вот именно из-за этого и стоит: во-первых, с вас снимается поиск разработчика, во-вторых, объяснение всей команде, в-третьих, риск мошенничеств), а также фиксируется объём задач, т.к. мы сами пишем ТЗ.

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

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

В видео формате информацию по ведению проектов можно получить на моём YouTube.

3636
33 комментария

Адекватных заказчиков найти сложней, что впрочем и не удивительно.
А вот таких хитрожопиков, как аФФтор найти не сложно.

10
Ответить

А в чём хитрожопость?

1
Ответить

Смысл писать статью о том, как не лохануться играя в напёрстки? Шансы такие же. Адекватных программистов уже яндексы раскупили, обочина сидит на фл

8
Ответить

Меня больше всего бесят те, кто пять раз обещают "да, работать по 6 часов в день смогу", "да, доделаю завтра", но потом пропадают. 

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

4
Ответить

В человеко-часах заложить три недели, заплатить - за одну. :)

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

Ответить

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

— Фрилансер мог освободится, если проект внезапно остановили. Естественно ему нужен новый.
— Фрилансер не привык искать проекты заранее, чтобы делать качественно текущий, не отвлекаясь.
— Фрилансер восстанавливал силы и теперь готов покорять новые вершины.
— Фрилансер, которого ждешь, может оказаться банальным распи**яем, который будет работать спустя рукава, у него таких ждунов целый список, зачем ему делать первоклассную работу.
— В 9 из 10 случаев, если человек готов начать завтра, он голоден и сделает работу качественно.

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

3
Ответить

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

Ответить