Поддержка проектов с открытым исходным кодом

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

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

Читайте также: Создание pull-запроса на GitHub

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

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

Составление документации

Простая и понятная документация (которая в свою очередь обеспечит простоту использования программы) расширит базу пользователей. Со временем кто-нибудь из этих пользователей попробует внести вклад в ваш проект с открытым исходным кодом.

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

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

  • README.md: краткое описание проекта и его целей.
  • CONTRIBUTING.md: инструкции для разработчиков, которые хотят принять участие в создании программы.
  • Лицензия программы (прочитать о создании лицензии программ с открытым исходным кодом можно здесь).

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

  • Общее руководство для пользователей.
  • Мануалы, которые описывают разные варианты использования программы.
  • Часто задаваемые вопросы.
  • Мануалы по устранению неполадок.
  • Примечания к релизам (описание выявленных багов и прочая полезная информация).
  • Описание функций, которые вы собираетесь добавить в следующих релизах.
  • Видеоуроки.

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

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

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

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

Раздел Issues

Вкладка Issues позволяет отслеживать сообщения о багах и предложения новых функций, которые можно добавить в код. Таким образом сайты для размещения репозиториев открытых проектов (GitHub, GitLab, Bitbucket) позволяют конечному пользователю сообщить о возникших проблемах, а разработчику – своевременно узнать и устранить их. Выпуская программу с открытым исходным кодом, не забудьте открыть Issues для сообщества пользователей.

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

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

Что касается предложений новых функций и улучшений программы, спросите у авторов этих сообщений, могут ли они разработать эти функции самостоятельно, предложите им ознакомиться с CONTRIBUTORS.md и другой соответствующей документации.

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

Не стоит огорчаться, получая сообщения о проблемах – это хороший показатель заинтересованности пользователей в развитии и совершенствовании вашего проекта. Issues можно использовать как источник обновлений.

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

Чем больше вы поощряете участие и внесение вклада в ваш проект, тем больше разработчиков захочет к нему присоединиться. Чтобы новички понимали, с чего начать, добавьте в документацию файл CONTRIBUTING.md и сошлитесь на этот файл в README.md.

Файл CONTRIBUTING.md должен содержать всю необходимую информацию, которую должен знать разработчик, желающий внести свой вклад в проект. Это может быть пошаговое руководство, контрольный список для разработчиков, в общем – любой удобный формат, позволяющий объяснить разработчику, как именно нужно писать код и создавать pull-запросы.

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

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

Поддержка сообщества

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

Для продвижения проекта можно использовать:

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

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

  • Вики-сайты с документацией, поддерживаемые сообществом;
  • Форумы для обсуждения функций и возникших проблем;
  • Список для электронной рассылки.

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

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

Tags:

Добавить комментарий