Как заказывать услуги программиста?

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

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

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

Уверен, что проблема с завершением её работы была не совсем в предыдущих программистах…

Так как же заказывать услуги программиста, получая при этом именно то что вам нужно, в разумные сроки и за разумные деньги?

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

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

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

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

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

Написали? А теперь перечитайте несколько раз, убедитесь что вы ничего не забыли. Как правило, изменения вносимые в техническое задание после оценки сроков и стоимости работ — меняют цифры, которые озвучил программист. Более того, иногда запланировать какую-то функцию до начала работ — проще и дешевле, чем когда почти всё готово.

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

После согласования цены и сроков, следует согласовать порядок работы и оплаты.

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

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

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

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

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

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