Distributed Development Practice
-
Upload
alexander-veremyev -
Category
Technology
-
view
674 -
download
0
description
Transcript of Distributed Development Practice
![Page 1: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/1.jpg)
Практика распределенной разработки в Open-Source проектах.
Александр Веремьев (Zend Framework core team) [email protected]
![Page 2: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/2.jpg)
2
Инструментарий
![Page 3: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/3.jpg)
3
Управление кодом
Репозиторий:
Subversion (на начальных стадиях CVS)http://subversion.tigris.org/
![Page 4: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/4.jpg)
4
Управление кодом
Репозиторий:
Subversion (на начальных стадиях CVS)http://subversion.tigris.org/
Отслеживание изменений, Web интерфейс к репозиторию:
FishEye (Atlassian)http://www.atlassian.com/software/fisheye/
![Page 5: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/5.jpg)
5
FishEye notifications
![Page 6: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/6.jpg)
6
FishEye notifications
![Page 7: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/7.jpg)
7
FishEye code browser
![Page 8: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/8.jpg)
8
Управление задачами
JIRA issue tracker
(Atlassian, http://www.atlassian.com/software/jira/)
Bug tracker
![Page 9: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/9.jpg)
9
Управление задачами
JIRA issue tracker
(Atlassian, http://www.atlassian.com/software/jira/)
Bug tracker
Feature request tracker
![Page 10: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/10.jpg)
10
Управление задачами
JIRA issue tracker
(Atlassian, http://www.atlassian.com/software/jira/)
Bug tracker
Feature request tracker
Unit tests problems tracker
![Page 11: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/11.jpg)
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: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/12.jpg)
12
JIRA issue (пример)
![Page 13: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/13.jpg)
13
Пространство для документов проекта(project Wiki pages)
Confluence
(Atlassian, http://www.atlassian.com/software/confluence/)
![Page 14: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/14.jpg)
14
Тестирование
PHPUnit (Sebastian Bergmann)http://www.phpunit.de/
Continous Integration Server (Atlassian)http://www.atlassian.com/software/bamboo/
![Page 15: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/15.jpg)
15
Коммуникации
e-mails
![Page 16: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/16.jpg)
16
Коммуникации
e-mails
Списки рассылки (внутренние/общие/тематические)
![Page 17: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/17.jpg)
17
Коммуникации
e-mails
Списки рассылки (внутренние/общие/тематические)
Аудио-конференции (Skype)
![Page 18: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/18.jpg)
18
Коммуникации
e-mails
Списки рассылки (внутренние/общие/тематические)
Аудио-конференции (Skype)
IRC
![Page 19: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/19.jpg)
19
Коммуникации
e-mails
Списки рассылки (внутренние/общие/тематические)
Аудио-конференции (Skype)
IRC
Обмен текстовыми данными (http://paste2.org/)
![Page 21: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/21.jpg)
21
Коммуникации
e-mails
Списки рассылки (внутренние/общие/тематические)
Аудио-конференции (Skype)
IRC
Обмен текстовыми данными (http://paste2.org/)
Wiki pages
![Page 22: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/22.jpg)
22
Коммуникации
e-mails
Списки рассылки (внутренние/общие/тематические)
Аудио-конференции (Skype)
IRC
Обмен текстовыми данными (http://paste2.org/)
Wiki pages
Web сайт проекта
![Page 23: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/23.jpg)
23
Модель разработки, используемая в ZF
![Page 24: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/24.jpg)
24
Цели проекта
![Page 25: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/25.jpg)
25
Цели проекта
Продвижение PHP в корпоративную среду:
![Page 26: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/26.jpg)
26
Цели проекта
Продвижение PHP в корпоративную среду:
Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам
![Page 27: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/27.jpg)
27
Цели проекта
Продвижение PHP в корпоративную среду:
Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам
Гарантировать лицензионную чистоту, создаваемого кода
![Page 28: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/28.jpg)
28
Цели проекта
Продвижение PHP в корпоративную среду:
Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам
Гарантировать лицензионную чистоту, создаваемого кода
Гарантировать поддержку и сопровождение кода
![Page 29: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/29.jpg)
29
Цели проекта
Продвижение PHP в корпоративную среду:
Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам
Гарантировать лицензионную чистоту, создаваемого кода
Гарантировать поддержку и сопровождение кода
Популяризация PHP 5 и ОО подхода в PHP
![Page 30: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/30.jpg)
30
Цели проекта
Продвижение PHP в корпоративную среду:
Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам
Гарантировать лицензионную чистоту, создаваемого кода
Гарантировать поддержку и сопровождение кода
Популяризация PHP 5 и ОО подхода в PHP
Представить на примере создаваемого framework’а пример “правильного” использования OO подхода в PHP
![Page 31: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/31.jpg)
31
Цели проекта
Продвижение PHP в корпоративную среду:
Обеспечить разработчиков framework’ом, качество которого отвечало бы корпоративным стандартам
Гарантировать лицензионную чистоту, создаваемого кода
Гарантировать поддержку и сопровождение кода
Популяризация PHP 5 и ОО подхода в PHP
Представить на примере создаваемого framework’а пример “правильного” использования OO подхода в PHP
Создать спрос на поддержку PHP 5
![Page 32: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/32.jpg)
32
Организационная структура команды разработчиков
![Page 33: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/33.jpg)
33
Организационная структура команды разработчиков
Core team3-5 чел
![Page 34: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/34.jpg)
34
Организационная структура команды разработчиков
Авторы компонент
Core team3-5 чел
![Page 35: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/35.jpg)
35
Организационная структура команды разработчиков
Other contributors
Авторы компонент
Core team3-5 чел
![Page 36: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/36.jpg)
36
Community
Организационная структура команды разработчиков
Other contributors
Авторы компонент
Core team3-5 чел
![Page 37: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/37.jpg)
37
Этапы развития проекта Zend Framework
![Page 38: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/38.jpg)
38
Этапы развития проекта Zend Framework
Лето 2005 Старт проекта
![Page 39: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/39.jpg)
39
Этапы развития проекта Zend Framework
Лето 2005 Старт проекта
Апрель 2006 Выход первой публичной версии (ZF 0.1.3)
![Page 40: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/40.jpg)
40
Этапы развития проекта Zend Framework
Лето 2005 Старт проекта
Апрель 2006 Выход первой публичной версии (ZF 0.1.3)
Март 2007 Выход первой beta версии (ZF 0.9.0)
![Page 41: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/41.jpg)
41
Этапы развития проекта Zend Framework
Лето 2005 Старт проекта
Апрель 2006 Выход первой публичной версии (ZF 0.1.3)
Март 2007 Выход первой beta версии (ZF 0.9.0)
Конец мая 2007 Выход первого RC (ZF 1.0.0 RC1)
![Page 42: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/42.jpg)
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 43: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/43.jpg)
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 44: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/44.jpg)
44
Release policy проекта Zend FrameworkMajor releases (X.0.0):
Может включать изменения, не поддерживающие обратную совместимость.
Может включать в себя новые фичи
![Page 45: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/45.jpg)
45
Release policy проекта Zend FrameworkMajor releases (X.0.0):
Может включать изменения, не поддерживающие обратную совместимость.
Может включать в себя новые фичи
Minor releases (n.X.0)
BC breaks допустимы только для исправления критических ошибок
Может включать в себя новые фичи
![Page 46: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/46.jpg)
46
Release policy проекта Zend FrameworkMajor releases (X.0.0):
Может включать изменения, не поддерживающие обратную совместимость.
Может включать в себя новые фичи
Minor releases (n.X.0)
BC breaks допустимы только для исправления критических ошибок
Может включать в себя новые фичи
Mini releases (n.m.X)
BC breaks допустимы только для исправления критических ошибок
Может включать только исправления ошибок
![Page 47: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/47.jpg)
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 48: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/48.jpg)
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 49: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/49.jpg)
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 50: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/50.jpg)
50
Этапы развития проекта Zend Framework
Лето 2005 Апрель 2006 30.06.2007
I II III
I. Внутренняя разработка.
II. Период неофициальных версий.
III. Официальное развитие framework’а.
![Page 51: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/51.jpg)
51
Этап I. Внутренняя разработка.
Особенности
Некоторая изолированность разработчиков.
Разработка производится как в обычном закрытом проекте
Общение всей команды происходит ~раз в месяц
Задачи
Наработка функционала
Подготовка среды, в которой будет существовать проект (репозиторий кода, issue tracker, web сайт, …)
Отработка процессов релиза framework’а
![Page 52: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/52.jpg)
52
Этап II. Период неофициальных версий.
Особенности
Необходимость сверхбыстрого реагирования на обращения пользователей и сторонних разработчиков.
Отработка методов принятия коллегиальных решений в отношении действий сторонних разработчиков*.
Общение всей команды происходит ~раз в неделю.
Задачи
Получить версию продукта 1.0.0
Привлечение к проекту сторонних разработчиков.
Получить feedback от первых пользователей продукта
![Page 53: Distributed Development Practice](https://reader033.fdocuments.in/reader033/viewer/2022060201/559b0dd01a28ab99638b4772/html5/thumbnails/53.jpg)
53
Этап III. Официальное развитие framework'а.
Особенности
Повышенный overhead на коммуникации
Увеличение доли задач по сопровождению
Общение всей команды происходит каждый день
Задачи
Развитие проекта, поддержка