Из чего складывается стоимость работы веб-разработчика

Author Автор: Роман Чернышов    Опубликовано: 22 мая 2021

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

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

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

Факторы которые влияют на стоимость проекта

Факторы стоимость специалиста

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

Наличие технического задания

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

Учет скрытых деталей

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

Возможность внесения изменений в ходе работы над проектом

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

Скорость и срочность работы

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

Профессиональный уровень исполнителя

Одну и туже задачу можно решить разными средствами, разными методами, можно написать код разного качества в конце концов. Разумеется чем выше уровень профессионализма исполнителя, тем будет выше качество и стоимость его работы. Несмотря на то, что видимый результат для заказчика может быть одинаков в обоих случаях, на деле может оказаться так, что непрофессионально-написанной код не только не решит поставленные задачи, но и создаст ряд существенных проблем(например: в функции подтверждение номера телефона пользователя, может не быть ограничения на количество отправок СМС — это может сильно ударить по бюджету заказчика; или угроза безопасности системы, тоже сулит серьёзными проблемами всему проекту).

Компетенции

Что такое компетенции? Это навыки и знания исполнителя, его опыт работы в заданной сфере, личные наработки, понимание особенностей инструментов и сервисов с которыми ему предстоит работать. Например мне пришлось глубоко погрузиться в тематику страхования, в частности ОСАГО, чтобы реализовать ряд проектов. Можно сказать, что теперь я компетентен в этой области. И если поручить задачу хорошему но некомпетентному разработчику — то с высокой вероятностью проект затянется, его стоимость возрастет, будут допущены ошибки или вообще проект будет сорван. Поэтому, компетенции также влияют на стоимость работы, разумеется лучше заказать работу у компетентного разработчика, пусть и цена при этом будет выше.

Безопасность и конфиденциальность

Довольно острый вопрос. Представьте ситуацию: — Вы владеете сайтом с уникальным  функционалом, или ваш сайт содержит базу данных с тысячами(а иногда десятками, сотнями тысяч) пользователей, в какой-то одной узкой нише. Вы находите исполнителя для реализации поставленных задач, с отзывами, по самой выгодной цене, например на Кворк, Фрилансе и т.д. Видите, что исполнитель сделал десяток проектов за последние два месяца и по всем получил положительные отзывы. В описании у него указан нужный вам стек технологий. Хороший претендент для сотрудничества? Вроде бы да.

Но, не исключено что исполнитель выполнил десяток простых проектов с минимальным бюджетом, иными словами его аккаунт и репутация ему не так уж и дороги, ведь при потере их, он быстро сможет вернуться на эти позиции, зарегистрировав новый аккаунт и выполнив несколько простых заданий. А тут вы, со своим уникальным проектом или такой ценной базой пользователей, стоимостью в миллионы. Велик соблазн для новичка! Каковы ваши шансы сохранить конфиденциальность информации(о вас, вашем проекте, о ваших пользователях и т.д.) и не допустить утечки данных в чужие руки?

Надежность исполнителя

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

Гарантии возврата денег

Бывают такие ситуации, что исполнитель не справляется с проектом, по разным причинам: — переоценил свои возможности, не справился с нагрузкой, прочие личные обстоятельства. Так как работа ведется на результат, за что и берется оплата, в случае не достижения результата, профессионал вернет оплаченные ему средства(все или частично в зависимости от поставленных задач и их реализации), не зависимо от потраченного времени, но также стоит отметить, что это конечно же влияет на стоимость работ! То есть, страхование таких рисков включена в стоимость, это хорошо и для заказчика и для исполнителя, в ином бы случае заказчик мог остаться и без результата и без денег, с формулировкой «ну мы же работали, потратили время, кто же знал что там столько подводных камней».

Сопровождение

Что присуще биржам типа Кворк, Фриланс и им подобным — так это то, что как правило после завершения проекта, претензии по нему не уместны. Исполнитель получил оплату и более может быть для вас просто недоступен. О каком либо сопровождении, платном или уж тем более бесплатном, речи быть не может. Но, ведь не всегда удается протестировать результат работы и выявить все недочеты в течении короткого времени или на тестовом стенде. Зачастую на это может потребоваться больше времени(чем 1-2 дня), или же требуется тест в рабочей среде при реальных нагрузках. Я обычно даю всем своим клиентам, период бесплатной поддержки, в одну-две недели. Этого как правило хватает для полного тестирования результата и в случае выявления недочетов, я всегда рад их исправить, разумеется без дополнительной платы.

Разные подходы к решению одной задачи. Пример.

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

Простой вариант

  • В форме регистрации, на сайте, напротив поля ввода номера телефона добавляем кнопку «Отправить СМС», которая отправляет Ajax запрос на PHP скрипт отправки СМС;
  • Пишем PHP скрипт отправки СМС, который будет принимать запрос на отправку, содержащий номер телефона. Проверочный код запоминаем в Сессии;
  • Добавляем поле ввода проверочного кода из СМС в форму;
  • При отправке формы, проверяем корректность кода из СМС и из PHP Сессии.

