Пожар в бардаке во время наводненияРаспределённая групповая разработкаЮрий Удовиченко       пианист,                      ...
О ком речь?Ронда это:● Firmware & embedded systems● Computer vision● Custom development● 100+ инженеров16 лет на рынке — ж...
Специфика крупныхраспределённых проектов● Сложные системы (часто, но не всегда)● Несколько групп разной численности● Непро...
А ещё● Большие расстояния● Разные часовые пояса● Разные языки и культурыХорошее развитие продукта в такихусловиях — высший...
Нет ничего более постоянного,       чем изменения                (с) Кто-то древний
Software Configuration ManagementВ первую очередь:● Change control● Source code management (version control)● Build engine...
А также● Release engineering● Environment configuration● Deployment
Контроль изменений● Что сделать и зачем?● Кто просит?● Чья ответственность?
● Уже сделано?● А если проверю?● И что получилось?● А куда всё делось?
Not Invented Here●   bug trackers●   issue trackers●   defect trackers●   task managers●   help desks●   service desks●   ...
Что нужно от инструмента?● Внесение запросов на изменение● Назначение ответственного● Отслеживание принятия решений● Отсле...
● Сохранение истории и поиск● Приобщение артефактов (доки, email)● Привязка к контролю версийПригодится:● Ведение документ...
Велопарк из практики Ронды●   JIRA●   Redmine●   Assembla●   github●   Trac●   eTraxis●   WSD DDTS●   ClearDDTS●   Excel (!)
Контроль версийОсновные задачи:● Хранение истории рабочих продуктов● Обеспечение параллельности разработки● Стабилизация р...
Наш автопарк● Perforce● ClearCase● Subversion● git● CVS
Основные практики (1/3)Ветвление vs. главная ветка● branch-per-task vs. trunk● feature branchesИнтеграционные веткиМетки● ...
Основные практики (2/3)Релизные ветки● СтабилизацияВетки проектов или заказчиков● Стабилизация и исправление● Внесение спе...
Основные практики (3/3)Роль интегратора, т.е. СМ-инженераРазграничение доступа● Предоставление только части кода● Контроль...
Управление сборкойНе всегда получается собирать кодлокально● Специфичный софт● Требования по ресурсам● Прогон автоматическ...
Что используемQuickBuild● гибкая настройка● интеграция с системами автотестов● публикация в PerforceHudson/Jenkins
Стабилизация результатовОпределяется baseline, стабильнаяконфигурация — интеграцией или"заморозкой"Отстройка — локально и/...
Доставка релизаПредоставление релиза заказчикам● release notes● release area● нотификацииРазвёртывание в среде заказчика
Инструменты и процессыИнь и янь: одно без другого не работает.Как выбрать подходящие?● Определяется конечный результат● Оп...
Менять процесс?● Иногда это нужно - кессонная болезнь,  илиболезнь роста● Надо учитывать стоимость изменений(иногда дешевл...
Идеал vs. реальный мир
Работает — не трогай!       Ломать — не строить.
Коммуникация● Email, IM, Conference Calls - как обычноНо этого не достаточно● Внедрение в инфраструктуру заказчика -  VPN,...
Дружба народов!"Маленькие" отличия:● Язык● Менталитет● Праздники, выходные, военные сборы
http://scm-notes.blogspot.com/
}Вопросы ?
Upcoming SlideShare
Loading in …5
×

Доклад по SCM для VLDC2, Юрий Удовиченко

8,590
-1

Published on

