Ничего лишнего: как вычистить свой продукт от лишних...

44
Ничего лишнего! Как сделать простой и качественный продукт

TAGS:

description

Борис Вольфсон, HeadHunter (Москва) Как сделать простой и качественный продукт? В своем докладе я расскажу, как в продуктах появляются лишний функционал, почему это происходит и как влияет на продукт и его разработку. Также мы обсудим, что можно сделать, чтобы ненужных фич в продукте не появлялось.

Transcript of Ничего лишнего: как вычистить свой продукт от лишних...

Page 1: Ничего лишнего: как вычистить свой продукт от лишних фич!

Ничего лишнего!

Как сделать простой и качественный продукт

Page 2: Ничего лишнего: как вычистить свой продукт от лишних фич!

Слайд, призванный внушить уважение

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

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

выступлений)• Опыт тренера– Более 30 команд– Более 200 человек

Page 3: Ничего лишнего: как вычистить свой продукт от лишних фич!

Современные программные продукты содержат слишком большое количество функций

Page 4: Ничего лишнего: как вычистить свой продукт от лишних фич!

Почему это плохо?

Page 5: Ничего лишнего: как вычистить свой продукт от лишних фич!

Почему лишние фичи – это плохо?

Сложно пользоваться

Сложно разрабатывать

Дорого поддерживат

ь

Page 6: Ничего лишнего: как вычистить свой продукт от лишних фич!

Экономика лишнего

Page 7: Ничего лишнего: как вычистить свой продукт от лишних фич!

Сколько стоит сделать фичу X?

• N рублейПлохой

менеджер

• ManHours * HourCostНеплохой менедже

р

• StoryPoints * StoryPointCostХороший менедже

р

Page 8: Ничего лишнего: как вычистить свой продукт от лишних фич!

Это правильно? В чем ошибка?

FeatureCost = StoryPoints * StoryPointCost

Page 9: Ничего лишнего: как вычистить свой продукт от лишних фич!

В чем ошибка?

Сколько стоить сделать фичу X и поддерживать ее еще в N месяцев?

Page 10: Ничего лишнего: как вычистить свой продукт от лишних фич!

Продвигаемся к истине

FC = StoryPoints * StoryPointCost + SupportCost

Page 11: Ничего лишнего: как вычистить свой продукт от лишних фич!

Цена поддержки (SupportCost)

1. Исправление дефектов2. Мелкие «хотелки»3. Рефакторинги4. Глобальные рефакторинги– Смена архитектуры– Смена платформ, фреймворков и технологий

5. Зависимые фичи

Page 12: Ничего лишнего: как вычистить свой продукт от лишних фич!

Предельный переход

FC = StoryPoints * StoryPointCost + SupportCost

Что станет с нашей формулой в проекте с длинным жизненным циклом:• StoryPoints * StoryPointCost = const• SupportCost – будет увеличиваться

FeatureCost ≈ SupportCost

Page 13: Ничего лишнего: как вычистить свой продукт от лишних фич!

При определенной длине проекта стоимость поддержки превзойдет стоимость разработки

Время

Стои

мос

ть Поддержка

Разработка

Точка G

Page 14: Ничего лишнего: как вычистить свой продукт от лишних фич!

Следствия

1. В бесконечном проекте важна только стоимость поддержки

2. Чем длиннее проект, тем важней стоимость поддержки

3. В долгосрочных проектах нужно оценивать стоимость поддержки, а не разработки

4. Чем длиннее проект, тем выгодней вырезать ненужные фичи

Page 15: Ничего лишнего: как вычистить свой продукт от лишних фич!

Длина проекта

Время

Стои

мос

ть Поддержка

Разработка

Точка G

Стартап Длинный жизненный цикл

Page 16: Ничего лишнего: как вычистить свой продукт от лишних фич!

Стартапам полезно оставаться маленьким…

Page 17: Ничего лишнего: как вычистить свой продукт от лишних фич!

…но команде не всегда выгодно делать маленький продукт

Page 18: Ничего лишнего: как вычистить свой продукт от лишних фич!

В длинных проектах выгодно вырезать бесполезные фичи

Page 19: Ничего лишнего: как вычистить свой продукт от лишних фич!

Количество бесполезных фич

