Как tutu.ru делает реинжиниринг работающего продукта на ходу
О Туту.ру
Предпосылки
Проблемы
Летний поезд
Наследие full-stack разработки
Метрика качества кода
Нужно что-то менять!
Первый подход
Распределение времени: ожидания
Распределение времени: реальность
Второй подход: реинжиниринг
Что такое реинжиниринг?
 С чего мы начали?
Кого мы взяли с собой в путь?
Команда
Как мы подошли к выбору нового технологического стека
Процесс реинжиниринга
 Как мы выбираем вариант решения задачи
 Как мы отслеживаем прогресс
Как мы передаем результаты своих трудов в продуктовую команду
Что делать с постоянно меняющимся миром?
А если продукт уходит вперед?
Итоги
Что нам помогло
1.93M
Category: softwaresoftware

Реинжиниринг работающего продукта на ходу. 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]
English     Русский Rules