53
Практика распределенной разработки в Open- Source проектах. Александр Веремьев (Zend Framework core team) [email protected]

Практика распределенной разработки в Open-Source проектах

  • Upload
    lynch

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

Практика распределенной разработки в Open-Source проектах. Александр Веремьев ( Zend Framework core team ) [email protected]. Инструментарий. Управление кодом. Репозиторий : Subversion (на начальных стадиях CVS ) http://subversion.tigris.org/. Управление кодом. Репозиторий : - PowerPoint PPT Presentation

Citation preview

Практика распределенной разработки в Open-Source проектах.

Александр Веремьев (Zend Framework core team) [email protected]

2

Инструментарий

3

Управление кодом

Репозиторий:

Subversion (на начальных стадиях CVS)http://subversion.tigris.org/

4

Управление кодом

Репозиторий:

Subversion (на начальных стадиях CVS)http://subversion.tigris.org/

Отслеживание изменений, Web интерфейс к репозиторию:

FishEye (Atlassian)http://www.atlassian.com/software/fisheye/

5

FishEye notifications

6

FishEye notifications

7

FishEye code browser

8

Управление задачами

JIRA issue tracker

(Atlassian, http://www.atlassian.com/software/jira/)

Bug tracker

9

Управление задачами

JIRA issue tracker

(Atlassian, http://www.atlassian.com/software/jira/)

Bug tracker

Feature request tracker

10

Управление задачами

JIRA issue tracker

(Atlassian, http://www.atlassian.com/software/jira/)

Bug tracker

Feature request tracker

Unit tests problems tracker

11

Управление задачами

JIRA issue tracker

(Atlassian, http://www.atlassian.com/software/jira/)

Bug tracker

Feature request tracker

Unit tests problems tracker

Documentation tasks tracker

12

JIRA issue (пример)

13

Пространство для документов проекта(project Wiki pages)

Confluence

(Atlassian, http://www.atlassian.com/software/confluence/)

15

Коммуникации

e-mails

16

Коммуникации

e-mails

Списки рассылки (внутренние/общие/тематические)

17

Коммуникации

e-mails

Списки рассылки (внутренние/общие/тематические)

Аудио-конференции (Skype)

18

Коммуникации

e-mails

Списки рассылки (внутренние/общие/тематические)

Аудио-конференции (Skype)

IRC

19

Коммуникации

e-mails

Списки рассылки (внутренние/общие/тематические)

Аудио-конференции (Skype)

IRC

Обмен текстовыми данными (http://paste2.org/)

20

http://paste2.org/

21

Коммуникации

e-mails

Списки рассылки (внутренние/общие/тематические)

Аудио-конференции (Skype)

IRC

Обмен текстовыми данными (http://paste2.org/)

Wiki pages

22

Коммуникации

e-mails

Списки рассылки (внутренние/общие/тематические)

Аудио-конференции (Skype)

IRC

Обмен текстовыми данными (http://paste2.org/)

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 team3-5 чел

34

Организационная структура команды разработчиков

Авторы компонент

Core team3-5 чел

35

Организационная структура команды разработчиков

Other contributors

Авторы компонент

Core team3-5 чел

36

Community

Организационная структура команды разработчиков

Other contributors

Авторы компонент

Core team3-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 1.0.0 RC1)

42

Этапы развития проекта Zend Framework

Лето 2005 Старт проекта

Апрель 2006 Выход первой публичной версии (ZF 0.1.3)

Март 2007 Выход первой beta версии (ZF 0.9.0)

Конец мая 2007 Выход первого RC (ZF 1.0.0 RC1)

30.06.2007 Первая официальная версия framework’а

43

Этапы развития проекта Zend Framework

Лето 2005 Старт проекта

Апрель 2006 Выход первой публичной версии (ZF 0.1.3)

Март 2007 Выход первой beta версии (ZF 0.9.0)

Конец мая 2007 Выход первого RC (ZF 1.0.0 RC1)

30.06.2007 Первая официальная версия framework’а

Март 2008 Выход первого за v1.0.0 minor релиза

(ZF 1.5.0)

44

Release policy проекта Zend FrameworkMajor releases (X.0.0):

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

Может включать в себя новые фичи

45

Release policy проекта Zend FrameworkMajor releases (X.0.0):

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

Может включать в себя новые фичи

Minor releases (n.X.0)

BC breaks допустимы только для исправления критических ошибок

Может включать в себя новые фичи

46

Release policy проекта Zend FrameworkMajor 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 1.0.0 RC1)

30.06.2007 Первая официальная версия 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 1.0.0 RC1)

30.06.2007 Первая официальная версия framework’а

Март 2008 Выход первого за v1.0.0 minor релиза

(ZF 1.5.0)

Сентябрь 2008 ZF 1.6.0

49

Этапы развития проекта Zend Framework

Лето 2005 Старт проекта

Апрель 2006 Выход первой публичной версии (ZF 0.1.3)

Март 2007 Выход первой beta версии (ZF 0.9.0)

Конец мая 2007 Выход первого RC (ZF 1.0.0 RC1)

30.06.2007 Первая официальная версия framework’а

Март 2008 Выход первого за v1.0.0 minor релиза (ZF 1.5.0)

Сентябрь 2008 ZF 1.6.0

Ноябрь 2008 ZF 1.7.0

Апрель 2009 ZF 1.8.0

Июль 2009 ZF 1.9.0

50

Этапы развития проекта Zend Framework

Лето 2005 Апрель 2006 30.06.2007

I II III

I. Внутренняя разработка.

II. Период неофициальных версий.

III. Официальное развитие framework’а.

51

Этап I. Внутренняя разработка.

Особенности

Некоторая изолированность разработчиков.

Разработка производится как в обычном закрытом проекте

Общение всей команды происходит ~раз в месяц

Задачи

Наработка функционала

Подготовка среды, в которой будет существовать проект (репозиторий кода, issue tracker, web сайт, …)

Отработка процессов релиза framework’а

52

Этап II. Период неофициальных версий.

Особенности

Необходимость сверхбыстрого реагирования на обращения пользователей и сторонних разработчиков.

Отработка методов принятия коллегиальных решений в отношении действий сторонних разработчиков*.

Общение всей команды происходит ~раз в неделю.

Задачи

Получить версию продукта 1.0.0

Привлечение к проекту сторонних разработчиков.

Получить feedback от первых пользователей продукта

53

Этап III. Официальное развитие framework'а.

Особенности

Повышенный overhead на коммуникации

Увеличение доли задач по сопровождению

Общение всей команды происходит каждый день

Задачи

Развитие проекта, поддержка

54

Вопросы

Александр Веремьев [email protected]