28 сентября 2023 г.

Кирилл Владимиров

Когда мы принимаем решение об отпуске, строительстве дома или покупке автомобиля, у нас часто есть ясное представление о том, что действительно хотим. Мы имеем представление о стоимости «Бентли» по сравнению с BMW или бюджетными альтернативами, типа HAVAL или «Лада», и выбор становится довольно очевидным. Но как быть с выбором партнера по разработке программного обеспечения?

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

Цена вопроса

Желание быстрой максимальной экономии и недостаточное понимание тонкостей процесса разработки зачастую подталкивают заказчиков к выбору менее качественных услуг. В то же время есть поставщики, для которых коммерческая выгода и рост бизнеса даже в ущерб технологической дисциплине и качеству выполненной работы встают на первое место. Итак, предложение одного подрядчика — 1,5 млн рублей, другого — 10 млн рублей. Почему возникает такая разница в оценке? Есть несколько важных составляющих, пренебрежение каждой из которых ведет к нарастанию проектных рисков.

  1. Документация и юридические аспекты. Допустим, компания, предложившая более низкую стоимость, работает с сотрудниками на условиях фриланса или через статус самозанятого. Возможно, у них ещё не возникало ситуаций, когда требовались услуги юристов для составления сложных договоров с разработчиками, регламентирующих передачу прав на интеллектуальную собственность. Невнимательное отношение к этим вопросам может привести к юридическим тяжбам, потере прав на продукт и даже финансовым убыткам для заказчика.
  2. Тестирование. Рассмотрим аналогию со строительством: при выборе материалов для будущего дома вы, конечно, будете ориентироваться на их подтвержденную испытаниями пожаробезопасность. В мире ПО роль таких испытаний играет качественное и всестороннее тестирование. Некоторые подрядчики включают пункт о тестировании в свои предложения, но умалчивают о том, кто и как именно будет его проводить. Профессиональный же исполнитель обязательно уделяет до 30% общего времени проекта разнообразным методам тестинга, включая проверки на производительность и безопасность. Игнорирование этого этапа может с большой вероятностью привести к серьезным проблемам. Например, хакеры смогут получить доступ к вашему серверу и зашифровать данные, требуя немалый выкуп в криптовалюте.
  3. Журналирование. В современном цифровом мире информация ценится на вес золота. При этом каждое действие, произведенное в интернете (или в любой компьютерной системе), неизбежно оставляет «следы», которые можно проанализировать. Такие данные могут использоваться для улучшения пользовательского опыта, анализа ошибок или, в случае возникновения нештатных ситуаций, — для отслеживания проблемных моментов. Новости часто сообщают о крупных компаниях, которые сталкиваются с утечками данных, но для того, чтобы можно было «распутать» каждый такой эпизод, необходимо точно настроенное журналирование. Его отсутствие может привести не только к потере данных, но и к невозможности установить причину утечки или хотя бы определить масштаб проблемы. Компаниям, не имеющим качественного журналирования, могут грозить не только потеря репутации, но и значительные финансовые убытки.
  4. Профессионализм и квалификация разработчиков. Качество кода программного продукта непосредственно влияет на его производительность, надежность и безопасность. Только опытный разработчик, обладающий глубокими знаниями и пониманием не только языков программирования, но и архитектуры системы, может обеспечить высокое качество продукта. Наоборот, новичок (или тот, кто прошел лишь обучение на краткосрочных курсах) порой допускает ошибки, которые со временем могут обойтись очень дорого. Это грозит не только дополнительными часами, которые придется потратить на отладку и исправление багов, но и потенциальными угрозами безопасности, стабильности работы системы и сбоями, ведущими к потере данных. Заказчикам, решившим экономить на качестве разработчика, стоит помнить, что такая экономия в начале проекта может привести к большим издержкам в будущем.
  5. 5. Дизайн и система дизайна. Многие разработчики стремятся сократить расходы, используя готовые дизайн-системы или нанимая малоопытных дизайнеров. Чем это грозит? Дизайнер в мире разработки ПО — это не просто художник, но еще и инженер. Его задача — анализировать потребности пользователей и создавать логичные и интуитивные интерфейсы. Сбережение на дизайне может привести к неудобству работы с программным продуктом и, как следствие, к потере пользовательской базы.
  6. Интеллектуальная собственность. Нарушение прав интеллектуальной собственности — проблема чрезвычайно серьезная. Компании, которые предлагают разработку по существенно более низкой цене, могут нелегально использовать уже существующие решения, а не разрабатывать свои. Применение такого финального программного продукта, включающего элементы, права на которые принадлежат третьим лицам и применение которых никак не урегулировано, может повлечь за собой судебные разбирательства и штрафы. Особенно опасно, когда это касается корпоративных приложений и систем, используемых для ведения бизнеса. Потенциальные риски и ущерб тут могут быть значительными, несопоставимыми по масштабу с быстрой экономией.
  7. «Этого не было в ТЗ и требованиях!» Когда компания стремится привлечь клиентов, она может предложить заниженную стоимость разработки, опуская или преуменьшая объем работ, которые в действительности потребуются для реализации всех аспектов проекта. И тут легко столкнуться с неожиданными требованиями и дополнительными расходами как при реализации, так и после завершения проекта. Чтобы избежать подобных ситуаций, важно всегда составлять четко сформулированное техническое задание (ТЗ), где прописываются все аспекты проекта; не менее важно следить за его неукоснительным выполнением на каждом этапе разработки. Если какие-то вопросы остаются не учтенными в ТЗ, их следует обсудить и разрешить до начала работ. Кроме того, перед началом проекта необходимо провести аудит и анализ требований, чтобы удостовериться в том, что все стороны имеют одинаковое понимание задач и ожиданий.

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

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

