Практика распределенной разработки в Open-Source проектах. Александр Веремьев (Zend Framework core team)
2 Инструментарий
3 Управление кодом Репозиторий : Subversion (на начальных стадиях CVS)
4 Управление кодом Репозиторий : Subversion (на начальных стадиях CVS) Отслеживание изменений, Web интерфейс к репозиторию: FishEye (Atlassian)
5 FishEye notifications
6
7 FishEye code browser
8 Управление задачами JIRA issue tracker (Atlassian, Bug tracker
9 Управление задачами JIRA issue tracker (Atlassian, Bug tracker Feature request tracker
10 Управление задачами JIRA issue tracker (Atlassian, Bug tracker Feature request tracker Unit tests problems tracker
11 Управление задачами JIRA issue tracker (Atlassian, Bug tracker Feature request tracker Unit tests problems tracker Documentation tasks tracker
12 JIRA issue (пример)
13 Пространство для документов проекта (project Wiki pages) Confluence (Atlassian,
14 Тестирование PHPUnit ( Sebastian Bergmann) Continous Integration Server (Atlassian)
15 Коммуникации s
16 Коммуникации s Списки рассылки (внутренние/общие/тематические)
17 Коммуникации s Списки рассылки (внутренние/общие/тематические) Аудио-конференции (Skype)
18 Коммуникации s Списки рассылки (внутренние/общие/тематические) Аудио-конференции (Skype) IRC
19 Коммуникации s Списки рассылки (внутренние/общие/тематические) Аудио-конференции (Skype) IRC Обмен текстовыми данными ( )
20
21 Коммуникации s Списки рассылки (внутренние/общие/тематические) Аудио-конференции (Skype) IRC Обмен текстовыми данными ( ) Wiki pages
22 Коммуникации s Списки рассылки (внутренние/общие/тематические) Аудио-конференции (Skype) IRC Обмен текстовыми данными ( ) Wiki pages Web сайт проекта
23 Модель разработки, используемая в ZF
24 Цели проекта
25 Цели проекта Продвижение PHP в корпоративную среду :
26 Цели проекта Продвижение PHP в корпоративную среду : Обеспечить разработчиков frameworkом, качество которого отвечало бы корпоративным стандартам
27 Цели проекта Продвижение PHP в корпоративную среду : Обеспечить разработчиков frameworkом, качество которого отвечало бы корпоративным стандартам Гарантировать лицензионную чистоту, создаваемого кода
28 Цели проекта Продвижение PHP в корпоративную среду : Обеспечить разработчиков frameworkом, качество которого отвечало бы корпоративным стандартам Гарантировать лицензионную чистоту, создаваемого кода Гарантировать поддержку и сопровождение кода
29 Цели проекта Продвижение PHP в корпоративную среду : Обеспечить разработчиков frameworkом, качество которого отвечало бы корпоративным стандартам Гарантировать лицензионную чистоту, создаваемого кода Гарантировать поддержку и сопровождение кода Популяризация PHP 5 и ОО подхода в PHP
30 Цели проекта Продвижение PHP в корпоративную среду : Обеспечить разработчиков frameworkом, качество которого отвечало бы корпоративным стандартам Гарантировать лицензионную чистоту, создаваемого кода Гарантировать поддержку и сопровождение кода Популяризация PHP 5 и ОО подхода в PHP Представить на примере создаваемого frameworkа примерправильного использования OO подхода в PHP
31 Цели проекта Продвижение PHP в корпоративную среду : Обеспечить разработчиков frameworkом, качество которого отвечало бы корпоративным стандартам Гарантировать лицензионную чистоту, создаваемого кода Гарантировать поддержку и сопровождение кода Популяризация PHP 5 и ОО подхода в PHP Представить на примере создаваемого frameworkа примерправильного использования OO подхода в PHP Создать спрос на поддержку PHP 5
32 Организационная структура команды разработчиков
33 Организационная структура команды разработчиков Core team 3-5 чел
34 Организационная структура команды разработчиков Авторы компонент Core team 3-5 чел
35 Организационная структура команды разработчиков Other contributors Авторы компонент Core team 3-5 чел
36 Community Организационная структура команды разработчиков Other contributors Авторы компонент Core team 3-5 чел
37 Этапы развития проекта Zend Framework
38 Этапы развития проекта Zend Framework Лето 2005Старт проекта
39 Этапы развития проекта Zend Framework Лето 2005Старт проекта Апрель 2006Выход первой публичной версии (ZF 0.1.3)
40 Этапы развития проекта Zend Framework Лето 2005Старт проекта Апрель 2006Выход первой публичной версии (ZF 0.1.3) Март 2007Выход первой beta версии (ZF 0.9.0)
41 Этапы развития проекта Zend Framework Лето 2005Старт проекта Апрель 2006Выход первой публичной версии (ZF 0.1.3) Март 2007Выход первой beta версии (ZF 0.9.0) Конец мая 2007Выход первого RC (ZF RC1)
42 Этапы развития проекта Zend Framework Лето 2005Старт проекта Апрель 2006Выход первой публичной версии (ZF 0.1.3) Март 2007Выход первой beta версии (ZF 0.9.0) Конец мая 2007Выход первого RC (ZF RC1) Первая официальная версия frameworkа
43 Этапы развития проекта Zend Framework Лето 2005Старт проекта Апрель 2006Выход первой публичной версии (ZF 0.1.3) Март 2007Выход первой beta версии (ZF 0.9.0) Конец мая 2007Выход первого RC (ZF RC1) Первая официальная версия frameworkа Март 2008Выход первого за v1.0.0 minor релиза (ZF 1.5.0)
44 Release policy проекта Zend Framework Major releases (X.0.0): Может включать изменения, не поддерживающие обратную совместимость. Может включать в себя новые фичи
45 Release policy проекта Zend Framework Major releases (X.0.0): Может включать изменения, не поддерживающие обратную совместимость. Может включать в себя новые фичи Minor releases (n.X.0) BC breaks допустимы только для исправления критических ошибок Может включать в себя новые фичи
46 Release policy проекта Zend Framework Major releases (X.0.0): Может включать изменения, не поддерживающие обратную совместимость. Может включать в себя новые фичи Minor releases (n.X.0) BC breaks допустимы только для исправления критических ошибок Может включать в себя новые фичи Mini releases (n.m.X) BC breaks допустимы только для исправления критических ошибок Может включать только исправления ошибок
47 Этапы развития проекта Zend Framework Лето 2005Старт проекта Апрель 2006Выход первой публичной версии (ZF 0.1.3) Март 2007Выход первой beta версии (ZF 0.9.0) Конец мая 2007Выход первого RC (ZF RC1) Первая официальная версия frameworkа Март 2008Выход первого за v1.0.0 minor релиза (ZF 1.5.0)
48 Этапы развития проекта Zend Framework Лето 2005Старт проекта Апрель 2006Выход первой публичной версии (ZF 0.1.3) Март 2007Выход первой beta версии (ZF 0.9.0) Конец мая 2007Выход первого RC (ZF RC1) Первая официальная версия frameworkа Март 2008Выход первого за v1.0.0 minor релиза (ZF 1.5.0) Сентябрь 2008ZF 1.6.0
49 Этапы развития проекта Zend Framework Лето 2005Старт проекта Апрель 2006Выход первой публичной версии (ZF 0.1.3) Март 2007Выход первой beta версии (ZF 0.9.0) Конец мая 2007Выход первого RC (ZF RC1) Первая официальная версия frameworkа Март 2008Выход первого за v1.0.0 minor релиза (ZF 1.5.0) Сентябрь 2008ZF Ноябрь 2008ZF Апрель 2009ZF Июль 2009ZF 1.9.0
50 Этапы развития проекта Zend Framework Лето 2005Апрель IIIIII I. Внутренняя разработка. II. Период неофициальных версий. III. Официальное развитие framework а.
51 Этап I. Внутренняя разработка. Особенности Некоторая изолированность разработчиков. Разработка производится как в обычном закрытом проекте Общение всей команды происходит ~раз в месяц Задачи Наработка функционала Подготовка среды, в которой будет существовать проект (репозиторий кода, issue tracker, web сайт, … ) Отработка процессов релиза frameworkа
52 Этап II. Период неофициальных версий. Особенности Необходимость сверхбыстрого реагирования на обращения пользователей и сторонних разработчиков. Отработка методов принятия коллегиальных решений в отношении действий сторонних разработчиков*. Общение всей команды происходит ~раз в неделю. Задачи Получить версию продукта Привлечение к проекту сторонних разработчиков. Получить feedback от первых пользователей продукта
53 Этап III. Официальное развитие framework'а. Особенности Повышенный overhead на коммуникации Увеличение доли задач по сопровождению Общение всей команды происходит каждый день Задачи Развитие проекта, поддержка
54 Вопросы Александр Веремьев