Ежедневные задачи разработчика

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

Проблемы и решения

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

Единая ментальная модель (ЕММ)

ЕММ позволяет команде мыслить единообразно, что упрощает непосредственную разработку и рефакторинг кода. Для создания ЕММ важно использовать единый язык программирования и абстрактно-логическое мышление. Основные критерии которые мы использовали для построения ЕММ:

  1. Фундаментальные принципы — ясные и интуитивно понятные правила игры

  2. Карта приключений — понимание проекта и потенциального влияния изменений

  3. Фокус на человеке — использование псевдокода для фиксации цели и контекста задачи

ЕММ: Фундаментальные принципы

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

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

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

  3. Похожее больше идеального: в условиях ограниченных сроков команда выбирает между «быстро и дешево» и «быстро и качественно», при этом учитывая исторически сложившиеся решения

  4. Собирание шишек больше иллюзий: при использовании новых инструментов в задачу закладывается время на создание прототипа для исследования новых подходов и инструментов на кончиках пальцев

ЕММ: Карта приключений

Карта приключений — это понимание проекта на уровне кода. Она позволяет команде быть уверенной в оценке задач и анализировать потенциальное влияние изменений на систему через такие пункты как:

  1. Построение абстрактной модели проекта и его архитектуры сверху вниз

  2. Построение абстрактной модели от точки планируемых изменений вверх

  3. Визуализацию планируемых изменений с помощью схем и диаграмм (вот это открытие, да?)

ЕММ: Фокус на человеке

Фокус на человеке — это подход к способу документирования и передаче знаний в команде который включает в себя такие приемы как:

  1. Использование псевдокода для фиксации цели внесения изменений и контекста задачи

  2. Предпочтение нисходящего подхода к описанию таких изменений в виде псевдокода

  3. Интеграцию существующих сервисов и компонентов с псевдокодом для лучшего понимания контекста изменений

Общение и тренировка ЕММ

Общение в команде — ключевой элемент для сближения личных ментальных моделей участников. Это происходит через:

  1. Совместную работу с аналитиками при штурме задач

  2. Участие в архитектурном комитете для представления и обсуждения технических решений

  3. Проведение ревью изменений для проверки и улучшения кода

Практические аспекты внедрения Единой ментальной модели (ЕММ)

Общение и совместная работа

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

  1. Штурм задач с аналитиками — для первичного понимания граничных условий и обсуждения особенностей реализации задач

  2. Архитектурный комитет — для представления и обсуждения планируемых технических решений со смежными командами

  3. Ревью изменений — для проверки и улучшения кода

Использование псевдокода

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

Визуализация изменений

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

Внедрение ЕММ в практику

Для новых сотрудников важно сразу внедрять ЕММ, обучая их принятым в команде поведенческим паттернам при разработке. Это поможет новым членам команды быстро влиться в процесс и начать работать эффективно. 

Заключительные замечания

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

Стоит отметить, что именно эти аспекты являются ключевыми для успешного внедрения единой ментальной модели в работу команды. Они помогают не только улучшить качество и скорость разработки, но и создать более гармоничную и продуктивную рабочую среду.

Заключение

Единая ментальная модель — это не только технический навык, но и поведенческий паттерн, который позволяет создать эффективную, управляемую и предсказуемую команду.

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

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

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


  1. AndreevaIrina25
    21.11.2024 14:45

    Согласна, статья полезна не только для ИТ специалистов, но и для менеджеров/управленцев
    Спасибо большое за публикацию, очень интересно!


  1. northmule
    21.11.2024 14:45

    Наконец-то свершилось - ГПБ на Хабре!