software process framework

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

Upload: achempion

Post on 11-Apr-2017

50 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Software process framework

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

Page 2: Software process framework
Page 3: Software process framework
Page 4: Software process framework
Page 5: Software process framework

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

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

Page 6: Software process framework

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

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

Page 7: Software process framework

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

Page 8: Software process framework

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

Page 9: Software process framework

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

Page 10: Software process framework
Page 11: Software process framework

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

Page 12: Software process framework

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

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

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

Например

Page 13: Software process framework

Pull Requests

Page 14: Software process framework
Page 15: Software process framework

Pull Requests

Page 16: Software process framework

Pull Requests

Page 17: Software process framework

Pull Requests

Page 18: Software process framework

Pull Requests

Page 19: Software process framework

Pull Requests

Page 20: Software process framework

Pull Requests

Page 21: Software process framework

Сложности

Page 22: Software process framework

Pull Requests

Page 23: Software process framework

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

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

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

Page 24: Software process framework

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

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

Page 25: Software process framework

Последствия

Page 26: Software process framework

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

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

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

Page 27: Software process framework

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

Page 28: Software process framework

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

Page 29: Software process framework
Page 30: Software process framework

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

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

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

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

Page 31: Software process framework

Результат

Page 32: Software process framework

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

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

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

Page 33: Software process framework

Что осталось

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

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

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

Page 34: Software process framework

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

Page 35: Software process framework

Software process framework

achempion / software_process_framework

Page 36: Software process framework

Зачем нужен

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

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

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

Page 37: Software process framework
Page 38: Software process framework
Page 39: Software process framework
Page 40: Software process framework
Page 41: Software process framework
Page 42: Software process framework
Page 43: Software process framework
Page 44: Software process framework

Git-flow

Page 45: Software process framework
Page 46: Software process framework

Git-flow

Page 47: Software process framework
Page 48: Software process framework
Page 49: Software process framework
Page 50: Software process framework
Page 51: Software process framework
Page 52: Software process framework
Page 53: Software process framework

История

Page 54: Software process framework
Page 55: Software process framework

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

Page 56: Software process framework
Page 57: Software process framework

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

Page 58: Software process framework

releases / current / task-11

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

Page 59: Software process framework

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

Page 60: Software process framework
Page 61: Software process framework

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

Page 62: Software process framework

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

Page 63: Software process framework

achempion / srelease

Page 64: Software process framework

Соглашения

Page 65: Software process framework

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

Page 66: Software process framework

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

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

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

Page 67: Software process framework

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

Page 68: Software process framework

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

Page 69: Software process framework

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

Page 70: Software process framework
Page 71: Software process framework
Page 72: Software process framework
Page 73: Software process framework
Page 74: Software process framework
Page 75: Software process framework
Page 76: Software process framework

Скоро в open-source

Page 77: Software process framework

Спасибо

/ achempion

/ achempion