Дилемма разработчика

Выбор между использованием существующей службы или платформы и созданием собственной

Я столкнулся с большой проблемой прямо сейчас.

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

Платформа, которую я использую сейчас, основана на статическом сайте, который взаимодействует с использованием настраиваемых интеграций и инструментов без кода (например, Airtable). Платежи и подписка на курсы управляются с помощью сервисов Node.js. Вы можете называть этоJAMstack,бессерверный, или любой модный сегодня модный термин.

На самом деле, у меня есть несколько платформ SAAS, все похожие, для каждого из моих курсов. Мне нравится делать вещи максимально простыми и понятными. Когда я только начинал, я сделал сайт курса.

Затем, когда пришло время делать еще один курс, я просто скопировал этот веб-сайт и сделал еще одну его «версию».

Теперь количество курсов увеличилось до 7, и пришло время пересмотреть общую инфраструктуру, которую я использую.

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

Итак, я пошел и попробовал несколько популярных сервисов, включая Teachable, Podia и многие другие.

Но я столкнулся с тем, что я называю дилеммой разработчика.

На первый взгляд, платформы потрясающие. Хорошо спроектирован, их интерфейс приятен, их маркетинг сияет, и он действительно выглядит великолепно.

Потом я начал их использовать.

И я начал подниматься по шкале разочарования.

  1. «Выглядит великолепно»
  2. «Мне это в целом нравится, но все могло быть иначе»
  3. «Редактор - отстой»
  4. «Хотел бы я использовать уценку»
  5. «Есть ошибка, как это возможно, я единственный, кто с ней столкнулся?»
  6. «Привет, поддержка, я столкнулся с этой проблемой» - «Мы передали ее команде инженеров, мы будем держать вас в курсе»
  7. «Боже мой, я уже потерял на этом много времени»

Я ленивый разработчик. Я считаю это лучшим из своих технических возможностей.

Если вы ленивый разработчик, чрезмерное проектирование программного обеспечения не является проблемой. Этого никогда не бывает. Я просто пишу минимальный объем кода, необходимый для выполнения задачи.

Я сопротивляюсь сложности.

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

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

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

Потому что написание программного обеспечения - это ответственность.

Вы записываете вес, который собираетесь взять с собой в будущем.

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

Это означает, что сначала мне нужно его закодировать.

Мне нужно принимать решения. Решения, которые могут оказаться правильными, решения, которые могут оказаться неправильными.

И после того, как я создам программное обеспечение, о котором мечтаю, мне нужно поддерживать код в будущем. Я несу за это ответственность. Кнопки «попросить поддержку» больше нет.

Как разработчик, мы обладаем невероятной способностью создавать необходимые нам инструменты. Однако за счет ответственности.

Но это еще и дилемма владения. Хочу ли я полагаться на эту платформу в ближайшие 5-10 лет? Что, если решения, которые они принимают, не совпадают с моими? Что, если они поднимут цены? Смогу ли я легко от нее отойти?

В идеальном сценарии я всегда выбираю свою платформу, а не платформу, управляемую другими людьми. Но я всегда выбираю и самый простой маршрут.

Самый большой и самый ценный для меня ресурс - это время. Я мог бы иметь гораздо больше времени, выбрав существующее решение.

Стоит ли мне потратить один месяц на написание собственной платформы курсов?

Это текущий пример дилеммы разработчика, с которой я столкнулся.

Я перепробовал все возможные готовые решения.

Все они так или иначе не выполнили своего обещания (или того образа, который у меня сложился в моей голове).

Я решил, что напишу собственное решение. Конечно, самое простое решение.


Дополнительные лабораторные уроки: