Взять готовое или сделать свое?
В чем преимущества собственных разработок? Традиционным плюсом собственных систем считается их «заточка» под потребности компании. В такой разработке будет только то, что действительно нужно компании, причем реализация проекта может происходить с четким соответствием стратегическому плану развития.
Однако что делать, если этого плана еще нет? Зато есть риск, что созданный продукт окажется медленным, нестабильным, наконец, не эргономичным и просто неудобным в использовании. К тому же время, которое уйдет на составление технического задания, согласования, непосредственную разработку и тестирование, может оказаться слишком долгим, а решение всегда нужно «вчера».
Подобные дилеммы часто встают перед CIO, особенно в крупных компаниях и государственных организациях. В этом смысле представителям СМБ легче — у них просто нет ресурсов на свои разработки, и они не сталкиваются с данной проблемой выбора. Максимум того, что они обычно делают, — это адаптация под свои нужды CRM, ERP, SCM или каких-либо других систем.
Тем временем разработка ПО внутри компании означает необходимость содержать достаточный штат программистов, которые могли бы заниматься его оптимизацией, развитием и поддержкой. И если в вашей организации уже имеется команда специалистов, которые могут выполнять данную задачу в дополнение к другим своим должностным обязанностям, можно задуматься о разработке ПО внутри компании, но для этого должны быть соблюдены 4 условия:
- В компании необходимо наличие авторитетного идеолога и вдохновителя, который будет направлять развитие проекта, контролировать его и принимать решения в сложных ситуациях.
- Необходимо наличие определенных бюджетов для привлечения сторонних программистов в случае нехватки собственных ресурсов.
- Требуется связать план разработки данного ПО со стратегией развития компании.
- И просто обязательно участие в проекте руководителей всех подразделений, которые этими разработками в дальнейшем будут пользоваться.
Процесс получается трудоемкий, но игра стоит свеч, если данное ПО — это ваше конкурентное преимущество, если оно — именно то, что нужно для бизнеса. В остальных ситуациях собственная разработка оказывается излишне затратным и недостаточно результативным.
Приведу пример из своей области. В крупных международных компаниях часто возникает задача встроенной функции быстрого (в идеале — автоматизированного) перевода — документов, переписки, технической документации, обсуждений между сотрудниками в разных странах. Для этих целей компании часто используют автоматизированный переводчик. Знаю примеры, когда такую переводческую машину компания создавала собственными силами — воспользовавшись доступными системами с открытым программным кодом (например, Moses) и имея в наличии тематически однородный корпус параллельных текстов, на которых происходит обучение переводчика. Эти параллельные тексты заменяют собой словари и алгоритмы, используемые в классических системах машинного перевода. Звучит довольно сложно, да и в реализации проект такого класса требует вложений, сходных с разработкой сложной информационной системы. При этом в проектную команду пришлось привлечь не только программистов, но и серьезных лингвистов. В результате неудивительно, что проект был свернут в силу невозможности полноценного развития созданной системы.
Думаю, что каждый из нас таких примеров может привести множество. Создание собственной разработки может быть интересным занятием с исследовательской точки зрения, возможно, полезным при реализации уникальных бизнес-функций, но вряд ли когда-либо станет массовым явлением.
А можете ли вы привести удачный пример собственной разработки? Или, наоборот, пример того, как инвестиции в такой проект не были оправданы?