IT-разработка «внутри» или готовое решение: что выбрать
IT-разработка «внутри» или готовое решение: что выбрать
Алексей Петухов
Александр Овчинников
Текстов: Алексей Петухов, CEO Programming Store; Александр Овчинников, директор по развитию Programming Store.
Фото: Jiawei Zhao/Unsplash
До 2022 года на заказную разработку на внутреннем рынкеприходилось около 70% продаж сервисных компаний и до 20% — продуктовых, а по итогам 2023 года — 28,9% и 7,4% соответственно. Стоит ли IT-компании разрабатывать ПО с нуля или пойти по более простому пути и купить готовое решение? Оптимальный выбор зависит от конкретных целей, ресурсов и ограничений компании. Об этом рассказали «Инк.» руководители IT-компании Programming Store: CEO Алексей Петухов и директор по развитию Александр Овчинников.
Объем продаж услуг по заказной разработке в 2023 году составил около 205 млрд руб., что примерно на 22% ниже, чем за 2022 год. В то же время некоторые компании (особенно в крупном корпоративном сегменте, enterprise) до сих пор предпочитают создавать ПО с нуля, поскольку для специфических задач часто недостаточно универсальных решений.
Свое ПО
Выбор между разработкой с нуля и готовыми решениями зависит не только от размера бизнеса. Вот главные преимущества, которые дает создание ПО внутри компании.
Адаптация под задачи. Уникальное решение с учетом специфических задач компании решает конкретные проблемы максимально эффективно. Существует также заказная разработка. Компания может обратиться за реализацией нужного ПО к профильной фирме или привлечь внешних разработчиков для усиления конкретных компетенций своего IT-подразделения. В таком проекте компетенции и методология находятся на стороне заказчика: он понимает, что надо делать и как, но решение реализуется полностью сторонними силами.
Контроль и независимость. Компания полностью владеет продуктом и может свободно его дорабатывать, модифицировать или использовать по своему усмотрению. В отличие от готовых решений, которые не всегда позволяют проводить глубокую кастомизацию и нередко зависят от планов развития вендора, собственная разработка обеспечивает гибкость и независимость от сторонних поставщиков.
Прогнозируемость затрат на доработку. При сохранении команды разработки проще прогнозировать расходы на развитие и поддержку продукта, так как отсутствует зависимость от внешних подрядчиков и непредвиденных изменений на рынке. Впрочем, это не обязательно будет дешевле, чем использование готового продукта.
Выбор технологий. Можно самостоятельно выбрать платформу, язык программирования, фреймворки. Это позволяет остановиться на инструментах, которые распространены на рынке и легко поддерживаются.
Конкурентное преимущество. Собственная разработка дает компании уникальное решение, недоступное конкурентам. Это усиливает позиции бизнеса и помогает выделиться на рынке. Многие компании используют собственную разработку не только для внутренних нужд, но и как основу для коммерческого продукта. Это открывает новые возможности для получения дохода и укрепления бренда.
Часто сами разрабатывают ПО бизнесы из других областей: обработки сырья, производства товаров, торговли. IT для них — непрофильное направление, и из-за этого они могут недооценивать или не осознавать все риски, связанные с разработкой.
Высокая цена. Речь не только о разработке, но и о последующем владении. Также есть вероятность перерасхода бюджета, если не учтены все риски и этапы проекта. Как с автомобилем: его можно купить, но потом потребуется заправка, обслуживание, ремонт. С ПО ситуация аналогичная — поддержка, обновления, устранение ошибок и масштабирование потребуют значительных затрат, которые могут быть выше стоимости самой разработки.
Проблемы с поиском разработчиков. В условиях дефицита квалифицированных кадров на рынке недостаточно специалистов, готовых работать в нетехнологичных компаниях. Большинству заказчиков очень сложно найти разработчиков высокого уровня по средней цене. Придется либо переплачивать, либо готовиться к долгому поиску «нужных» людей, либо соглашаться на «бюджетных» специалистов. У таких программистов может не быть достаточных компетенций для разработки концепции и проектирования решения, user-story (краткое и понятное описание функциональности с точки зрения конечного пользователя. — Прим. ред.), понимания, каким должен быть продукт, на каких технологиях его лучше и быстрее реализовывать. А если процессы разработки в компании не налажены, то результатом может стать продукт низкого качества, «прибитый гвоздями» и не готовый к масштабированию.
Нет долгосрочного планирования. Компании фокусируются на текущих потребностях, не учитывая целевую архитектуру на несколько лет вперед, потенциальный рост всего предприятия или отдельного направления, под которое создается продукт. Как результат — решение «на сейчас» не справляется с масштабированием, когда компания вырастает в 10 раз. Например, на производстве пищевой продукции из-за проектирования без прицела на масштабирование возникли ошибки с данными в базе. Чтобы их починить, требовалось остановить работу предприятия на сутки. Это было невозможно, а проект миграции на новое ПО обошелся очень дорого.
Устаревающие технологии. Стек устаревает или перестает развиваться; специалистов для поддержки выбранной платформы трудно найти; продукт не масштабируется из-за морально устаревших технологий.
Недостаточное внимание к архитектуре решения. Архитектура должна учитывать рост нагрузки и масштаба бизнеса, иначе затруднены поддержка, модернизация и финансирование обновлений. Например, одна торговая сеть с франчайзинговыми точками в разных городах России работала в единой базе посредством RDP (Remote Desktop Protocol, протокол удаленного рабочего стола). Даже минимальные доработки требовали остановки системы, что стоило компании огромных денег.
Решения «из коробки»
А вот несколько преимуществ готового сервиса.
Быстрое решение задач. Коробочные сервисы могут адаптироваться под разные задачи. Они помогают быстро автоматизировать ключевые процессы — от управления клиентской базой до аналитики и внутреннего документооборота — без привлечения команды разработчиков и длительных этапов внедрения.
Экономия ресурсов на проверке гипотез. Low-code платформы позволяют быстро создать прототип, чтобы компания могла оценить возможное решение. После согласования прототипа можно переходить к полноценной разработке с учетом требований заказчика.
Простота в использовании. Компания может самостоятельно создать первый драфт продукта, чтобы оценить его достаточность для своих задач и решить, нужна ли индивидуальная разработка. Это экономия времени и ресурсов на этапе планирования.
Доступная стоимость. Готовые сервисы, как правило, дешевле в разработке и поддержке по сравнению с собственными продуктами. Использование такого ПО в целом снижает общий уровень риска и временные издержки.
Выбор готовых решений, несмотря на их удобство, также сопряжен с определенными рисками, которые сложно предугадать.
Отсутствие нужных продуктов. Особенно это касается высокоспециализированных отраслей, которым нужен совершенно новый сервис, а также компаний, использующих нестандартные форматы данных. В таком случае остаются либо собственная разработка, либо компромиссные варианты донастройки. Например, если в SAP предлагают подстраиваться под их систему, то 1С традиционно дорабатывала свои решения под заказчика (но рынок мотивирует даже 1С сейчас все чаще использовать стандартный подход на корпоративном рынке из-за стоимости владения).
Ограниченная функциональность. В 70% случаев ПО не подойдет идеально под конкретные бизнес-процессы. Придется либо жертвовать функциональностью; либо кастомизировать готовое решение (за доплату); либо менять структуру работы. Впрочем, зачастую бизнес-процессы, заложенные в решение и опробованные на сотнях или тысячах предприятий, оптимальнее, чем те, что используются в компании.
Невозможность управления продуктом. Компания может выбрать готовый сервис, но обнаружить, что не может самостоятельно им управлять.
Остановка поддержки продукта. Если продукт был создан стартапом, существует риск, что производитель прекратит поддержку из-за недостаточной финансовой устойчивости.
Политические и технологические риски. Отключение доступа из-за социально-политической обстановки, особенно к зарубежному поставщику. Кроме того, устаревание технологий решения может сделать продукт непригодным к использованию.
Риски безопасности. Например, готовое решение не выгружает данные (on-premise) на собственные сервера компании. Можно потерять коммерческую информацию или остановить бизнес при неполадках с интернет-соединением. Облачные сервисы не подходят, если в компании закрытый IT-контур. Также для госсектора и крупных предприятий могут быть и ограничения по использованию определенного ПО.
Семь советов предпринимателям
Вот общие правила, которые помогут не ошибиться.
Проанализируйте, есть ли на рынке подходящие вам сервисы, готовы ли вы адаптировать свои бизнес-процессы под стандартное ПО, доверяете ли вы производителю этих решений. А также оцените, какой бюджет потребуется на разработку, внедрение и поддержку. От ответов на эти вопросы зависит выбор.
Когда нужных готовых решений нет или они критично не подходят по стоимости доработки или компетенциям разработчиков; если вы уверены в своих силах или привлекаете надежных партнеров, есть смысл задуматься о собственной разработке.
Тщательно проверяйте поставщиков. Изучите репутацию компании, которая предоставляет продукт: кейсы, отзывы клиентов и референсы. Оцените долгосрочную устойчивость поставщика: его планы по развитию и финансовую стабильность. Проанализируйте используемые технологии и их актуальность.
Если ПО требует внедрения или доработок, важно согласовать и зафиксировать в договоре конкретную команду, которая будет заниматься проектом. Разными специалистами один и тот же продукт может быть внедрен совершенно по-разному. Например, внедрение ERP-системы может стать либо успешным, либо провальным в зависимости от компетенции команды даже у одного подрядчика.
Важна гибкость в подходах к разработке и внедрению как собственного, так готового продукта. Например, взаимодействие с подрядчиком на основе Time and Material (заказчик оплачивает не фиксированную стоимость, а часы работы специалистов. — Прим. ред.) позволяет корректировать требования и развивать продукт вместе с бизнесом. Он предпочтительнее Fixed Price (фиксированная стоимость за весь проект. — Прим. ред.), поскольку можно оперативно адаптироваться к изменениям в ходе проекта, существенно ускорить разработку и сэкономить на рисках, заложенных в оценку проекта. При этом гибкие методологии разработки нацелены на постоянное добавление реальной клиентской ценности и функциональности по результатам каждого спринта.
Со стороны компании-заказчика важно сформировать компетентную команду, которая будет контролировать процесс внедрения или разработки, поддерживать взаимодействие с подрядчиком, предоставлять необходимые данные и устранять препятствия, замедляющие проект со стороны заказчика.
Полезно привлекать внешних экспертов (например из профессиональных консалтинговых компаний), которые могут предложить современные и проверенные решения.