Хороший проект и хорошая команда, это не тогда, когда никто не допускает ошибок, а тогда, когда процессы (и технические и управленческие) построены так, что ошибки не приводят к фатальным последствиям и могут быть быстро устранены.
Как найти баланс между созданием и поддержкой собственной инфраструктуры и использованием hosted services? Я предлагаю следующий вариант:
Иногда бывают ситуации, когда технический долг препятствует реализации каких-то задач. При этом наверстывание технического долга может требовать времени гораздо больше, чем решение основной задачи. В этом случае есть смысл воспользоваться техническим кредитом — вместо того, чтобы напрямую заниматься устранением технического долга, можно использовать другие технологии, которые позволяют временно обойти возникшую проблему.
Зачастую в любом новом проекте хочется применить самые новые и актуальные технологии. Обычно это хорошее желание, но иногда оно бывает вредным.
А поэтому вам не нужно пытаться просто копировать все те подходы, которые используются в этих компаниях. Карго-культ – это плохо.
Принимая любое решение в разработке вы решаете задачу с тремя известными: время, деньги, ресурсы.
Если у вас высоконагруженная система и вы используете retry policy для доступа к внешним ресурсам, то в случае сбоя ваши запросы буду откладываться и повторяться через определенный промежуток времени. При этом, если множество запросов будет отложено и выполнена единовременно, вы можете перегрузить внешний ресурс.
Начинающий разработчик еще не знает как называются все паттерны.
Времени вы потратите много, а потом все равно переделывать.
Нанимать нужно не тех, кто хорошо умеет проходить собеседования, а тех кто хорошо умеет работать.