Как организовать разработку фронтенда в компании?

Замечания, дополнения, опыт чужого и собственного хождения по граблям, горячо приветствуется!

Процесс поиска ответа на вечный вопрос :) Знаю, что святого грааля нет, но хотелось бы избежать хождения по известным граблям. Отступать поздно и некуда :)

Исходные данные: внутри одной компании есть несколько независимых проектов. Каждый проект ведет отдельная команда, не в каждой команде есть фронтенд. Проекты будут появляться новые.

Задача: Делать фронтенд в едином стеке между проектами. Организивать межкомандное взаимодействие фронтендеров.

Решения:

1. Общая библиотека компонентов.
Единый код для общих частей интерфейса.

Источники вдохновения:

По библиотеке важно сразу решить:

  • кто отвечает за общую библиотеку;
  • требования к общим компонентам:
    — функциональность/гибкость API,
    — локализация, 
    — тесты,
    — темы дизайна,
    — документация;
  • механизмы поддержки и выпуска версий;

При этом нужно держать баланс, иначе может наступить ситуация — когда изменить или добавить компонент _значительно_ сложнее, чем у себя на проекте реализовать аналогичный без всех этих заморочек.

2. Гильдия фрондендеров для межкомандного взаимодействия — обсуждения технологического стека, предупреждать изобретение велосипедов, делиться знаниями.

  • разделение зон ответственности;
  • договоренности об технологическом стеке и архитектуре;
  • правила для разработки и ревью кода;
  • межкомандные ротации

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