Лучшим в своей карьере автор считает работу под началом Келлана. Тот так удачно принимал технические решения, что это дало автору свободу развиваться и позже написать Data Driven Products Now! Через год после ухода из Etsy автор собрал мысли в принципы, которые называет «гештальтом Келлана».
У каждой компании примерно три жетона инноваций. Потратить один на NodeJS или MongoDB — можно, если ты именно этим и занимаешься. Но если компания обещает «переосмыслить мировую торговлю», тратить жетоны на инновационный ssh — хороший способ провалиться. Скучное не значит плохое. MySQL, Postgres, PHP, Python, Memcached, Squid, Cron — скучные, но хорошие. Их возможности и, главное, сценарии отказов хорошо изучены. У новой технологии слишком много unknown unknowns: не просто «не знаем, что будет при 100% CPU», а «даже не подумали, что запись статистики вызовет GC pauses».
Выбор технологий не бывает изолированным. Любое добавление тянет за собой мониторинг, тесты, init script, знания команды, когнитивную нагрузку. «Лучший инструмент для работы» — близорукий подход. Настоящая работа — удержать компанию на плаву, а лучший инструмент — тот, который наименее худший для большинства задач. Долгосрочная поддержка системы почти всегда обходится дороже, чем неудобства при её создании.
Но дойти до абсурда и использовать только Java тоже нельзя. Новые технологии иногда нужны. Добавление — это процесс и разговор для всей компании. Полезно спросить: решим задачу без нового? Если «проблема» на самом деле в желании попробовать графовую базу — стоп. Чаще всего можно обойтись текущим стеком. Если новое всё же нужно, стоит записать, что именно в старом стеке мешает, а при замене — взять обязательство мигрировать. Несколько вопросов и одна встреча — невеликая цена.
Модный polyglot programming обещает свободу через выбор любых инструментов, но операционная ноша задавит. Осознанный выбор технологий даёт инженерам свободу думать о больших вопросах. Технология ради технологии — snake oil.