Писать самим нельзя купить
Источник: connect-wit.ru
Авторы:
Технический директор ГК «Цифра» Павел Гриневич,
Руководитель отдела развития продуктов ГК «Цифра» Игорь Колобов
В эпоху цифровизации у промышленных предприятий все чаще возникает необходимость выбора стратегии разработки и внедрения программного обеспечения для автоматизации своих процессов. Компании сталкиваются с дилеммой: использовать готовое решение от вендора, разработать все самостоятельно или найти баланс между этими подходами. Особенно актуален этот вопрос для крупных холдингов, где требования к ПО уникальны, а стандартизация бизнес-процессов становится важным фактором успеха.
Мы расскажем о трех подходах: классическом использовании ПО от вендоров, полном insourcing’е — создании решений с нуля собственными силами и альтернативном варианте — inner source. Этот подход только набирает популярность в России и позволяет компаниям совместно с вендорами развивать ПО, сохраняя контроль над ключевыми процессами.
1. Два классических подхода
1.1. Использование готового ПО от вендора
Готовые решения от известных поставщиков — распространенный выбор для компаний, стремящихся быстро запустить автоматизацию процессов. Вендоры предлагают программное обеспечение, которое уже было протестировано и оптимизировано для использования в конкретных отраслях, а также предоставляют техническую поддержку и регулярные обновления, что снижает риски, связанные с устареванием программного обеспечения.
Преимущества этого подхода:
- Быстрая реализация.
Одним из главных преимуществ использования вендорского программного обеспечения является его быстрая реализация. В отличие от разработки решений с нуля, которая может занять месяцы или даже годы, вендорские решения предоставляют готовые функциональные модули, внедрение которых в контекст и инфраструктуру конкретного бизнеса можно осуществить за считанные дни или недели. Используя стандартные решения, организации уменьшают риски, связанные с разработкой и тестированием новых функций, так как такие продукты прошли проверку на множестве пользователей. Вендорское программное обеспечение предоставляет возможность оперативно внедрять новые функции и обновления, что способствует улучшению бизнес-процессов и повышению общей продуктивности.
- Поддержка и обновления.
Техническая поддержка внедренного программного обеспечения и его регулярные обновления играют важную роль в обеспечении эффективной работы производственных процессов и повышении общей производительности предприятия. Техническая поддержка, предоставляемая вендорами, гарантирует, что пользователи смогут быстро решать возникающие проблемы, получать консультации по использованию программного обеспечения и иметь доступ к актуальной информации о его функциональных возможностях. Наличие квалифицированной команды поддержки позволяет минимизировать время недоступности программных систем, что критично для любой производственной деятельности. Обновления программного обеспечения – еще один важный аспект, который делает вендорское решение привлекательным для промышленных предприятий. Регулярные обновления обычно включают новые функциональные возможности, улучшения технических характеристик продукта, устранение уязвимостей безопасности и другие преимущества по сравнению с предыдущими версиями. Обновления не только помогают поддерживать актуальность программного обеспечения, но и обеспечивают его соответствие новым стандартам и требованиям законодательства. В конечном счете, наличие технической поддержки и обновлений способствует созданию более надежной, эффективной и безопасной производственной среды.
- Стабильность и проверенная функциональность.
Когда компании или организации решают использовать готовое решение от вендора, они получают продукт, который уже был протестирован и оптимизирован для работы в определенной среде. Это означает, что пользователи могут быть уверены в его стабильности и надежности. Вендоры, разрабатывающие готовые решения, обычно имеют большой опыт и экспертизу в своей области, что позволяет им создавать высококачественные продукты. Вендоры тщательно разрабатывают и улучшают свои продукты, чтобы они отвечали требованиям рынка и ожиданиям клиентов. Благодаря этому, пользователи могут быть уверены, что готовое решение будет работать эффективно и обеспечивать все необходимые функции.
Таким образом, использование готового решения от вендора имеет множество преимуществ. Оно обеспечивает стабильность и проверенную функциональность, экономит время и ресурсы, а также предлагает широкий функционал и различные возможности и сервисы для пользователей. Однако несмотря на ряд преимуществ, использование готового ПО не всегда оправдывает ожидания.
Недостатки:
- Ограниченная гибкость.
Готовое решение от вендора обычно разрабатывается с учетом общих потребностей большинства клиентов. Вендоры стремятся создать универсальный продукт, который будет соответствовать широкому спектру требований. Однако, в процессе разработки такого решения, некоторые уникальные или специфические требования определенной компании могут быть не удовлетворены. Ограниченная гибкость готового решения может привести к тому, что компания будет вынуждена изменить свои рабочие процессы или адаптироваться к функционалу продукта. Если определенный функционал не включен в готовое решение, внедрение такого решения может требовать дополнительной настройки или кастомизации, что потребует дополнительных затрат.
- Высокие затраты на кастомизацию.
Первоначальные инвестиции в готовое программное обеспечение часто оказываются менее значительными по сравнению с разработкой индивидуального решения. Тем не менее, со временем может возникнуть необходимость адаптации системы под изменяющиеся бизнес-процессы или интеграции новых функций. В таких случаях компании сталкиваются с высокими затратами на модификацию готового решения. В процессе адаптации может потребоваться участие внешних консультантов, что также влечет за собой дополнительные расходы. Таким образом, изначально привлекательная экономия на этапе покупки может обернуться значительными расходами на поддержание и адаптацию программного обеспечения.
- Зависимость от поставщика.
Зависимость от поставщика представляет собой ситуацию, когда компания оказывается привязана к определенному вендору и становится ограниченной в выборе альтернативных решений и технологий. Одним из основных факторов, способствующих возникновению зависимости от поставщика, является закрытость архитектуры готового решения. Многие вендоры предлагают свои продукты как «черные ящики», в которых пользователи не имеют доступа к исходному коду и не могут модифицировать программное обеспечение под свои нужды. В результате, организации вынуждены либо мириться с существующими функциями решения, либо инвестировать дополнительные ресурсы в обучение персонала и разработку обходных путей. Таким образом, компании могут оказаться в ситуации, когда они не могут отказаться от использования определенного решения, даже если оно не соответствует их актуальным требованиям или неэффективно в условиях динамично меняющегося рынка.
- Сложности интеграции.
Сложность интеграции может быть вызвана различными факторами.Готовые решения часто имеют свои уникальные архитектуры и интерфейсы обмена данными, которые не всегда легко сопоставимы с внутренней инфраструктурой компании. Это приводит к необходимости разработки дополнительных модулей, адаптеров и интерфейсов, что увеличивает затраты на внедрение системы. Кроме того, отсутствие гибкости в настройках готового решения может стать препятствием для реализации специфических бизнес-процессов, которые уже устоялись в компании. В результате, отделы IT могут столкнуться с необходимостью разработки нестандартных решений и обходных путей, что потребует дополнительных затрат.
Еще одной важной проблемой использования готовых решений является высокая стоимость технической поддержки и обновлений. Многие вендоры требуют значительных ежегодных платежей за продление лицензий, что приводит к увеличению операционных расходов (OPEX). Компании также могут столкнуться с недостатком квалифицированного персонала для работы с узкоспециализированными решениями, что усугубляет зависимость от внешних поставщиков.
1.2. Полный insourcing: разработка с нуля
Альтернативой готовым решениям является создание программного обеспечения собственными силами. Этот путь выбирают компании с мощными внутренними ИТ-командами и значительными ресурсами. Insource разработка позволяет компаниям полностью контролировать процесс создания и внедрения программного обеспечения, обеспечивая учет уникальных потребностей и специфики бизнес-процессов.
Преимущества этого подхода:
- Полная адаптация под специфику бизнеса.
Команда разработчиков, являющаяся частью компании, лучше осведомлена о внутренних проблемах и задачах, что способствует созданию более эффективных и адаптированных решений. Insource дает возможность оперативно реагировать на изменения в требованиях и приоритетах, а также гарантирует более тесное сотрудничество между разработчиками и бизнес-подразделениями. Более того, это снижает риски, связанные с передачей конфиденциальной информации сторонним организациям и обеспечивает долгосрочную поддержку разработанного продукта. Имея полный контроль над процессом разработки, компания может оперативно адаптировать решения к меняющимся условиям рынка и потребностям клиентов. Такой подход позволяет не только создавать эффективные продукты, но и формировать культуру инноваций и непрерывного совершенствования.
- Контроль над процессом разработки.
Имея собственную команду, компания может самостоятельно определять приоритеты задач, вносить корректировки в технические решения и контролировать соблюдение сроков. Отсутствие посредников упрощает коммуникацию и минимизирует риск искажения информации. Внутрикорпоративная разработка также позволяет лучше защищать интеллектуальную собственность. Исходный код и другие конфиденциальные данные остаются под полным контролем, снижая вероятность утечки информации или ее использования в ущерб бизнесу. Еще одно важное преимущество инсорсинга — возможность более тесной интеграции разработки с другими подразделениями компании. Внутренние команды имеют прямой доступ к данным, аналитике и обратной связи от пользователей, что позволяет им создавать действительно полезные и востребованные продукты. Это способствует улучшению клиентского опыта и повышению эффективности бизнес-операций, обеспечивает большую предсказуемость и стабильность в долгосрочной перспективе.
- Независимость от внешних поставщиков.
Insource разработка предоставляет организациям существенное преимущество в виде независимости от внешних поставщиков. Это означает меньшую зависимость от сторонних графиков, цен и приоритетов. Более того, снижается риск утечки конфиденциальной информации и интеллектуальной собственности, поскольку разработка ведется внутри компании. Также insource разработка потенциально может быть более экономически эффективной в долгосрочной перспективе, поскольку позволяет избежать наценок внешних подрядчиков и оптимизировать использование внутренних ресурсов.
Недостатки:
- Высокие начальные затраты.
Создание внутренней команды разработчиков требует значительных финансовых вложений. Необходимо не только нанять квалифицированных специалистов, но и обеспечить их обучение, что также связано с дополнительными расходами. Кроме того, компании часто сталкиваются с необходимостью инвестировать в оборудование, программное обеспечение и другие ресурсы, которые могут потребоваться для эффективной работы команды. Это может привести к задержкам и увеличению бюджета. Также компании должны учитывать риски, связанные с изменениями на рынке и в технологиях. Инвестиции в insource разработку могут оказаться неэффективными, если в процессе разработки появятся новые технологии или изменятся потребности пользователей. В таких случаях высокие начальные затраты могут не оправдаться, и компания рискует потерять вложенные средства. Таким образом, хотя insource разработка предлагает множество преимуществ, высокие начальные затраты остаются серьезным препятствием для многих компаний, особенно для малых и средних предприятий, которые могут не иметь достаточных ресурсов для таких инвестиций.
- Длительные сроки разработки.
Внутренние команды часто сталкиваются с ограниченными ресурсами. Нехватка специалистов или их перегруженность текущими задачами может привести к замедлению процессов. В отличие от аутсорсинга, где можно быстро привлечь дополнительные кадры, insource разработка требует времени на обучение и адаптацию новых сотрудников. Кроме того, внутренние команды могут быть менее гибкими в плане внедрения новых технологий и методологий. Если команда уже работает по определённой схеме, переход на более современные подходы может занять много времени и потребовать значительных усилий. Это может привести к тому, что проект будет отставать от графика, особенно если возникают непредвиденные сложности. В совокупности эти факторы могут привести к тому, что на момент реализации решения требования, сформированные бизнесом, могут устареть, а само решение будет неэффективным.
- Высокий уровень рисков.
Внутренние команды могут столкнуться с нехваткой необходимых навыков и опыта. Если сотрудники не обладают достаточной квалификацией в определенных технологиях или методологиях, это может привести к ошибкам в проектировании и реализации, что, в свою очередь, увеличивает вероятность сбоев и задержек. Insource разработка часто требует значительных временных и финансовых ресурсов. Если проект не будет выполнен в срок или превысит бюджет, это может негативно сказаться на всей компании.
Однако ключевым фактором, ограничивающим применение insourcing, являются затраты и сложность управления полной цепочкой разработки. TCO (Total Cost of Ownership) — совокупная стоимость владения программным продуктом — при insourcing может стать непреодолимым барьером.
Для успешной реализации полного insourcing компания должна обладать зрелыми процессами разработки, готовностью к долгосрочным инвестициям и способностью эффективно управлять командой.
2. Inner Source — баланс между двумя крайностями
Inner source — это гибридный подход, сочетающий лучшие практики open source разработки с корпоративными стандартами и безопасностью. Основная идея заключается в совместной работе команды заказчика и вендора над развитием единой платформы.
2.1. Что такое inner source?
Inner source – это применение практик разработки программного обеспечения с открытым исходным кодом внутри организации. Вместо того чтобы использовать только внутренние ресурсы для разработки и поддержки программного обеспечения, inner source позволяет командам из разных подразделений и даже компаний сотрудничать и вносить вклад в проекты друг друга. Ключевым принципом inner source является открытость и прозрачность. Код доступен для просмотра и изменения другим командам, что способствует обмену знаниями, улучшению качества кода и ускорению разработки. Внедрение inner source может привести к повышению эффективности разработки, улучшению сотрудничества между командами, снижению дублирования усилий и созданию более инновационной культуры внутри организации. Это также способствует обучению и развитию сотрудников, позволяя им изучать и использовать лучшие практики разработки. При работе по принципу innersource особое внимание следует уделить лицензированию. Хотя код и остается внутри организации, необходимо определить, как будет регулироваться его использование и распространение, особенно если он будет использоваться в коммерческих продуктах. Четкие правила лицензирования помогут избежать юридических проблем и защитить интеллектуальную собственность компании. Но в отличие от open source, inner source ориентирован исключительно на внутренние или ограниченные группы пользователей. Это позволяет избежать рисков, связанных с открытой публикацией кода, и обеспечить высокий уровень безопасности.
2.2. Пример успешного применения
Рассмотрим реальный пример использования inner source в компании «Цифра» для разработки цифровой платформы. Некоторые клиенты компании, использующие платформу для цифровизации производственных процессов и создания единой системы управления на всех заводах холдинга, выбрали стратегию inner source. Вместо разработки всего ПО с нуля компании выделили ограниченные ресурсы, сосредоточенные на создании прикладных модулей, адаптированных под их процессы, используя цифровую платформу в качестве базы. В рамках совместной работы команды клиентов передавали изменения вендору для дальнейшей поддержки и развития. Таким образом, удалось сократить сроки разработки за счет распараллеливания работ во времени – пока внутренняя команда улучшает и развивает базовые функциональные возможности, внешние команды работают над прикладными. А также удалось сформировать единое решение для различных клиентов и площадок за счет того, что на этапе проектирования учитываются интересы всех сторон. Кроме этого, важным преимуществом такого разделения является повышение качества и безопасности решения – на стороне вендоре есть компетенции для контроля базового уровня безопасности и архитектурных стандартов, благодаря чему команды, работающие по стратегии inner source, сразу применяют эти практики.
3. Выводы и рекомендации
3.1. Как выбрать правильный подход?
Каждой компании важно учитывать свои ресурсы, зрелость ИТ-команды и стратегические цели. Важно провести оценку не только текущих потребностей, но и долгосрочных перспектив, чтобы обеспечить устойчивое развитие и адаптацию к изменениям. При принятии решения о выборе подхода, компании также следует учитывать следующие аспекты:
1. Технологическая инфраструктура: Наличие или отсутствие необходимой инфраструктуры для поддержки выбранного подхода может существенно повлиять на его эффективность. Например, для успешного внедрения inner source потребуется наличие инструментов для совместной работы и управления версиями, таких как Git, а также платформа для обмена знаниями.
2. Культура и ценности компании: Важно, чтобы выбранный подход соответствовал корпоративной культуре. Если в компании уже существует культура открытости и сотрудничества, inner source может стать естественным продолжением этих ценностей. В противном случае, внедрение такого подхода может столкнуться с сопротивлением со стороны сотрудников.
3. Долгосрочные цели и стратегия: Компании должны четко понимать свои стратегические цели и то, как каждый из подходов может помочь в их достижении. Например, если организация стремится к быстрому выходу на рынок с новыми продуктами или быстрому внедрению решения для повышения эффективности бизнеса, решение от вендора может оказаться более целесообразным. Если же акцент делается на развитие уникальных решений, которые требуют глубокого понимания специфики бизнеса, более подходящим может быть стратегия insource.
4. Финансовые ресурсы: Бюджет также играет ключевую роль в выборе подхода. Компании должны учитывать не только первоначальные затраты на внедрение, но и долгосрочные расходы на поддержку и развитие выбранного решения. Insource может потребовать значительных инвестиций в обучение и удержание специалистов, что может быть сложно для организаций с ограниченными финансовыми возможностями. В то же время, решение от вендора может показаться более привлекательным с точки зрения начальных затрат, но важно учитывать возможные скрытые расходы, такие как лицензии, обновления и техническая поддержка.
5. Масштабируемость: Важно оценить, насколько выбранный подход будет масштабируемым в будущем. Если компания планирует расширение или изменение бизнес-модели, необходимо убедиться, что выбранное решение сможет адаптироваться к новым условиям. Insource может обеспечить большую гибкость в этом плане, так как внутренние команды могут быстро реагировать на изменения. Однако, если компания выбирает решение от вендора, стоит обратить внимание на возможности масштабирования и интеграции с другими системами.
6. Поддержка и обслуживание: Необходимо учитывать, как будет организована поддержка и обслуживание выбранного решения. В случае insource, компания должна быть готова к созданию и поддержанию команды, которая будет заниматься технической поддержкой и обновлениями. В случае решения от вендора, важно оценить уровень обслуживания, который данный вендор обеспечивает для своих клиентов.
3.3. Заключение
Inner source — это перспективный путь для многих российских компаний, стремящихся к цифровой трансформации. Использование этого подхода позволяет избежать недостатков традиционных моделей разработки, сохраняя при этом контроль над критически важными процессами. В эпоху быстрых изменений именно гибкость и умение адаптироваться становятся ключевыми факторами успеха.