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

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

Jan 09, 2016

Download

Documents

Lynch

Практика распределенной разработки в Open-Source проектах. Александр Веремьев ( Zend Framework core team ) [email protected]. Инструментарий. Управление кодом. Репозиторий : Subversion (на начальных стадиях CVS ) http://subversion.tigris.org/. Управление кодом. Репозиторий : - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Практика распределенной разработки в  Open-Source  проектах.

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

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

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

2

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

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

3

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

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

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

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

4

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

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

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

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

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

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

5

FishEye notifications

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

6

FishEye notifications

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

7

FishEye code browser

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

8

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

JIRA issue tracker

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

Bug tracker

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

9

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

JIRA issue tracker

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

Bug tracker

Feature request tracker

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

10

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

JIRA issue tracker

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

Bug tracker

Feature request tracker

Unit tests problems tracker

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

11

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

JIRA issue tracker

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

Bug tracker

Feature request tracker

Unit tests problems tracker

Documentation tasks tracker

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

12

JIRA issue (пример)

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

13

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

Confluence

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

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

15

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

e-mails

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

16

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

e-mails

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

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

17

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

e-mails

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

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

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

18

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

e-mails

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

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

IRC

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

19

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

e-mails

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

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

IRC

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

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

20

http://paste2.org/

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

21

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

e-mails

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

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

IRC

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

Wiki pages

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

22

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

e-mails

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

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

IRC

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

Wiki pages

Web сайт проекта

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

23

Модель разработки, используемая в ZF

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

24

Цели проекта

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

25

Цели проекта

Продвижение PHP в корпоративную среду:

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

26

Цели проекта

Продвижение PHP в корпоративную среду:

Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам

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

27

Цели проекта

Продвижение PHP в корпоративную среду:

Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам

Гарантировать лицензионную чистоту, создаваемого кода

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

28

Цели проекта

Продвижение PHP в корпоративную среду:

Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам

Гарантировать лицензионную чистоту, создаваемого кода

Гарантировать поддержку и сопровождение кода

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

29

Цели проекта

Продвижение PHP в корпоративную среду:

Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам

Гарантировать лицензионную чистоту, создаваемого кода

Гарантировать поддержку и сопровождение кода

Популяризация PHP 5 и ОО подхода в PHP

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

30

Цели проекта

Продвижение PHP в корпоративную среду:

Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам

Гарантировать лицензионную чистоту, создаваемого кода

Гарантировать поддержку и сопровождение кода

Популяризация PHP 5 и ОО подхода в PHP

Представить на примере создаваемого framework’а пример “правильного” использования OO подхода в PHP

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

31

Цели проекта

Продвижение PHP в корпоративную среду:

Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам

Гарантировать лицензионную чистоту, создаваемого кода

Гарантировать поддержку и сопровождение кода

Популяризация PHP 5 и ОО подхода в PHP

Представить на примере создаваемого framework’а пример “правильного” использования OO подхода в PHP

Создать спрос на поддержку PHP 5

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

32

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

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

33

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

Core team3-5 чел

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

34

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

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

Core team3-5 чел

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

35

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

Other contributors

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

Core team3-5 чел

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

36

Community

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

Other contributors

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

Core team3-5 чел

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

37

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

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

38

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

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

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

39

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

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

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

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

40

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

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

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

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

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

41

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

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

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

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

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

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

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’а

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

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)

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

44

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

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

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

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

45

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

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

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

Minor releases (n.X.0)

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

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

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

46

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

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

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

Minor releases (n.X.0)

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

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

Mini releases (n.m.X)

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

Может включать только исправления ошибок

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

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)

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

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

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

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

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

50

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

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

I II III

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

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

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

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

51

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

Особенности

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

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

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

Задачи

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

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

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

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

52

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

Особенности

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

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

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

Задачи

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

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

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

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

53

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

Особенности

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

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

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

Задачи

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

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

54

Вопросы

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