Еще одна особенность жизни независимого разработчика-консультанта—это параллельная работа с разными клиентами над разными проектами.
В сложные дни я работал с 4мя клиентами, у некоторых из них было сразу по несколько проектов, которые я разрабатывал или поддерживал. Многие проекты были написаны на разных языках.
Очевидно, что работа над чем-то одним эффективнее всего. В голову всегда загружен только один контекст, со временем многие места запоминаются и разработка идет на автомате. Во времена работы в энтерпрайзе я мог по памяти назвать названия классов и методов, в которые нужно смотреть для реализации той или иной фичи. Работа идет с одним языком и базовые конструкции все время на кончиках пальцев.
Если вам не повезло работать на проекте с микросервисами в гетерогенной среде, то появляются полиглотопроблемы—хотя контекст задач одинаковый, нужно уже переключаться между разными языками и фреймворками, и это неизбежно снижает продуктивность.
Ну и апофеозом является работа на разных проектах. В голову нужно постоянно перегружать контексты задач и сред, работа может прерываться запросами от других проектов, продуктивность неизбежно ползет вниз.
Если бы у меня был выбор—я бы конечно работал только над одним проектом, написанным на одном стеке. Желательно, несколько месяцев подряд. А потом можно и переключиться.
Уже довольно долгое время я ежедневно тружусь одновременно над 2.5 совершенно разными проектами и стараюсь держаться возле стека Ruby On Rails+Java. Хотя количество технологий минимизировано, все равно так или иначе надо лазить в другие штуки и это как ни крути снижает эффективность.
Другой вопрос—это распределение времени между проектами. С этим я справляюсь просто—не беру на себя слишком много и стараюсь не доводить дела до совсем-совсем дедлайна, поэтому у меня не бывает такого, что приходится жертвовать одним проектом в угоду другого. Я склонен давать оптимистичные обещания и набирать слишком много, но в последнее время лучше с этим справляюсь.
Складывать все яйца в одну корзину я не могу по понятным причинам, поэтому приходится жить как есть, но идеал к которому я стремлюсь—это один стек и один проект. Желательно, свой :)
Сподобалось? Долучайтеся до мого телеграм каналу: https://t.me/full_of_hatred