Безопасность вашего проекта при работе с фрилансерами

Многие предприниматели в интернете не имеют своего IT-отдела или технического со-основателя и создают и развивают свои сайты при помощи фрилансеров:

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

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

В чем же риск?

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

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

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

  • нестабильная работа сайта по неизвестным причинам;
  • дыры в безопасности;
  • сложность изменения сайта и добавление новых разделов\функций.

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

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

Как можно уменьшить риски вашего проекта?

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

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

Какие шаги обычно предпринимают для контроля качества сайта:

  1. Проводить код-ревью (code review)
    Привлекая фрилансеров или свои программистов, просматривать получающийся код и вовремя давать обратную связь человеку, если код можно улучшить или упростить;
  2. Создавать тесты
    Вещь, которую очень многие фрилансеры и программисты не делают. Тесты это проверки, которым сайт автоматически подвергают (например, открыть главную страницу и увидеть заголовок последней новости). Основная польза написания тестов это уверенность, что очередная правка в сайте не сломала случайно какой-то другой раздел.

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

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