По моему опыту, самая минимальная команда (Skeleton Crew) следующая:
1. Lead/Senior Backend Developer, вилка 300-500 тысяч рублей в месяц
2. Lead/Senior Frontend Developer, вилка 300-500 тысяч рублей в месяц
3. Lead/Senior Android Developer, вилка 300-500 тысяч рублей в месяц
4. Lead/Senior iOS Developer, вилка 300-500 тысяч рублей в месяц
5. Senior DevOps Engineer, вилка 150-500 тысяч рублей в месяц
6. Senior Project Manager, вилка 100-200 тысяч рублей в месяц
7. UI/UX Designer, Art Director, вилка от 100 до плюс бесконечности
8. Рекуртер, естественно. Стандартная ставка - от 1 до 3 месячных окладов найденного специалиста
В будущем разработчики по каждой категории (Frontend, Backend, iOS, Android) формируют команды разработки соответственно Frontend, Backend и т.д. Сколько брать в команду? Нужно смотреть по загруженности. Но обычно с одним Lead идут 1-2 Senior и 3-5 Middle/Junior разработчиков, это оптимальный размер команды. Если больше - то нужно дробить по более мелким командам.
DevOps может быть один, или может быть команда. Но команда DevOps растет не так быстро как команда разработки. Достаточно длительное время может быть один девопс на большую команду.
Project Manager обычно один, потому что он объединяет коммуникации со всей командой.
UI/UX Designer - это просто дизайнер, а Art Director это условно лид по дизайну, который задает общий тон и общий стиль всем остальным дизайнерам. На начальном этапе дизайнер может быть один.
Рекрутер - обычно это фрилансер который находит разработчиков по заданным критериям, чтобы мы могли его прособеседовать. На начальном этапе
## Найм и сложность найма
Разработчиков сложнее всего найти. Поэтому обычно поиск разработчиков нужно начинать раньше всего, и начинать заранее.
Ключевая позиция у Backend Lead, потому что от него будет зависеть все остальные разработчики. К примеру, пока не готова авторизация, профиль пользователя, лента новостей и прочие API, фронтенду и мобильным разработчикам нечего делать. Они будут рисовать интерфейсы и забивать их рыбными текстами, но это не то. Можно условно сравнить Frontend, Android и iOS разработчиков с строителями-отделочниками, сантехниками и электриками. Типа, пока дом не построен, отделывать нечего.
Поэтому на позицию Backend нужно выбирать тщательно. Если Backend будет медленно работать, то работа всей команды будет замедлена.
Frontend, Android и iOS - это уже позиции попроще. Там разработчики намного более взаимозаменяемы. Если один плохо справляется, можно достаточно быстро заменить его на другого.
В позиции Frontend, Android и iOS разработчики уровня Senior отличаются от уровня Middle/Junior тем, что в случае возникновения какого-то сложного бага, Senior решают этот баг быстрее. Однако если просто писать стандартный интерфейс используя стандартные компоненты, то Senior и Middle будут работать с одинаковой скоростью. Пример: опытный водитель и неопытный почти неотличимы на дороге. Различия проявляются только когда на дороге нестандартная ситуация - занос, дрифт, неожиданное препятствие и т.п.
При найме DevOps проблема в основном в том, что рынок завален резюме от псевдо-DevOps которые изучили Docker/Kubernetes по курсам и кроме этого ничего не знают. Опасность последних заключается в том что при более-менее нештатной ситуации они превращаются в беспомощных котят. Настоящих же DevOps находить может быть сложно.
Project Manager найти легко, по рынку ходят огромное количество безработных PM-ов и с низкими зарплатными ожиданиями. Можно взять любого PM-а наугад и он будет более-менее достоино справляться со своими обязанностями. Найти среди них лучшего будет довольно сложно. Я обычно выбираю PM-а главным образом чтобы у него в портфолио не было провальных проектов.
Про поиск UI/UX дизайнера. Если я просто делаю сайт для заказчика, то я могу взять любого безработного дизайнера за не слишком больщой прайс и он сделает более-менее достойный дизайн как у всех. Но если нужен уникальный дизайн, то здесь сложно что-то посоветовать. Рекомендую идти на https://www.behance.net/ , https://www.deviantart.com/ , https://dribbble.com/ или https://www.artstation.com/ и смотреть то что вам понравится. Если нашли то что вам нужно - пишите дизайнеру и приглашайте на работу. Но учтите, что в таком случае дизайнер может быть из другой страны, и еще дизайнер может заломить высокий ценник.
Рекрутеров искать легко, их достаточно много на рынке. Также на рынке полно рекрутинговых агентств, они везде предлагают свои услуги.
# Этапы
1. Находим рекрутера
2. Ищем Backend разработчика и дизайнера
3. Ищем остальных разработчиков и остальную команду (Android, iOS, Frontend, DevOps и т.д.)
4. Проходят раунды собеседований - из найденных резюме кто-то отсеивается, кто-то сам выбирает другой оффер, и в итоге формируется команда
5. Параллельно оформляется юрлицо
6. Когда юрлицо готово, можно регистрировать аккаунт в облачных сервисах (Yandex Cloud или Облако Mail.Ru или аналоги), регистрировать аккаунт разработчика в Apple ($300 в год) и в Google Play ($25 единоразово)
7. Собираем требования, проектируем архитектуру
8. Дизайнер делает дизайн, бекенд-разработчик делает прототип бекенда
9. Остальные разработчики подключаются к работе и делают веб часть, Android и iOS приложение
И дальше уже работаем по итерациям.
Параллелить можно так:
```
1----2----3----4
\ \
\ \
7----8----9--- ...разработка...
/
/
5-----6-----
```
## Подходящие объявления для вакансий
### Lead/Senior Backend Developer
**Обязанности:**
Разработка и поддержка серверных приложений на Node.js.
Работа с базами данных SQL и NoSQL.
Участие в проектировании архитектуры проектов.
Оптимизация производительности и масштабируемости приложений.
Автоматизация процессов развертывания и тестирования.
**Ожидания:**
Опыт работы с Node.js не менее 3-5 лет.
Глубокое понимание принципов работы серверных технологий.
Опыт работы с системой контроля версий Git.
Знание принципов разработки безопасного кода.
Опыт работы с Docker или Kubernetes.
Умение самостоятельно решать сложные задачи и принимать технические решения.
**Требования:**
Знание JavaScript (Node.js), Express.js, NestJS.
Опыт работы с базами данных PostgreSQL.
Опыт работы с RabbitMQ или его аналогами.
Навыки написания unit-тестов (Mocha, Jest).
DevOps: Docker, Kubernetes, CI/CD инструменты.
Работа с API, опыт построения API (REST или GraphQL).
### Lead/Senior Frontend Developer
**Обязанности:**
Разработка и поддержка фронтенд-приложений, основанных на React JS.
Создание адаптивных веб-интерфейсов.
Сотрудничество с UX/UI дизайнерами для реализации дизайна в жизнь.
Оптимизация приложений для максимальной скорости и масштабируемости.
Интеграция фронтенд-компонентов с серверными API.
**Ожидания:**
Опыт в разработке веб-приложений от 3-5 лет (React+Redux, NextJS)
Уверенные знания HTML, CSS, Javascript, TypeScript, React, Redux
Умение верстать адаптивные и кроссбраузерные интерфейсы
Опыт работы с Figma
Понимание принципов ООП, REST архитектуры, работы HTTP-протокола