19
Agile Kitchen November 2013 Legacy vs Agile Team 06/20/2022

Legacy vs Agile Team

Embed Size (px)

DESCRIPTION

Agile Kitchen November 2013 Долгое время наша команда работала с собственным кодом, применяя различные методологии и подходы, писала качественный код и можно сказать жила в раю, но вот настал день, когда изменилось всё☺. Когда мы взяли на поддержку чужой объемный продукт и завязли по колено в легаси. Нам пришлось активно подключить наш agile mindset, чтобы изменить ситуацию и адаптироваться под новые условия. В общем, мы расскажем почему базовые практики того же scrum плохо работают с legacy, что нам пришлось изменить в команде и во взаимоотношениях со стейкхолдерами, и к чему это привело. Ну а если вы еще сомневаетесь, то попробуйте ответить себе на пару следующие вопросов: приходилось ли вам брать на поддержку чужой продукт целиком с его непонятными правилами, устаревшим поведением, неработающим функционалом? Приходилось ли отвечать за него по SLA? Если хотя бы на часть из этих вопросов вы ответили да, то вам точно будет интересен наш доклад, в котором мы расскажем, как наша сплоченная команда выбиралась из этого ада.

Citation preview

Page 1: Legacy vs Agile Team

04/12/2023

Agile Kitchen November 2013

Legacy vs Agile Team

Page 2: Legacy vs Agile Team

Действительно сильная команда ;-)

Page 3: Legacy vs Agile Team

TD

DSCR

UM

SO

LID

CI

CO

DE R

EV

IEW

AG

ILE M

IND

SET

Page 4: Legacy vs Agile Team

Что это дало…

На 90% автоматизированный регресс

Автоматизированная сборка

Минимальный объем технического долгаДокументация

Минимум дефектов

Прогнозируемость

Page 5: Legacy vs Agile Team

Рай для разработчика

Page 6: Legacy vs Agile Team

Scrum работает отлично если вы…

С самого начала …

Используете инженерные практикиПоддерживаете объем тех долг на минимальном уровнеАвтоматизируете регресс

Page 7: Legacy vs Agile Team

Но однажды …

Page 8: Legacy vs Agile Team

Обязательная процедура высмеивания кода

Page 9: Legacy vs Agile Team

Масштаб бедствия

120 сборок

35 000 строк кода

Жестко связанный и расфокусированный код

Полное отсутствие документации

Полное отсутствие тестового плана, автоматизированных тестовДве параллельные активные ветки разработки

Ручная схема сборки дистрибутива

Отсутствие версионирования

Два крупных бизнес-проекта национального масштаба

Жесткий SLA

Page 10: Legacy vs Agile Team

Работа с Legacy Code

Page 11: Legacy vs Agile Team

С чего мы начали

Автоматизация сборки системыВерсионирование

Build-Deploy-Test

Небольшой набор smoke тестов

Page 12: Legacy vs Agile Team

До и после

До После

Page 13: Legacy vs Agile Team

Бомбардировка багами

Page 14: Legacy vs Agile Team

Тех долг

Page 15: Legacy vs Agile Team

Пора остановиться

Page 16: Legacy vs Agile Team

Изменение

Новый функционал

Плановые работы

Исследование и исправление дефектовСнижение технического

долга

Новый функционал

Плановые работы

Комфорт Дискомфорт

До Legacy C Legacy

1 нед 2 нед

Тех. долг

Исслед.дефекто

в

Исправ.дефекто

в

Схема работ по дефектам и тех

долгу

Scrum Scrum

Page 17: Legacy vs Agile Team

Изменение (реальность)

Новый функционал

Плановые работы

Исследование и исправление дефектовСнижение технического

долга

Новый функционал

Плановые работы

Комфорт Дискомфорт

До Legacy C Legacy

1 нед 2 нед

Тех. долг

Исслед.дефекто

в

Исправ.дефекто

в

Схема работ по дефектам и тех

долгу

Scrum Scrum

Page 18: Legacy vs Agile Team

Выводы (Legacy + Scrum)

Разделяйте «физически» работы над новым функционалом и дефектами, тех. долгом

Научитесь говорить «НЕТ», препятствуйте внезапным изменениям плана итерации

Обязательно уделяйте время на минимизацию тех. долга

Будьте максимально прозрачны для стэйкхолдеров

Page 19: Legacy vs Agile Team

Воронин Алексей

about.me/avoroninfacebook.com/[email protected]