Page 20: Ничего лишнего: как вычистить свой продукт от лишних фич!

Кто виноват?

Page 21: Ничего лишнего: как вычистить свой продукт от лишних фич!

«Больше» не значит лучше для клиентов

Page 22: Ничего лишнего: как вычистить свой продукт от лишних фич!

Уровни фич

История пользователя

Эпик

Продукт

Page 23: Ничего лишнего: как вычистить свой продукт от лишних фич!

Фичи не удаляются, потому что это воспринимаются крайне негативно публикой

Page 24: Ничего лишнего: как вычистить свой продукт от лишних фич!

“Менеджерам” надо отчитываться и получать бонусы

Вы умеете поставлять кучу ненужного функционала

точно в срок?

Я же менеджер!

Стартап

Page 25: Ничего лишнего: как вычистить свой продукт от лишних фич!

Методологии разработки ПО учат быстро делать поставку

Page 26: Ничего лишнего: как вычистить свой продукт от лишних фич!

Разработчики часто любят «крутую» архитектуру

Page 27: Ничего лишнего: как вычистить свой продукт от лишних фич!

Кто виноват?

Маркетологи

МенеджерыРазработчики

Page 28: Ничего лишнего: как вычистить свой продукт от лишних фич!

Почему в продуктах появляются бесполезные фичи?

Page 29: Ничего лишнего: как вычистить свой продукт от лишних фич!

Почему в продуктах появляются бесполезные?

Page 30: Ничего лишнего: как вычистить свой продукт от лишних фич!

Чтобы вырезать что-нибудь

ненужное, нужно сначала сделать

что-нибудь ненужное…

Page 31: Ничего лишнего: как вычистить свой продукт от лишних фич!

Распределение функционала по частоте использования

Никогда45%

Редко19%

Иногда16%

Часто13%

Всегда7%

Standish Group, 2002

Page 32: Ничего лишнего: как вычистить свой продукт от лишних фич!

Распределение функционала по частоте использования в 90% стартапах

Никогда100%

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

Page 33: Ничего лишнего: как вычистить свой продукт от лишних фич!

ТЗ = ХЗ

Page 34: Ничего лишнего: как вычистить свой продукт от лишних фич!

Кто работает использую Lean Startup или похожую методологию?

Page 35: Ничего лишнего: как вычистить свой продукт от лишних фич!

Быстро получайте и обрабатывайте обратную связь

Идея

КодДанные

РазработкаОбучение

Измерение

Page 36: Ничего лишнего: как вычистить свой продукт от лишних фич!

Валидация гипотезы

• ВырезаемN < A• Развиваем фичуN > B• Оставляем «как есть»A < N <

B

A B

N

Page 37: Ничего лишнего: как вычистить свой продукт от лишних фич!

Старые фичи

Page 38: Ничего лишнего: как вычистить свой продукт от лишних фич!

Метрики необходимо измерять постоянно для всех фич

Время

Мет

рика

Порог отсечения

Метрика фичи

Page 39: Ничего лишнего: как вычистить свой продукт от лишних фич!

Кладбище фич

Page 40: Ничего лишнего: как вычистить свой продукт от лишних фич!

Вырезание функционала

Сложно

• Низкий приоритет для задач по вырезанию

• Неочевидная польза

Просто

• Маленькие трудозатраты

• Понятно, что делать

• Минимальные риски

Page 41: Ничего лишнего: как вычистить свой продукт от лишних фич!

Выводы

1. Новые фичи выгодно создавать для всех2. Признать, что фича бесполезна и вырезать

ее – невыгодно для всех

В результате получаются продукты с бесполезным функционалом

Page 42: Ничего лишнего: как вычистить свой продукт от лишних фич!

Что делать?

1. Не стремитесь к бездумному увеличение количества функционала

2. Определяйте численные условия по вырезанию функционала

3. Периодически вырезайте ненужный функционал

4. Используйте верхний вырост на вашем теле!

Page 43: Ничего лишнего: как вычистить свой продукт от лишних фич!
Page 44: Ничего лишнего: как вычистить свой продукт от лишних фич!

Вопросы и контакты?

[email protected]

• www.twitter.com/borisvolfson

• www.facebook.com/borisvolfson