Вопрос. Кто составляет и поддерживает документацию к коду и как часто она вообще обновляется в самом проекте?
Ответ. Если к примеру разрабатывает только разработчик, то он ее и поддерживает. Яркие примеры различных программ, библиотек и компонентов в github’e. Либо может поддерживать сообщество людей, если это крупное open source решение.
Если говорим конкретно про детали реализации, то в основном этим занимаются разработчики. Так как они пишут и поддерживают этот самый код. И порой лучше них никто в компании может и не знать его. Все остальные руководства пишут уже другие люди внутри компании, если они есть.
К примеру, технические писатели. Они как раз занимаются составлением различной технической документацией, которая будет понятна пользователю. Руководство пользователя, руководство по эксплуатации, руководство для внедрения и тд.
Лично я считаю, что люди в данной должности так же могут писать и документацию к коду. В таком случае есть минус — это придется часто отвлекать разработчиков от их работы, чтобы они объяснили какие-то вещи. Что, как и почему это происходит.
Документацию основном обновляют когда появляется новый функционал, который нужно задокументировать, как для пользователей, так и для других разработчиков.
Но как показывается практика и общение с другими разработчиками — не всегда удается составить документацию на должном уровне. Либо она вообще отсутствует, либо содержит много неактуальной информации. Для того чтобы разработчикам вести документацию, нужно выделять время для этого, освобождая их от задач. И помимо всего этого, у руководства компании должно быть четкое понимание, что документация к проекту нужна.
К примеру, когда я с командой работают над проектом, то выделяем время на ведение документации. Хотим мы этого или нет. Используя для этого GitLab. И такой системный подход окупается с лихвой после завершения самого проекта, его дальнейшая поддержка, ввод новых участников или других исполнителей в проект.