Когда вы работаете в стартапе, все происходит быстро.
Крошечная команда может позволить себе быстрые изменения. Вы будете создавать новые функции, выполнять итерации и быстро расти.
В крупной компании все взаимосвязано. Даже самые маленькие изменения будут связаны с бюрократией, конфигурацией и последующими эффектами.
Итак, лучше ли работать в стартапе, чем в крупной компании?
Нет! Конечно, нет.
И если им повезет, стартапы станут крупными компаниями. Все приходит с компромиссами. Давайте поговорим о них.
Стартапы: быстрые и свободные
Я был сотрудником №3 в стартапе. Найм первого бэкэнд-инженера.
Мы создали продукт так быстро. Запросы на вытягивание летали в продакшн каждый день.
Честно говоря, это был хаос.
Так много всего менялось так быстро. Было трудно уследить. Противоречивые изменения в нашем монорепозитории усугублялись по мере нашего роста.
У нас были дыры в нашем наборе тестов. Развертывание было встроено в рабочие места AWS. Документация была скудной. В API отсутствовало так много конечных точек CRUD для различных ресурсов.
Добавление нового инженера в команду было крутым процессом обучения. Наш код был связанным и сложным.
Это не было чьей-либо виной. Мы не были плохими кодерами. Мы регулярно проводили рефакторинг. Такова природа изменения требований к продукту и реагирования на потребности бизнеса.
Работая в стартапе, я должен был знать обо всем понемногу.
- Как работала бизнес-логика
- Что должен был отображать интерфейс
- Какие конечные точки API вызывать
- Уловки AWS для устранения неполадок развертывания
- Живая отладка на серверах
Это было беспокойно, если не сказать больше!
Я узнал тонну. Но работать в стартапе непросто. Вы разозлитесь.
Крупные компании: межкомандная координация
Сейчас я работаю в крупной компании с сотнями инженеров.
Мы работаем в командах, которые ориентированы на сервис. Мой объем работы намного меньше. Мне просто нужно знать о сервисном коде в одной области знаний.
Но мои изменения могут повлиять на другие команды, и получение одобрения/согласия может занять много времени.
Мы используем Terraform для наших развертываний. Это целый зверь сам по себе. Когда мне нужно внести изменения в Terraform, я должен согласовывать планы, блокировки и изменения с другими командами.
Когда происходит инцидент, в него вовлечено много инженеров. Поиск решения иногда может быть сложным.
Например, мы обнаружили сломанную зависимость в общем пакете, который был обновлен в одном сервисе. Когда есть десятки сервисов, это может быть трудно идентифицировать!
У больших компаний гораздо больше встреч!!!
Но у вас также есть много других инженеров, которые могут вам помочь. Глубина экспертизы в моей компании потрясающая и впечатляющая!
Нет идеальной команды
Идеальной команды не бывает.
Каждый размер компании будет иметь свои преимущества и недостатки. Я думаю, что каждый инженер должен иметь опыт работы с различными командами и структурами работы.
Важно найти то, что лучше всего работает для вас. Какие типы команд делают вас счастливее всего?
Дополнительные ресурсы
Каждый день я пишу что-то новое для разработчиков программного обеспечения. Попадите в ежедневный список, чтобы получать обновления.
- Звание «техлид — это суматоха. Стоит ли оно того?"
- Ежедневное правило разработчика: оставляйте код чище, чем вы его нашли
—
Присоединяйтесь к Medium за 5 долларов — получите доступ ко всему Medium + поддержите меня и других!