software process framework

Post on 11-Apr-2017

50 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Автоматизация процесса разработки

• Как мы почти полностью автоматизировали процесс разработки ФРИИ

• Как облегчить взаимодействие с QA

• Как облегчить появление нового члена команды

• Расскажу какая боль лежала в основе "Software process framework"

Немного примеров

Слайд с кодом со сложной бизнес логикой

Слайд с историей коммитов изменяющих сложную бизнес логику

и отдална тестирование

• Проект со сложной бизнес логикойкоторая постоянно меняется

• Постоянно тестируется несколько задач

• Разработка организована через недельные спринты

Например

Pull Requests

Pull Requests

Pull Requests

Pull Requests

Pull Requests

Pull Requests

Pull Requests

Сложности

Pull Requests

• Нужно дергать разработчика чтобы задеплоил

• Нужно постоянно мержить и деплоить

• Нужно за всем этим следить

• Нет возможности “Раздеплоить” и много еще чего

• Протестированные задачи лучше оставлять на этом же сервере

Последствия

• Большая несогласованность

• Вместо написания кода мы постоянно мержим, правим конфликты и деплоим

• Нас дергает тестировщик и другие члены команды

Попытки решения

Автоматизация ручных действий

1. Форкает текущую ветку

2. Мержит в нее все PR с меткой

3. Форс пуш на гитхаб

4. Деплой на тестирование

Результат

• Меньше конфликтов

• Просто "раздеплоить PR"

• Меньше ручной работы

Что осталось

• Несогласованность

• Новым разработчикам рассказывать по новой

• Все равно нужно что-то запускать

Формализация процесса

Software process framework

achempion / software_process_framework

Зачем нужен

• Общий подход

• Уже решенные проблемы

• Рекомендации по организации процесса

Git-flow

Git-flow

История

└── releases/ ├── current/ │   ├── .keep │   ├── task-11 │   ├── task-13 │   └── task-15 └── history/    ├── .keep └── 2017-02-02

└── releases/ ├── current/ │   ├── .keep │   ├── task-11 │   ├── task-13 │   └── task-15 └── history/    ├── .keep └── 2017-02-02

releases / current / task-11

rake db:seed:anketa:load VERSION=base_v9 rake single2:rewrite_text_adequate

└── releases/ ├── current/ │   ├── .keep │   ├── task-11 │   ├── task-13 │   └── task-15 └── history/    ├── .keep └── 2017-02-02

└── releases/ ├── current/ │   ├── .keep │   ├── task-11 │   ├── task-13 │   └── task-15 └── history/    ├── .keep ├── 2017-02-02 └── 2017-03-19

releases/history/2017-02-02

preac-1523 rake single2:preac_1523_fill_refreshed_atpreac-1539preac-1542preac-1222preac-1254preac-1285 rake db:seed:cofoundit:load VERSION=selection_v3 preac-1326 rake single:preac_1326preac-1327 rake db:seed:anketa:load VERSION=base_v9 rake db:seed:cofoundit:load VERSION=selection_v3 preac-1329preac-1330preac-1339preac-1498 rake db:seed:anketa:load VERSION=base_v9 rake single2:rewrite_text_adequatepreac-1499 rake single2:peac_1498_set_default_cofoundit_selection_rating preac-1522preac-1524

achempion / srelease

Соглашения

Формат коммитов

[refs #task-13] commit messageдля одной задачи

[refs #task-11, #task-15] commit messageдля нескольких

Отсылка к номеру задачи

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

Каждая задача должна содержать ссылку на Pull Request

Поставка задач QA

Скоро в open-source

Спасибо

/ achempion

/ achempion

top related