Как организована разработка в Plumsail
Стек технологий
Технологии, которые мы используем в наших проектах, варьируются. Мы не требуем от сотрудников знания всего стека. Главное желание освоить то, чего не достает.
Основной стек:
- C#
- .NET Core
- JavaScript, TypeScript
- Vue, React
- Webpack, Gulp
- SASS, CSS
- MS SQL, Redis
- Azure Cloud
Организация разработки
В активно развивающихся продуктах используется адаптированный Scrum. Задачами мы управляем в Azure DevOps.
Исходный код хранится в GIT репозиториях. Используется Gitflow для управления ветками.
Для Continuous integration мы используем следующую связку. Для билда JetBrains TeamCity, для деплоймента Octopus, для подготовки машин Ansible. При публикации исходников в develop ветку, проекты автоматически деплоятся на тестовые сервера. При публикации в master инициируется деплоймент на продуктив который аппрувится product owner’ом.
Мы используем статический анализатор кода SonarQube. Это позволяет выявлять проблемные места в коде на стадии сборки. При этом мы не сторонники фашистских правил по оформлению кода. SonarQube – помощник, не надзиратель.
Мы считаем, что удобный анализ логов значительно упрощает поддержку и разработку. Поэтому мы используем Serilog для структурного логирования в связке с ELK стэком (Elastic + Kibana).
Тестирование и документирование
Мы используем Unit testing и Integration testing для тестирования наших проектов. XUnit тесты прогоняются автоматически.
При этом в части проектов у нас есть автоматическое UI тестирование с помощью Selenium, но пока все на зачаточном уровне.
У нас нет роли тестировщика. Мы максимально автоматизируем тестирование, иногда привлекаем техническую поддержку для тестирования.
Внутреннюю документацию пишут сами разработчики. Документацию для пользователей пишут либо специалисты технической поддержки, либо сами разработчики. В зависимости от сложности задачи.
Коммуникация в команде
Многие из наших сотрудников работают удаленно и иногда в разных часовых поясах. Поэтому мы коммуницируем в основном через месенджер Slack и сервис онлайн звонков Zoom.
Мы стараемся организовать свою работу максимально асинхронно. Чтобы сотрудники могли работать удаленно или в офисе, в удобное для них время, без большого количества прерываний и бесполезных митингов.
Несмотря на то, что мы работаем по Scrum, мы не созваниваемся каждый день для стендапа. Вместо этого мы используем чат бот Natali. Бот пишет раз в день каждому сотруднику с двумя простыми вопросами:
- Что ты сделал вчера?
- Что ты будешь делать сегодня?
На вопросы можно ответить в любое удобное время. Ответы всей команды автоматически выкладываются в общий канал. Это позволяет команде быть синхронизированной и понимать куда мы движемся без излишних митингов. Если вербальное обсуждение необходимо, никто не мешает обсудить конкретный вопрос.
На активно развивающихся продуктах мы организуем митинг раз в неделю, где обсуждаются и ставятся задачи на неделю.
Каждый продукт имеет роадмэп, согласно которому мы движемся и планируем задачи на еженедельных митингах.