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

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

  • минимизация вреда от риска ухода сотрудника из компании. Сотрудник уходит, но его знания остаются;
  • ускорение знакомства новых сотрудников с проектами и условиями труда в компании, а также знакомства старых сотрудников с новыми для них продуктами и процессами;
  • уменьшение нагрузки ключевых сотрудников по консультированию своих коллег, повышение производительности их основного труда.

По своей сути, система документирования представляет собой корпоративный портал для разработчиков. В ней содержится информация о всех компонентах процесса разработки. То есть система документирования эквивалентна документу, который вы сейчас читаете. Для её работы лучше всего подходит Wiki-движок. Мы для документирования использовали Confluence, но подойти могут любые аналоги.

Важнейшей информацией, хранившейся в системе, было:

  • описание всех проектов компании, включая описания отдельных компонентов, графические схемы взаимодействия модулей, расположение исходных кодов, ссылки на проекты в JIRA и Git, а также матрица ответственности программистов по проектам. Это позволяло быстро находить исходники старых проектов, а также людей, способных быстро внести исправления в код этих проектов;
  • рабочие инструкции программиста и руководителя программистов. В них указывался чёткий алгоритм, которому программист мог следовать в неясных для него ситуациях. Также за счёт этих инструкций появлялась возможность требовать от программистов отмечать своё отработанное время и следовать остальных правилам культуры разработки, принятой в компании;
  • описание применяемых методологий разработки (итерации, TDD, Core Review);
  • требования к архитектуре ПО, к процессу разработки, именованию сборок, исходному коду (правила оформления), пользовательскому интерфейсу. Описание стратегии развития и рефакторинга проектов компании;
  • полезные советы и прочие интеллектуальные наработки программистов в форме статей How-to, FAQ.

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

Далее