Чем программист отличается от парикмахера?1

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

Будничный момент общения с заказчиком

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

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

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

Анализируем системную часть для себя

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

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

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

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

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

// Начало документа

Почасовая работа программиста

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

Ставка в час: 1500 руб.

Рабочие часы в неделю: 40 часов, в месяц 160 часов.

Итого в месяц: 1500 x 160 = 240 000 руб.

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

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

Мое предложение состоит в следующем:

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

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

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

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

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

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

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

Чем программист отличается от парикмахера? Профессия, Программирование, Малый бизнес, Опыт, Зарплата, Длиннопост

Пример таблицы с отчетом по времени

В примере отражена схема работы с предоплатой на неделю за 10 часов работы. Этого вполне хватает, чтобы плавно вести проект. Тут заказчик платит 15 000 руб. в неделю или 60 000 руб. в месяц.

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

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

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

// Конец документа.

Да это получилось продающее коммерческое предложение. Отсюда клиент узнает выгоды, которые он получает за свои деньги. Многие возражения снимаются. Вроде описаны очевидные вещи, но магия случается именно тогда, когда эти очевидности перечисляются по пунктам и стороны принимают их.

Вывод

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

Есть талантливые люди, которым больше нравится решать технические задачи, а общаться с меркантильными клиентами это скучно и отнимает время.

Лига программистов

1.6K постов11.5K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

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