Самописные проекты - это хорошо или плохо?

Самописные проекты vs Готовые решения: Анализируем риски, стоимость и контроль в обоих подходах.

Самописные проекты - это хорошо или плохо?
INGELLO / BUSINESS0072

Слово «самописный» в IT давно звучит почти как ругательство. «У них самописная CRM» говорят примерно тем же тоном, что «у них самодельная проводка». И я понимаю, откуда это идёт: я видел десятки самописных систем, которые держались на одном программисте, не имели ни документации, ни тестов, и при попытке что-то изменить рассыпались, как карточный домик. Но я видел и обратное: компании, которые годами мучились, пытаясь втиснуть свой уникальный процесс в готовую коробку, платили за лицензии больше, чем стоила бы собственная разработка, и в итоге всё равно делали половину работы в Excel. Так что честный ответ на вопрос из заголовка звучит скучно: зависит. Но от чего именно, я как раз и хочу показать.

Главный вопрос: это Ваше конкурентное преимущество?

Я предлагаю клиентам один простой фильтр. Посмотрите на процесс, который хотите автоматизировать, и спросите себя: чем мы здесь отличаемся от конкурентов? Если ничем, если бухгалтерия у Вас такая же, как у всех, а почта работает как почта, то писать для этого свою систему странно. Это как шить себе костюм на заказ для того, чтобы мыть в нём полы. Готовое решение будет дешевле, надёжнее и быстрее.

А вот если процесс и есть то, за что Вас выбирают клиенты, ситуация переворачивается. Уникальная логика расчёта стоимости, особенный способ работы с заказом, нестандартная схема взаимодействия с партнёрами. Если Вы втиснете это в готовую коробку, то либо потеряете свою уникальность и станете как все, либо будете тратить силы на обходные пути вокруг ограничений чужой системы. В таком случае собственная разработка это не каприз, а инвестиция в то, что отличает Вас на рынке.

Готовое решение покупают для того, что у Вас как у всех. Своё пишут для того, что делает Вас не такими, как все.

Когда своё оправдано

Кроме конкурентного преимущества, есть ещё несколько ситуаций, когда собственная система разумнее готовой:

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

Почему у самописных систем плохая репутация

Плохая репутация заработана честно, и стоит понимать, за что именно. Проблема не в том, что система своя. Проблема в том, как её обычно делают. Типичная история: компания нанимает одного программиста или небольшую студию, те пишут систему без проектирования, без документации, без тестов, на технологиях, которые им нравятся. Пока автор на месте, всё работает. Когда он уходит, компания оказывается заложником кода, в котором никто не может разобраться.

Готовые продукты от этого защищены просто потому, что их делают большие команды по стандартам, и у них тысячи пользователей, которые находят ошибки. Поэтому сравнивать надо не «своё против готового», а «хорошо сделанное своё против готового». Если своё делается так же дисциплинированно, с архитектурой, документацией, тестами и понятными технологиями, то большинство страшилок про самописные системы просто перестают быть правдой.

Один клиент как-то сказал мне: «Я больше никогда не буду заказывать самописное, нас уже один раз обманули». Я попросил показать, что ему тогда сдали. Оказалось, что ему сдали не систему, а набор файлов без единого описания, развёрнутый вручную на сервере, пароль от которого знал только исполнитель. Обманули его не самописностью, а отсутствием инженерной культуры. С тем же успехом можно отказаться от ресторанов, однажды отравившись в придорожной забегаловке.

Третий путь: основа плюс своё

На практике лучший вариант часто лежит между крайностями. Берётся готовая основа, которая закрывает типовой учёт: клиенты, склад, продажи, документы, права доступа. А поверх неё дописываются модули под уникальные процессы компании. Так Вы не изобретаете заново то, что одинаково у всех, и при этом сохраняете своё там, где это важно. Это как купить хорошую квартиру с готовыми коммуникациями и сделать в ней ремонт под себя, вместо того чтобы самому прокладывать водопровод.

Важно только, чтобы основа была открытой и расширяемой, а не закрытой коробкой. Иначе через год Вы упрётесь в ограничения поставщика и окажетесь там же, откуда начинали.

Как принять решение

Разложите свои процессы на две группы: типовые и уникальные. Для типовых ищите готовые решения или платформы. Для уникальных оцените, сколько стоит их адаптация к готовому продукту, включая потерю удобства и обходные пути, и сколько стоит собственная разработка вместе с поддержкой на три года. Если разница невелика, выбирайте готовое. Если своё значительно выигрывает по деньгам или по возможностям, делайте своё, но делайте его как следует.

Мы в Ingello построили свою работу ровно на этой логике. Forma это открытая платформа для типового учёта, которую можно брать как основу и расширять под клиента. Fractal позволяет генерировать собственные системы по описанию, с единообразным кодом, документацией и инфраструктурой, так что «своё» перестаёт означать «непонятное». А в Systems мы помогаем разобраться, где Вам нужна коробка, а где костюм на заказ. Самописное не хорошо и не плохо. Плохо то, что сделано без головы.