Пожар в бардаке во время наводнения, или Распределённая групповая разработка.
Доклад Юрия Удовиченко, Rhonda Software, для Vladivostok Developers Conference. https://wmspanel.com/nimble

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
8,590
On Slideshare
0
From Embeds
0
Number of Embeds
39
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Доклад по SCM для VLDC2, Юрий Удовиченко

  1. 1. Пожар в бардаке во время наводненияРаспределённая групповая разработкаЮрий Удовиченко пианист, Rhonda Software
  2. 2. О ком речь?Ронда это:● Firmware & embedded systems● Computer vision● Custom development● 100+ инженеров16 лет на рынке — живее всех живых!
  3. 3. Специфика крупныхраспределённых проектов● Сложные системы (часто, но не всегда)● Несколько групп разной численности● Непростая система подчинения
  4. 4. А ещё● Большие расстояния● Разные часовые пояса● Разные языки и культурыХорошее развитие продукта в такихусловиях — высший пилотаж и тот ещёchallenge
  5. 5. Нет ничего более постоянного, чем изменения (с) Кто-то древний
  6. 6. Software Configuration ManagementВ первую очередь:● Change control● Source code management (version control)● Build engineering
  7. 7. А также● Release engineering● Environment configuration● Deployment
  8. 8. Контроль изменений● Что сделать и зачем?● Кто просит?● Чья ответственность?
  9. 9. ● Уже сделано?● А если проверю?● И что получилось?● А куда всё делось?
  10. 10. Not Invented Here● bug trackers● issue trackers● defect trackers● task managers● help desks● service desks● project management systemsИмя им - легион! Только в Вики - 52названия.
  11. 11. Что нужно от инструмента?● Внесение запросов на изменение● Назначение ответственного● Отслеживание принятия решений● Отслеживание жизненного цикла задачи
  12. 12. ● Сохранение истории и поиск● Приобщение артефактов (доки, email)● Привязка к контролю версийПригодится:● Ведение документации (Wiki)● Логирование времени
  13. 13. Велопарк из практики Ронды● JIRA● Redmine● Assembla● github● Trac● eTraxis● WSD DDTS● ClearDDTS● Excel (!)
  14. 14. Контроль версийОсновные задачи:● Хранение истории рабочих продуктов● Обеспечение параллельности разработки● Стабилизация результатов
  15. 15. Наш автопарк● Perforce● ClearCase● Subversion● git● CVS
  16. 16. Основные практики (1/3)Ветвление vs. главная ветка● branch-per-task vs. trunk● feature branchesИнтеграционные веткиМетки● Описание стабильных конфигураций● Манипуляция конфигурациями
  17. 17. Основные практики (2/3)Релизные ветки● СтабилизацияВетки проектов или заказчиков● Стабилизация и исправление● Внесение специфичных измененийPropagation● Перенос изменений между ветками
  18. 18. Основные практики (3/3)Роль интегратора, т.е. СМ-инженераРазграничение доступа● Предоставление только части кода● Контроль доступа внутри репозитория● Выставление наружу срезов
  19. 19. Управление сборкойНе всегда получается собирать кодлокально● Специфичный софт● Требования по ресурсам● Прогон автоматических тестов
  20. 20. Что используемQuickBuild● гибкая настройка● интеграция с системами автотестов● публикация в PerforceHudson/Jenkins
  21. 21. Стабилизация результатовОпределяется baseline, стабильнаяконфигурация — интеграцией или"заморозкой"Отстройка — локально и/или через билд-серверТестирование
  22. 22. Доставка релизаПредоставление релиза заказчикам● release notes● release area● нотификацииРазвёртывание в среде заказчика
  23. 23. Инструменты и процессыИнь и янь: одно без другого не работает.Как выбрать подходящие?● Определяется конечный результат● Описывается процесс исходя из имеющегося инструментария● При необходимости инструмент меняется под задачу
  24. 24. Менять процесс?● Иногда это нужно - кессонная болезнь, илиболезнь роста● Надо учитывать стоимость изменений(иногда дешевле оставить как есть)
  25. 25. Идеал vs. реальный мир
  26. 26. Работает — не трогай! Ломать — не строить.
  27. 27. Коммуникация● Email, IM, Conference Calls - как обычноНо этого не достаточно● Внедрение в инфраструктуру заказчика - VPN, AD● Свои люди на сайтах● Командировки● Наладить обмен hardware
  28. 28. Дружба народов!"Маленькие" отличия:● Язык● Менталитет● Праздники, выходные, военные сборы
  29. 29. http://scm-notes.blogspot.com/
  30. 30. }Вопросы ?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×