Выбор подрядчика в сфере веб-разработки – как поиск идеального партнера: нужно учесть множество факторов и задать уйму разных вопросов. Ранее мы делились советами, как управлять проектами, что делать после их завершения и как контролировать выполнение заказа. Сегодня же предлагаем обсудить, как порядочному заказчику найти надежного исполнителя: какие вопросы задать, на какие моменты обратить внимание. Недавний опыт собеседования с крупной компанией вдохновил нас на эту статью.
В большинстве случаев именно заказчик решает, будет ли он работать с подрядчиком, и это не случайно: как правило компании с крупными заказами щепетильно относятся к ресурсам. Неправильный выбор исполнителя может повлечь серьезные последствия в виде срыва сроков выполнения проекта, перерасхода бюджета и снижения качества конечного продукта. Поэтому важно не только найти подрядчика с подходящей ценовой политикой, но и оценить его репутацию, опыт и подход к работе.
О чем спросить потенциального подрядчика?
Присматриваясь к потенциальному исполнителю, клиенты без опыта чаще задают простые вопросы: "Что у вас за компания?" или "Как мы будем согласовывать дизайн?" Такие вопросы могут показаться примитивными, но они имеют право на существование. В случае с серьезными и опытными компаниями спектр вопросов может значительно отличаться. Если у заказчика уже был негативный опыт сотрудничества с разработчиками, при поиске нового исполнителя он будет внимательнее к деталям и непременно спросит о предоплате, сроках и прочих моментах, которые вызвали проблемы в прошлом.
Недавно мы успешно прошли собеседование с большой группой компаний, во время которого нам задали много интересных вопросов. По нашему мнению, спрашивать подобное должен любой заказчик. Поделимся с вами примерным списком важных для обсуждения тем.
Как выглядит процесс проектирования продукта?
Ответ поможет понять, как будет организован процесс разработки. Подрядчик должен подробно описать его простыми и понятными словами, чтобы вы могли осознать свою роль и участие в проекте, понять, какой именно результат стоит ждать на выходе. Если вас не привлекают к проектированию или привлекают минимально – лучше не радуйтесь, а попробуйте представить, насколько плохой продукт можете получить в итоге.
Также стоит узнать о гибкости разработки: ваши бизнес-требования могут меняться со временем, и подрядчик должен объяснить, как он сможет адаптировать под них систему без необходимости переписывать ее с нуля. Это важно, так как подобные изменения в ходе процесса часто приводят к дополнительным затратам и задержкам.
Если подрядчик не может рассказать о процессе разработки на доступном языке, это должно вас насторожить. Каждый заказчик должен четко понимать, как будет разрабатываться и проектироваться проект, чтобы в дальнейшем иметь возможность требовать выполнения условий. Непонимание на этом этапе может привести к провалу проекта.
Как построен технологический процесс?
Правильно организованный процесс разработки обеспечит приемлемое качество и скорость выполнения работ, поэтому заказчику необходимо знать его основные этапы.
Работа обычно начинается с этапа проектирования, на котором создается техническое задание на разработку. Важно, чтобы вы как заказчик согласовал это ТЗ – это значит, что вы должны полностью понять, что будет выполняться и как, а если какие-то моменты для вас сложны – попросить объяснить их еще раз. Только после согласования и полного вашего одобрения ТЗ направляется разработчику, который начинает работать, загружая изменения в репозиторий – место, где хранится код проекта.
После этого выполняется ревью – старший разработчик проверяет код на качество, безопасность и соответствие ТЗ. Только после успешного ревью изменения отправляются на тестовый сервер. После успешной проверки тестировщиком результаты передаются проект-менеджеру, который убеждается, что все выполнено по ТЗ. Лишь после этого задача может быть представлена вам для проверки или загружена на боевой сервер (production), и проект становится доступным для пользователей.
Даже после запуска проект-менеджер должен проверить, все ли работает корректно, так как тестовый и боевой серверы могут отличаться, В таком случае, конечно, от разработчиков можно будет услышать: "А вот у меня на компьютере все работает нормально!" На что проект-менеджер с улыбкой ответит: "Ну хорошо, тогда отдадим твой компьютер пользователю!"
Но если серьезно, то сокращение этапов разработки, например, пропуск проверки проект-менеджером или тестирования, может снизить качество продукта. Поэтому важно выбирать исполнителя, который четко соблюдает процесс. Понимание этапов процесса поможет избежать неприятных сюрпризов и гарантирует, что проект будет выполнен на высоком уровне. Помните, что опытные разработчики чаще работают в командах, и такие специалисты не всегда встречаются среди фрилансеров.
Как будут внедряться обновления?
Представьте, что подрядчик завершил доработку вашего проекта, вы согласовали изменения на тестовом сервере и разрешили “залить” правки на боевой. Существует риск, что при внедрении обновлений ваше приложение или сайт может начать работать некорректно, а если в этот момент на нем будут находиться пользователи, это может привести к серьезным последствиям, например, сбоям в обработке платежей.
Однако существуют проверенные практики, которые позволяют минимизировать риски при внедрении обновлений. Уточните у подрядчика, какие методы он использует для безопасного внедрения обновлений, чтобы не столкнуться с непредвиденной ситуацией.
Как будет обеспечиваться безопасность данных?
Подрядчик должен следить за безопасностью вашего продукта, проводить регулярные обновления, поддерживать стабильность работы продукта и защищать его от уязвимостей.
Обсудите вопросы хранения данных. Регулярные резервные копии должны стать частью процесса. Если ваши данные часто обновляются и имеют коммерческую ценность, важно, чтобы после каждого обновления информация сохранялась в безопасном месте, что минимизирует риск потери данных.
Кроме того, важно следить за программной частью проекта. Скрипты и другие компоненты должны быть защищены и актуализированы. Если подрядчик не уделяет этому должного внимания, это может привести к серьезным проблемам в будущем.
Задавая такие вопросы вы сможете лучше понять подход исполнителя и убедиться, что ваш проект будет реализован качественно и безопасно.
Как будет отслеживаться нагрузка на сервер?
Запустив свой продукт, вы не можете просто забыть о нем. Как офис, где регулярно проводятся уборка, проверка электричества и обновление оборудования, ваш проект требует постоянного мониторинга. Должны быть настроены специальные инструменты, которые будут сигнализировать о любых сбоях, зависаниях или недоступности сервиса. Так вы сможете оперативно реагировать на проблемы, получая уведомления или звонки в случае необходимости.
Кроме того, важно учитывать, что проект может работать, но при этом испытывать высокую нагрузку на сервер. Например, пользователи могут сталкиваться с долгими ожиданиями при загрузке страниц. Если сервер отвечает на запросы, но делает это медленно, это может привести к тому, что пользователи просто закроют сайт. Поэтому нужно заранее обсудить, как подрядчик будет отслеживать производительность и загруженность сервера.
Причин для высокой нагрузки может быть множество: неоптимизированный код, слишком высокая посещаемость или фоновые процессы, которые потребляют ресурсы. Поэтому важно, чтобы подрядчик имел план по оптимизации кода и инфраструктуры, а также инструменты для мониторинга производительности в реальном времени.
Итак, выбор подрядчика – это не только вопрос цены. Любая хорошая разработка стоит немалых денег, потому что за ней стоят опытные специалисты. Задавайте правильные вопросы, выбирайте надежных подрядчиков, чтобы ваши проекты были успешными. Мы в Nextner готовы помочь вам в этом процессе, гарантируя качественную разработку для стартапов и состоявшихся компаний. Ваш успех – наша цель!
Изображения от Freepik.