Оптимальный вариант

  • Спроектировать и внедрить доработки таким образом, чтобы в случае обновления скриптов основного проекта, внесенных доработок это коснулась как можно меньше, чтобы свести к минимуму возможность отказа функционала;
  • В форме регистрации, на сайте, напротив поля ввода номера телефона добавляем кнопку «Подтвердить», при нажатии происходит проверка номера на занятость, если номер занят другим пользователем, выводим соответственное сообщение;
  • Отображение кнопки «Отправить СМС»(в случае если номер не занят другим пользователем), которая отправляет Ajax запрос на PHP скрипт отправки СМС;
  • Пишем PHP скрипт отправки СМС, который будет принимать запрос на отправку содержащий номер телефона. Проверочный код запоминаем в Базе данных(БД);
  • Для повышения процента получения СМС до абонентом, проверяем номер на корректность и соответствию всем допустимым маскам(номер может начинаться 8, +7, иметь код другой страны, иметь длину 11-14 символов и т.д.), корректируем номер перед передачей его СМС сервису для отправки сообщения;
  • Создаем нужные таблицы в БД, с комментированием и пояснением;
  • Добавляем поле ввода проверочного кода из СМС в форму;
  • Добавляем кнопку «Проверить» напротив поля ввода кода из СМС, по нажатию которой, будет отправлен Ajax запрос на проверку корректности кода (без перезагрузки страницы и отправки основной формы). Если код не верный, выводим соответственное сообщение, проверяем корректность кода из СМС и из Базы данных;
  • Если код верный, запоминаем факт подтвержденного номера телефона в Cookie. Даже если на этом этапе, обновить страницу с формой, повторного запроса на проверку номера не будет, он уже подтвержден, система это помнит;
  • Добавляем кнопку «Изменить номер», в случае если пользователь пожелает изменить номер, система позволит ему это сделать, будет запущена повторная процедура проверки номера с отправкой кода по СМС, без перезагрузки страницы(что крайне важно, в форме могут быть введены другие данные, но пока еще не готовые к отправке);
  • После отправки нескольких СМС и отсутствии ввода корректного кода, приостановить отправку повторной СМС с кодом на несколько минут минут, с выводом соответственного сообщения;
  • Выводим таймер обратного отсчета, что до повторной отправки кода в СМС, осталось MM:СС;
  • При отправке всей формы, повторно проверяем номер телефона и корректность введенного кода, заносим в базу данных информацию об этом;
  • JavaScript отвечающий за данный функционал перед отдачей клиенту, защитить от возможного изучения(обфускация, минификация, удаление комментариев, упаковка), при этом оригинал скрипта оставить читаемым с комментариями;
  • Тестирование на разных устройства и в разных браузерах, включая разное разрешение экранов и масштаб;
  • Создать файл документации описывающий в какие файлы основной системы были внесены изменения, а также прочую полезную информацию которая может пригодиться разработчику кто будет в дальнейшем поддерживать основной проект;
  • Сделать бекап всех оригинальных файлов основного проекта, в которые были внесены изменения.

Максимальный вариант

Несмотря на то, что я уже расписал для такой простой задачи столько пунктов, на самом деле есть еще много чего, что можно добавить и это будет абсолютно обоснованно. Зачастую из-за какой-то нереализованной казалось бы мелочи, вы можете потерять клиента, или даже стабильно терять 15-20% клиентов в месяц, как вам такое? Ничего хорошего, согласен. И это только лишь из-за того, что клиент например не может получить СМС — из-за нелогичной последовательности действий, например. Поэтому если ваши клиенты стоят дорого(реклама, маркетинг и т.д.), то стоит подходить к реализации такой задачи с максимальной ответственностью. В максимальном варианте может присутствовать(в дополнении к оптимальному):

  • Вынос настроек в админпанель вашего проекта;
  • Работа с несколькими СМС сервисами, с автоматическим выбором оптимального, с наивысшей гарантией отправки СМС для конкретного оператора, региона, страны. В том числе страховка одни СМС сервисом другого на случай недоступности, отсутствие денег на счету и прочее
  • Добавление возможности ручной активации администратором, номера телефона пользователя;
  • Ведение журнала событий(логирование) на случай множественный попыток регистрации с разными номерами но одним IP-адресом например и т.д.;
  • Возможность настроек текста сообщения и его параметров, а также имени отправителя;
  • Статистика по использованию данной функции и всех связных с ней сервисов;
  • Еженедельная отправка отчета о регистрациях, затратах, на Email администратору проекта.

И это еще не предел! При этом, озвученный список работ, может вкладываться заказчиком, в изначальную формулировку задачи — которая звучала просто и быстро. На практике были прецеденты и с гораздо большим объемом подразумевающегося функционала с пометкой «Само собой разумеющееся» или «Логично же». А в итоге: сложная задача, растянутые сроки, недовольство со всех сторон. Не хорошо.

Заключение

Надеюсь эта статья хоть немного приоткрыла занавесу того, как и из чего формируется стоимость работ исполнителя. В заключении я бы еще хотел ответить на такой вопрос: — А возьмется ли профессионал за проект, по самой низкой стоимости, если изначально указать в условиях, что: — сроки неважны, поддержка не нужна, гарантии не нужны, компетенции не важны и т.д.? Ответ – Нет! Ни один уважающий себя исполнитель, профессионал, не будет выполнять работу, заведомо с наихудшим результатом. Ведь он(профессионал) тем и ценен, что делает так — как должно быть правильно! Потому что иной результат, это прямой удар по его репутации…

Выбирайте профессиональных исполнителей, не экономьте на важном!

А я, всегда рад поработать с вами, обращайтесь!

Оставить комментарий

Автор блога
Роман Чернышов
Веб-разработчик,
Full Stack
Senior, Architect
PHP, JavaScript, Node.JS, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Моя книга
Книга. Веб-разработчик. Легкий вход в профессию
Печатная книга
Веб-разработчик.
Легкий вход в профессию
Оформить предзаказ
Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка