Когда вы работаете в стартапе, все происходит быстро.

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

В крупной компании все взаимосвязано. Даже самые маленькие изменения будут связаны с бюрократией, конфигурацией и последующими эффектами.

Итак, лучше ли работать в стартапе, чем в крупной компании?

Нет! Конечно, нет.

И если им повезет, стартапы станут крупными компаниями. Все приходит с компромиссами. Давайте поговорим о них.

Стартапы: быстрые и свободные

Я был сотрудником №3 в стартапе. Найм первого бэкэнд-инженера.

Мы создали продукт так быстро. Запросы на вытягивание летали в продакшн каждый день.

Честно говоря, это был хаос.

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

У нас были дыры в нашем наборе тестов. Развертывание было встроено в рабочие места AWS. Документация была скудной. В API отсутствовало так много конечных точек CRUD для различных ресурсов.

Добавление нового инженера в команду было крутым процессом обучения. Наш код был связанным и сложным.

Это не было чьей-либо виной. Мы не были плохими кодерами. Мы регулярно проводили рефакторинг. Такова природа изменения требований к продукту и реагирования на потребности бизнеса.

Работая в стартапе, я должен был знать обо всем понемногу.

  • Как работала бизнес-логика
  • Что должен был отображать интерфейс
  • Какие конечные точки API вызывать
  • Уловки AWS для устранения неполадок развертывания
  • Живая отладка на серверах

Это было беспокойно, если не сказать больше!

Я узнал тонну. Но работать в стартапе непросто. Вы разозлитесь.

Крупные компании: межкомандная координация

Сейчас я работаю в крупной компании с сотнями инженеров.

Мы работаем в командах, которые ориентированы на сервис. Мой объем работы намного меньше. Мне просто нужно знать о сервисном коде в одной области знаний.

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

Мы используем Terraform для наших развертываний. Это целый зверь сам по себе. Когда мне нужно внести изменения в Terraform, я должен согласовывать планы, блокировки и изменения с другими командами.

Когда происходит инцидент, в него вовлечено много инженеров. Поиск решения иногда может быть сложным.

Например, мы обнаружили сломанную зависимость в общем пакете, который был обновлен в одном сервисе. Когда есть десятки сервисов, это может быть трудно идентифицировать!

У больших компаний гораздо больше встреч!!!

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

Нет идеальной команды

Идеальной команды не бывает.

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

Важно найти то, что лучше всего работает для вас. Какие типы команд делают вас счастливее всего?

Дополнительные ресурсы

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

Присоединяйтесь к Medium за 5 долларов — получите доступ ко всему Medium + поддержите меня и других!