in

Решение классической дилеммы для разработчиков: покупать или создавать.

Разработка программного обеспечения всегда заключалась в решении проблем. Но различия в том, как мы решаем проблемы, могут быть огромными!

Усложнение ситуации – это один из аспектов, который любят использовать наши друзья, не связанные с разработкой: “Покупка или сборка”.

Должны ли мы разработать решение собственными силами или приобрести готовое?

Понимание дебатов

Решение о покупке или сборке, по сути, простое: вы создаете решение самостоятельно (build) или используете существующее (buy)? Хотя вопрос может быть простым, ответ часто бывает запутанным и зависит от множества факторов, к некоторым из которых мы, инженеры, не так чувствительны.

Конкурентное преимущество: суть дела

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

Но почему разработчики должны заботиться о конкурентных преимуществах?

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

Рассмотрим эти вопросы:

  • Является ли это ядром? Обеспечивает ли этот компонент явное преимущество перед конкурентами?
  • Распространено ли это? Этот компонент присутствует в большинстве приложений и не отличает наш продукт?

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

Факторы, которые следует учитывать: более глубокий подход

1. Время выхода на рынок

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

2. Финансовые последствия

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

3. Настройка и гибкость

Сборка обеспечивает большую кастомизацию и гибкость, поскольку вы создаете решение, адаптированное именно к вашим требованиям. Однако с такой гибкостью возникает ответственность за обслуживание. Конечно, даже если при принятии решения о покупке вы найдете именно ту функциональность, которую ищете, отсутствие контроля может означать, что желаемый вариант использования выходит за рамки внимания внешней организации, вынуждая вас сменить поставщика (или срочно создать функциональность для замены).

4. Интеграция с существующими системами

Готовые решения могут не полностью интегрироваться с вашей существующей инфраструктурой или инструментами. Создание собственными силами гарантирует, что решение идеально подойдет к вашим текущим системам.

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

Будьте осторожны в своих желаниях.

5. Набор навыков и ресурсы

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

6. Оценка рисков

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

7. Соображения масштабируемости

Готовые решения могут соответствовать вашему текущему масштабу, но могут плохо адаптироваться при расширении или эволюции, что приводит к потенциальной неэффективности.

Тем не менее, создание индивидуального решения позволяет вам с самого начала учитывать масштабируемость (и другие возможности), гарантируя, что программное обеспечение будет развиваться в соответствии с потребностями вашего бизнеса. Однако непредвиденный рост иногда может бросить вызов даже лучшим внутренним разработкам.

8. Поддержка и документация

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

В заключение: балансирующий акт

Дискуссия о покупке или сборке заключается не в поиске универсального ответа, а в понимании нюансов вашей ситуации. Для разработчиков это согласование технических возможностей со стратегией бизнеса. Нам нужно остерегаться наших предубеждений.

Конечная цель – не просто решить проблему, но решить ее таким образом, чтобы обеспечить нам и компании успех.

What do you think?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

GIPHY App Key not set. Please check settings