Автор статьи: Дмитрий Курдюмов

Участвовал в Аджайл-трансформациях в крупнейших компаниях в России (Альфа банк, МТС, Х5 retail group), с международным опытом в стартапе зарубежом

Если вы, как менеджер, ищете способы улучшить эффективность разработки, обратите внимание на эти важные пункты. Они показывает ключевые направления для оптимизации процессов и повышения продуктивности команд.

Разработка и доставка ПО требуют системного подхода и внедрения проверенных практик.

Эти практики можно сгруппировать в пять основных категорий:

  • непрерывная поставка

  • архитектура, продукт и процессы

  • бережливое управление и мониторинг,

  • культура.

Каждая из этих категорий играет ключевую роль в обеспечении статистически значимого улучшения показателей производительности разработки. Рассмотрим каждую из них более подробно.

1. Непрерывная поставка (Continuous Delivery Capabilities)

  1. Использование системы контроля версий для всех артефактов
    Применение систем контроля версий, таких как GitHub или Subversion, для всех производственных артефактов, включая код, конфигурации приложений и системы, а также скрипты для автоматизации сборки и настройки среды.

  2. Автоматизация процесса развертывания
    Развертывание должно быть полностью автоматизированным и не требовать ручного вмешательства. Это значительно ускоряет процесс и уменьшает количество ошибок.

  3. Внедрение непрерывной интеграции (CI)
    CI — это практика, при которой код регулярно интегрируется в общий репозиторий, что позволяет быстро выявлять регрессионные ошибки. Интеграция сопровождается автоматическими тестами для проверки исправности кода.

  4. Методы разработки с использованием основной ветки (trunk‑based development)
    Эти методы подразумевают наличие не более трёх активных веток, быстрое слияние изменений (в течение дня) и отсутствие долгих «замораживаний» кода.

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

  6. Управление тестовыми данными
    Эффективное управление тестовыми данными включает обеспечение достаточного количества данных для тестирования и возможность гибко их использовать и подготавливать в рамках конвейера разработки.

  7. Интеграция безопасности на ранних этапах (Shift Left)
    Включение тестирования безопасности и инфобезопасности в ранние этапы разработки помогает избежать уязвимостей в коде и ускоряет его внедрение.

2. Архитектурные возможности (Architecture Capabilities)

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

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

3. Продуктовые и процессные возможности (Product and Process Capabilities)

  1. Сбор и внедрение обратной связи от клиентов
    Регулярное получение и использование обратной связи от клиентов играет важную роль в улучшении продуктов и повышении производительности разработки.

  2. Визуализация потока работы через value stream
    Видимость потока работы от бизнеса до конечного пользователя способствует более эффективной организации процессов и улучшению показателей IT.

  3. Работа малыми партиями
    Разделение задач на небольшие, легко выполнимые части, которые могут быть завершены за неделю или меньше, помогает быстрее получать обратную связь и снижать риски. Это применяется как на уровне фич, так и на уровне продуктов.

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

4. Возможности бережливого управления и мониторинга (Lean Management and Monitoring Capabilities)

  1. Легковесные процессы утверждения изменений
    Внедрение лёгких процессов утверждения, таких как парное программирование или внутригрупповые код‑ревью, вместо внешних согласований (например, CAB), значительно улучшает производительность.

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

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

  4. Ограничение незавершённой работы (WIP)
    Использование WIP‑лимитов помогает управлять потоком работы, улучшать процессы и повышать пропускную способность команд.

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

5. Культурные возможности (Cultural Capabilities)

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

  2. Поощрение обучения
    Обучение и развитие сотрудников рассматриваются как инвестиция, а не как затраты, что способствует прогрессу и повышению мотивации.

  3. Поддержка сотрудничества между командами
    Укрепление взаимодействия между традиционно изолированными командами разработки, эксплуатации и информационной безопасности помогает улучшить общие показатели организации.

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

  5. Поддержка трансформационного лидерства
    Трансформационное лидерство включает пять ключевых элементов: видение, интеллектуальная стимуляция, вдохновляющая коммуникация, поддержка и личное признание.

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

Еще больше полезной информации ищи в моем телеграм канале.


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

Комментарии (10)


  1. abcdsash
    12.10.2024 09:36

    в общем если: то за все хорошее, против всего плохого! даже если одно хорошее сильно противоречит другому.


    1. RodionGork
      12.10.2024 09:36

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


    1. beskov
      12.10.2024 09:36

      мышки, станьте ёжиками


    1. agileguru
      12.10.2024 09:36

      А что чему противоречит?


  1. Thomas_Hanniball
    12.10.2024 09:36

    Слишком кратко и больше похоже на конспект книги. Не хватает пояснений и реальных примеров, когда то или иное действие помогло и какие проблемы оно исправило.


    1. agileguru
      12.10.2024 09:36

      Тут про каждое направление можно отдельную статью написать. Цель этой статьи скорее показать чеклист- ключевые вещи которые используют современные компании.


  1. VasiliyKudryavtsev
    12.10.2024 09:36

    Дмитрий, а Вам не стыдно приводить краткий конспект известной книги как собственную статью?

    Вы даже порядок пунктов не поменяли.

    https://www.amazon.com/Accelerate-Software-Performing-Technology-Organizations/dp/1942788339


    1. agileguru
      12.10.2024 09:36

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


      1. VasiliyKudryavtsev
        12.10.2024 09:36

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


        1. agileguru
          12.10.2024 09:36

          Благодарю за обратную связь!