Similar presentations:
Реинжиниринг работающего продукта на ходу. Tutu.ru
1. Как tutu.ru делает реинжиниринг работающего продукта на ходу
Грунтович РоманТуту.ру
2. О Туту.ру
2003год основания
13.5 млн
600 тыс
250
8 млн
посетителей в месяц
сотрудников
Авиабилеты
посетителей в день
строк кода
Ж/д билеты
Туры
Гостиницы
Электрички
3. Предпосылки
• Постоянно меняющиеся внешние факторы• Рост количества сотрудников
4. Проблемы
• Дорогая поддержка системы• Снижение темпов развития
5. Летний поезд
Ожидания бизнесаРеальность
6. Наследие full-stack разработки
7. Метрика качества кода
8. Нужно что-то менять!
9. Первый подход
1. Переписываем последовательно модуль за модулем2. …
3. Profit!
10.
11. Распределение времени: ожидания
ПродуктПроект
12. Распределение времени: реальность
ПродуктПроект
13. Второй подход: реинжиниринг
1. Делаем новую систему с нуля2. …
3. Profit!
14. Что такое реинжиниринг?
15. С чего мы начали?
16. Кого мы взяли с собой в путь?
• Чемпиона с видением• Опытных бойцов
• А можно и свежих, еще не испорченных
17. Команда
1
2
2
1
ПО
бэкендера
фронтендера
тестировщик
• 1 ПО
• 3 бэкендера
• 4 фронтендера
• 3 тестировщика
18.
ТребованияПолучить платформу для быстрого развития
Выдавать результаты поэтапно
Не навредить работающему продукту
Не навредить позициям в поисковиках
Сохранить прибыльность
19. Как мы подошли к выбору нового технологического стека
20.
21. Процесс реинжиниринга
22.
23.
Выделяем сегмент для первого этапа сминимальным функционалом
24.
25.
Выбираем следующий сегмент26.
27.
Выдавать результаты поэтапно28.
А как оно вообще должно работать?29.
30. Как мы выбираем вариант решения задачи
• Решает задачу• Наименее затратен
• Покрывает все известные на данный момент случаи
использования
31.
Переписать нельзя оставить32.
33. Как мы отслеживаем прогресс
• Логируем ошибки• Считаем метрики загрузки страниц
• Проверяем через A/B тестирование
34.
Сохранить прибыльность35. Как мы передаем результаты своих трудов в продуктовую команду
36. Что делать с постоянно меняющимся миром?
37. А если продукт уходит вперед?
38. Итоги
Получить платформу для быстрого развитияВыдавать результаты поэтапно
Не навредить работающему продукту
Не навредить позициям в поисковиках
Сохранить прибыльность
39. Что нам помогло
Прагматичность
Итеративность
Целеустремленность
Адаптивность
40.
Грунтович Роман[email protected]