Как организована разработка в Plumsail

Стек технологий

Технологии, которые мы используем в наших проектах варьируются. Мы не требуем от сотрудников знания всего стека. Главное желание освоить то, чего не достает.

Основной стек:

  • C#
  • .NET core
  • ASP.NET MVC/WebAPI
  • JavaScript, TypeScript
  • Vue.js, На старых проектах Knockout
  • Webpack, Gulp
  • SASS, CSS
  • MS SQL
  • На части проектов Kendo UI

Организация разработки

В активно развивающихся продуктах используется адаптированный Scrum. Задачами мы управляем в Visual Studio Online.

Исходный код хранится в GIT репозиториях. Используется Gitflow для управления ветками.

Для Continuous integration мы используем следующую связку для билда JetBrans TeamCity, для деплоймента Octopus и Ansible для подготовки машин. При публикации исходников в develop ветку, проекты автоматически деплоятся на тестовые сервера. При публикации в master инициируется деплоймент на продуктив который аппрувится product owner’ом.

Мы используем статический анализатор кода SonarQube. Это позволяет выявлять проблемные места в коде на стадии сборки. При этом мы не сторонники фашистских правил по оформлению кода. SonarQube – помощник, не надзиратель.

Мы считаем, что удобный анализ логов значительно упрощает поддержку и разработку. Поэтому мы используем Serilog для структурного логирования в связке с ELK стэком (Elastic + Kibana).

Тестирование и документирование

Мы используем Unit testing и Integration testing для тестирования наших проектов. XUnit тесты прогоняются автоматически.

При этом в части проектов у нас есть автоматическое UI тестирование с помощью Selenium, но пока все на зачаточном уровне.

У нас нет роли тестировщика. Мы максимально автоматизируем тестирование, иногда привлекаем техническую поддержку для тестирования.

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

Коммуникация в команде

Многие из наших сотрудников работают удаленно и иногда в разных часовых поясах. Поэтому мы коммуницируем в основном через месенджер Slack и сервис онлайн звонков Zoom.

Мы стараемся организовать свою работу максимально асинхронно. Чтобы сотрудники могли работать удаленно или в офисе, в удобное для них время, без большого количества прерываний и бесполезных митингов.

Не смотря на то, что мы работаем по Scrum, мы не созваниваемся каждый день для стендапа. Вместо этого мы используем чат бот Alice. Бот пишет раз в день каждому сотруднику с тремя простыми вопросами:

  • Что ты сделал сегодня?
  • Что ты будешь делать завтра?
  • Есть ли у тебя какие либо блокирующие проблемы?

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

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

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