Skip to content

Основные положения

Введение в процесс разработки

В нашей IT-компании мы придерживаемся принципов Agile и Scrum, что позволяет нам эффективно управлять проектами и быстро адаптироваться к изменениям. Мы работаем спринтами по 2 недели, что обеспечивает постоянную синхронизацию с заказчиком и возможность оперативно реагировать на его пожелания.

Сбор бизнес логики

Мы ответственно относимся к фиксации требований бизнес логики заказчика. Процесс сбора информации включает несколько этапов:

  1. Сбор информации: ПМ собирает информацию от заказчика о его пожеланиях.

  2. Формирование путей пользователя / Customer Journey Mapping (CJM): Команда формирует пути пользователя в виде блок-схем и перечня страниц под описанный функционал.

  3. Обсуждение деталей: ПМ и заказчик обсуждают детали функционала и вносят дополнения.

  4. Проектирование архитектуры и дизайна: На основе путей пользователя продумывается архитектура, реализуется бэкенд и дизайн.

  5. Синхронизация с заказчиком: После готовности происходит проверка соответствия функционала ожиданиям заказчика.

  6. Разработка фронтенда: После утверждения дизайна и бэкенда реализуется веб и мобильный фронт.

  7. Повторная синхронизация: Снова проверяется соответствие функционала ожиданиям заказчика.

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

Документирование

Для учета состояния проекта мы используем несколько обязательных форм:

  • Project Report: Документ, в котором фиксируются заметки, вопросы, дорожная карта проекта, бюджет, тест-кейсы, роли сервиса, перечень страниц со статусами готовности разных направлений, системные словари.

  • Описание проекта: Функциональное описание сервиса по модулям и ролям пользователей, требования ко внешним интеграциям, резюме встреч и прочая информация.

  • Swagger: Ведение Swagger для внешних запросов и внутренней разработки.

Поддержание рабочего состояния сервиса

Обязательное присутствие QA специалистов на проекте включает:

  • Проверка каждого этапа реализации.

  • Написание тест-кейсов на функционал.

  • Реализация автоматизированного тестирования для обеспечения надежности сервиса.

Процесс разработки

Мы ведем разработку в четырех контурах:

  1. Dev – контур для работы команды, где происходит разработка нового функционала.

  2. Test – контур для проверки функционала QA-направлением с полным прогоном автоматизированного тестирования.

  3. Stage – контур для демонстрации заказчику с подгрузкой данных из боевой БД и прогоном критических тестов.

  4. Main – боевой контур с реальными пользователями.

Также выделение main контура на отдельный сервер является хорошей практикой.

Инструменты и технологии

Для управления кодом мы используем GitLab, развернутый на нашем сервере, что обеспечивает безопасность кода проекта, также уделяем внимание организации репозитория, чтобы избежать смешивания направлений разработки. Мы также применяем Docker, что обеспечивает удобство работы, и внедрили систему CI/CD для быстрой интеграции кода и автоматического прохождения тестов.

Безопасность заказчика

Мы придаем большое значение безопасности и контролю со стороны заказчика на всех этапах разработки. В рамках нашего подхода мы придерживаемся следующих принципов:

  1. Регистрация ресурсов: При разработке мы не допускаем регистрации каких-либо ресурсов, таких как домены, серверы или интеграции, на наши собственные аккаунты. Все ресурсы регистрируются только на аккаунты заказчика. Это гарантирует, что у него всегда есть доступ к необходимым ресурсам без нашей зависимости.

  2. Контроль над инфраструктурой: Все контуры разработки размещаются на серверах заказчика. Это обеспечивает полный контроль над инфраструктурой и данными, позволяя заказчику управлять своими ресурсами по своему усмотрению.

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

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

Преимущества нашего подхода

  1. Гибкость и адаптивность: Быстрая реакция на изменения требований заказчика без значительных задержек.

  2. Прозрачность процесса: Регулярные встречи с заказчиком обеспечивают полное понимание этапов разработки.

  3. Безопасность данных: Размещение контуров разработки на личном сервере заказчика гарантирует безопасность его данных.

  4. Четкая структура разработки: Четыре контура минимизируют риски ошибок на продакшн-версии.

  5. Современные технологии: Использование Docker и CI/CD автоматизирует процессы сборки и развертывания.

Таким образом, объединение этих подходов создает надежный и эффективный процесс разработки, который отвечает потребностям как команды, так и заказчиков.