Чеклист для проверки поставщика по разработке ПО

  1. Репутация и отзывы
    • Проверьте отзывы о компании в интернете;
    • Свяжитесь с предыдущими заказчиками компании для обратной связи;
    • Узнайте, участвовала ли компания в каких-либо профессиональных ассоциациях или получала ли награды в области ИТ.
  2. Опыт и квалификация
    • Уточните, сколько лет компания работает на рынке;
    • Оцените портфолио компании: насколько оно разнообразно, есть ли в нем проекты похожей сложности и/или в вашей отрасли;
    • Узнайте побольше о квалификации и образовании команды разработчиков.
  3. Технические возможности
    • Какие технологии и инструменты использует компания; отвечают ли они специфике проекта?
    • Имеются ли у компании сертификации на использование конкретных технологий?
    • Как выстроены процедуры тестирования и контроля качества?
  4. 4. Документация и соблюдение стандартов
    • Предоставляет ли компания полную документацию после завершения проекта?
    • Соблюдаются ли международные стандарты разработки и безопасности?
  5. Коммуникация и отчетность
    • Как часто и в какой форме будет осуществляться отчетность?
    • Кто будет вашим контактным лицом в компании?
  6. Финансовые и юридические аспекты
    • Прозрачно ли структурирована стоимость услуг?
    • Каковы условия оплаты, возможные штрафы и бонусы?
    • Есть ли у компании страхование ответственности перед третьими лицами?
  7. Условия договора
    • Каковы условия передачи прав интеллектуальной собственности?
    • Прописаны ли этапы разработки, сроки и этапы оплаты?
    • Условия по поддержке и обслуживанию после завершения проекта.
  8. Безопасность и конфиденциальность
    • Какие меры безопасности использует компания для защиты данных заказчика?
    • Как обеспечивается безопасность продукта на этапах разработки и эксплуатации?
  9. Гибкость и масштабируемость
    • Готова ли компания к изменениям в ТЗ на разных этапах разработки?
    • Как быстро компания может масштабировать проект или команду при необходимости?
  10. Послепроектное обслуживание
    • Предоставляет ли компания гарантийное обслуживание?
    • Каковы условия технической поддержки и дальнейшего развития продукта?

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

Источник: Кирилл Владимиров, генеральный директор ИТ-компании ONLY