Июнь 2009

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

Роберт Райх

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

В начале 2008 года я решил построить решение текущей проблемы в моем родном городе Портленд, штат Орегон. Портленд растущей технологии сцена была возникли проблемы, отслеживание всех групп пользователей, meetups и события, которые люди планирования. Я начал Центральный календарь с помощью календаря Google, но трудно поддерживать. Люди, планирование событий необходима возможность сделать свои собственные обновления без меня того, чтобы добавить их отдельно в качестве пользователей. Требуется источник единого центра информации, который был бы полностью открыты для общества в целом. Решение стало открытым исходным кодом календаря агрегатора называется Calagator. Процесс создания этого решения стало очень полезным усилий по созданию сообщества.

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

Есть уникальная цель

Первый шаг для любого успешного сообщества проекта является определение цели, которая четко обобщает к другим людям то, что вы пытаетесь достичь. Создайте описание, которое может быть конденсированная в короткое заявление. Calagator's цель заключается в том, «чтобы создать календарь, который совместно редактировать как вики».

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

Какие ресурсы вам нужны?

Проекты с открытым исходным кодом имеют ряд проекта хостинг вариантов на выбор, такие как Google Code, GitHub и SourceForge. Все три предлагают репозиторий исходного кода, вики и отслеживания ошибок. Другие виды услуг хостинга, таких, как, необходимые для веб-приложения, являются доступными и часто безвозмездно хостинг компании или сотрудник разработчика. Учитывая это, большая потребность для любого нового проекта Поиск людей вносить и определить, какие взносы необходимы. Вклад может включать код, Дизайн пользовательского интерфейса, документация, веб-страницу проекта или поиск пространства для удовлетворения. Участники должны быть в восторге о решении проблемы, которая была определена.

В моей первоначальной попытки группы здания я протянул для пользователей группы лидеров, людей, которые обновления существующего календаря Google, разработчики, которых я знал, а также люди с другими навыками, которые я считал полезным. CubeSpace, coworking пространство в Портленде, безвозмездно Конференц-зал для кода спринтов. Я сделал точку разговаривать с людьми, один на один, предложив им непосредственно присоединиться к списку рассылки и прийти к код спринт. Некоторые только присутствовал один или два заседания, чтобы говорить о том, что они хотели бы видеть в новом календаре, в то время как другие по-прежнему помогать в течение нескольких месяцев. При получении взносов, пригласите больше людей, чем вы думаете, что вам нужно. Не каждый будет иметь большое количество времени для содействия, но вы всегда можете найти пути для всех, чтобы помочь.

Сделать простейшая вещь, которая могла бы работать

Начиная с простой дает возможность иметь немедленный успех. Мы решили написать Calagator в Ruby on Rails, рамки, которые можно быстро создавать первоначальные функции. Этот выбор позволил другим опытным разработчикам Rails для участия, гарантируя, что другие могут помочь в написании кода с самого начала. Мы выбрали очень небольшой первоначальный особенность набор, состоящий из пары веб-форм для создания новых событий и новых объектов. В конце первого спринта кода рабочего веб-приложения, развернутых на счет пожертвованных сервера, и Wordpress.com принимала блоге рассказывать людям, что мы делаем. Имея что-то публично Показать в конце первого дня помогли построить, интерес и импульса, необходимые для расширения функциональных возможностей через спринт будущего кода.

Почему мы ориентируемся на развитие на основе кода спринт встреч? Проблема, которую мы хотели бы решить была сосредоточена на конкретном географическом районе, так что имело смысл приглашать людей, чтобы поговорить лично о то, что мы будем строить. Но важно, что мы не просто сидеть и говорить, поэтому мы заимствовали методы гибкой разработки для выполнения кода один день спринт. Мы начали писать идеи на карточках и сортируя их в развитие, документации и исследовательских задач. Люди break off в 2-3 человека группы для решения одной карты на 45 минут. Хост, убедился каждый имел партнера и карту для того, чтобы держать все участники активно участвуют. В конце 45 минут все перегруппировались, чтобы обсудить то, что мы достигнуто или узнали и взял короткий перерыв перед началом следующей мини-итерации.

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

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

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

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

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

Позже в тот же день мы создали блог; Вы можете увидеть первый пост. Хотя только быстрое введение он дал нам ссылку, чтобы отправить к людям, которые хотели бы знать, что мы были до, и как они могут помочь. Блог предоставляет точку доступа для людей, которые не участвуют достаточно для отслеживания проекта на список рассылки. Мы также использовать блог, чтобы говорить о картине: Как Calagator вписывается в другие открытые усилия? Что делает календарь агрегатор?

Удерживая ее идя

Со временем будет меняться потребности проекта. Держите его просто: Подождите, пока проблема должна быть решена для ее решения. В нашем случае мы первоначально обсуждали ли использовать Subversion или Git для управления версиями. Мы начали на Subversion, потому что он был знаком для большего количества людей, и нам необходимо сделать его легким для людей, чтобы помочь проекту. К концу первого года мы поняли, что наши потребности сместился. Теперь нам нужен способ лучше управлять патчи от различных авторов и сделать его легким для людей, чтобы представить код вне спринта кода. Мы перешли на Git и написал руководство для новых участников о том, как представить патч.

Будучи открытым для новых участников является важной частью поддержания проекта жив. Люди могут дрейф и как они имеют больше или меньше времени, чтобы внести. Команда разработчиков проекта core не должны превращаться в закрытую группу, другие люди находят трудно взаимодействовать с. Calagator в первый день рождения мы имели код спринт, сосредоточены на показать людям, как они могли бы внести в проект и познакомил их типы вопросов, которые мы в настоящее время работаем. Нечто подобное можно добиться в блогах и скринкасты, если личные встречи не представляется возможным. Даже если разработчики живут в разных местах, считают заседание на Конференции один или два раза в год пусть все болтаться, чат и показать, что они делают.

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

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

 

Доля этой статьи:

Цитируете эту статью:

Оцените содержание: 
Нет голосов были поданы еще. Скажи свое слово!