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