Cтратегия сокращения технического долга

Preview:

DESCRIPTION

 

Citation preview

Стратегия сокращения технического долга

Вольфсон Борис

2

• CTO at HeadHunter• CTO at Softline Development• Автор книги «Гибкие

методологии разработки»• Спикер (несколько десятков

выступлений)• Опыт тренера

– Более 20 команд– Более 150 человек

3

• Технический долг• Виды технического долга• Стратегии сокращения технического долга

– Технический налог– Выделенная команда

• Выводы

4

• От 2 лет• Периодические релизы

Проекты с длинным жизненным циклом

• 50-200 человек• Разбит на небольшие команды

Средние коллектив

Условия

5

• Design Patterns• Extreme Programming• Wiki• Fit• Technical Debt

6

Что стоит относить к техническому долгу?• Архитектурные решения

– «Дешевые» сейчас, «дорогие» потом– Старые технологии

• «Мертвые» фичи• Мелкие баги• Тесты

7

Как появляется технический долг?

Быстрее• Жертвуе

м внутренним качеством

Качественнее• Жертвуе

м сроками

8

Стоимость

Стоимость разработки + Стоимость поддержки

9

Архитектура

Время

Фун

кци

она

л

Хорошая архитектура

Плохая архитектура

10«Мертвые фичи»

11

Мелкие баги• Небольшие минорные баги• Не относятся к основному функционалу• Не мешают пользователям

– Пользователи о них могут даже и не знать

12

Эффект разбитых окон

13

Тесты• «Нет времени писать сейчас, напишем

позже»• Нет понимания влияния тестов на дизайн• Возрастает хрупкость системы• Изменения становятся очень дорогими

14

Старые технологии

1. Старые библиотеки и фреймворки– Server Side: Apache Torque → Hibernate– Client Side: Prototype → jQuery

2. Обновление библиотек и фреймворков– Lucene 2 → Lucene 3

3. Замена «велосипедов» на готовые библиотеки

15

Алгоритм возврата долгов

1. Посчитайте, сколько вы должны

2. Определите, как не увеличивать долг

3. Выберите стратегию по сокращению долга

16

Варианты оценок техналога

1. Количество технических задач

2. Общий размер технических задач

3. Эмпирическая оценка задач по рефакторингу

17

Инструменты измерения техдолга

18

Выделенная команда

Плюсы

• Жестко выделенная команда без других задач

• Простота планирования

Минусы

• Плохое распространение заний

• Быстрое «выгорание» команды

19

Технический налог

1. Выделенной команды нет

2. Все команды тратят N процентов времени на уменьшение технологического долга

20

Технический налог

Плюсы

• Распространение знаний между всеми командами

Минусы

• Сложное планирование

• Низкий приоритет задач по рефакторингу по сравнению с продуктовыми

21

Когда действительно стоит брать в долг?

1. Близкий релиз с жесткими сроками– Жесткость сроков реальна– Срок релиза ~ несколько месяцев

2. Заранее выделить время на последующий рефакторинг

22

Выводы

1. Измеряйте и контролируйте технический долг

2. Не увеличивайте, а лучше сокращайте технический долг

23

Контакты

• borisvolfson@gmail.com

• www.twitter.com/borisvolfson

• www.facebook.com/borisvolfson

• borisvolfson

Борис ВольфсонТехнический директор HeadHunter Group

b.volfson@hh.ru

СПАСИБО!

Recommended