Михаил Табунов (coub.com)

36
Управление проектом в условиях стремительного роста на примере Coub Михаил Табунов, CTO

Upload: ontico

Post on 15-May-2015

322 views

Category:

Internet


3 download

TRANSCRIPT

Page 1: Михаил Табунов (Coub.com)

Управление проектом в условиях стремительного роста на примере CoubМихаил Табунов, CTO

Page 2: Михаил Табунов (Coub.com)
Page 3: Михаил Табунов (Coub.com)

Что такое Coub- Сайт про короткие зацикленные видеоролики

- За 2013 год – 120 кратный рост

Начало 2013: - 1mln MAU - 2.4mln pageviews

Начало 2014: - 48mln MAU - 475mln pageviews

Page 4: Михаил Табунов (Coub.com)

Мы – стартап

- Сделать минимальный продукт который будет нужен людям (Minimal Valuable Product)

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

Page 5: Михаил Табунов (Coub.com)

Процессы в компанииТребования

Реализация

Тестирование

Эксплуатация

Управление продуктом

Управление проектом

Управление качеством

Управление инфраструктурой

Page 6: Михаил Табунов (Coub.com)

Управление продуктом

Page 7: Михаил Табунов (Coub.com)

- MVP — это стартовая точка - Появляется понимание, что как и для кого мы делаем

- Начинают появляться Performance Indicators, развиваются метрики

Page 8: Михаил Табунов (Coub.com)

- Мы год искали тот самый MVP - За этот год перепробовали кучу нужного и ненужного: три раза меняли целиком концепцию

- Стало ясно, что мы знаем очень мало о наших пользователях

Page 9: Михаил Табунов (Coub.com)

Мы не знаем что происходит- Data-Driven и Data-Informed подходы - A/B тестирование - Поиск реально важных метрик, целенаправленная работа над их увеличением

- Engagement

Page 10: Михаил Табунов (Coub.com)

Наш опыт- Внутренняя система A/B тестирования на базе готового решения

- Mixpanel + Google Analytics - Собственная система записи и анализа событий

- Движение к плотной интеграции аналитики в продукт

Page 11: Михаил Табунов (Coub.com)

- Стараемся выкатывать весь новый функционал через A/B тесты

- Собираем статистику, пусть она кажется ненужной

- Не боимся убирать редко используемые фичи

Page 12: Михаил Табунов (Coub.com)

Мы не знаем куда двигаться

- Появилось несколько планов (Roadmap, месячный план разработки)

- Нужно учится расставлять правильные приоритеты

- Даже бредовые идеи надо записывать

Page 13: Михаил Табунов (Coub.com)

Наш опытRoadmap — всё, что когда либо хотелось бы сделать

План разработки - всё, что мы делаем в ближайшие несколько спринтов

План спринта

Page 14: Михаил Табунов (Coub.com)

Управление проектом

Page 15: Михаил Табунов (Coub.com)

Кризис роста- Теперь появились пользователи, вместе с ними появился запрос на качество

- Помимо этого теперь надо работать над масштабируемостью

- Новых фич теперь нужно больше, они нужны быстро чтобы зафиксировать успех

- Месяц - очень длительный срок

Page 16: Михаил Табунов (Coub.com)

Наш опыт- Без четкой и понятной системы управления много времени уходит на решение простых задач

- Требования очень быстро меняются

- Всем нужна прозрачность того, что происходит

Page 17: Михаил Табунов (Coub.com)

- Scrum-подобный процесс (но не Scrum)

- Недельный спринт - Оценка в пойнтах - Очень удобный инструмент для руководителя

Page 18: Михаил Табунов (Coub.com)

- Спринты вносят больше ясности в процесс как для разработчиков, так и для руководства

- Новые сотрудники говорят что им проще влится

- Можно делать приблизительные прогнозы

Page 19: Михаил Табунов (Coub.com)

- Github workflow (Feature branch & Pull Request)

- Jira integration - Production и Staging среды - За год команда увеличилась в три раза - процесс менять не пришлось

Page 20: Михаил Табунов (Coub.com)

Команда- Чем сложней предметная область - тем дольше время адаптации

- Не получится нанять много и сразу - Формируйте корпоративную культуру, она сильно экономит время

- Быть маленькой командой - круто

Page 21: Михаил Табунов (Coub.com)

Наш опыт- Не делайте лишней работы, используйте готовое

- Всё, что вы делаете, будет меняться, надо помнить про это

- Работайте над командной продуктивностью

Page 22: Михаил Табунов (Coub.com)

Управление качеством

Page 23: Михаил Табунов (Coub.com)

Качество

- Очень много багов в самом начале, из за сырости технологии

- На разных этапах – разные требования по качеству продукта

- Ресурсы по остаточному принципу

Page 24: Михаил Табунов (Coub.com)

Тестирование

- Автоматичекое API тестирование – спасение в условиях нехватки рук

- Пишем тесты с первого дня - Тесты без Continous Integration не имеют смысла

Page 25: Михаил Табунов (Coub.com)

Тест-план- Автоматические интерфейсные тесты (Selenium) дорого содержать

- Пишем тест-план, все серьезные релизы кликаем руками

- Если нет тестировщика - дружно кликаем все вместе

Page 26: Михаил Табунов (Coub.com)

Continuous Integration- Environment, близкий к production - Следим за code coverage - Важно держать тесткейс рабочим: билд должен собираться быстро, тесты должны быть актуальными

Page 27: Михаил Табунов (Coub.com)

Continuous Delivery- На стейджинг можно задеплоить только через CI

- Тесты всегда в актуальном состоянии, иначе работа встанет

- Весьма рискованно так выкатывать production

Page 28: Михаил Табунов (Coub.com)

Практика- Очень мало проблем с поломкой уже работающего функционала

- Реально критичные баги встречаются редко (раз в месяц)

- Баги есть, но все терпимые - Есть что улучшать

Page 29: Михаил Табунов (Coub.com)

Эксплуатация

Page 30: Михаил Табунов (Coub.com)

Эксплуатация- Всё растет в N раз в месяц - Надо чтобы всё работало, причем хорошо

- Нет возможности нанять толпу специалистов

- Инцидентов много, надо реагировать быстро

Page 31: Михаил Табунов (Coub.com)

Инфраструктура- Используем самые простые в поддержке и надежные компоненты системы

- Мониторим не только сервера, но и приложения

- Автоматизируем с первого дня

Page 32: Михаил Табунов (Coub.com)

SAAS, PAAS- Используйте по максимуму, они экономят время

- В любом таком решении всё не идеально

- Ищите баланс, не бойтесь делать своё, зачастую это имеет смысл

Page 33: Михаил Табунов (Coub.com)

Что мы используем- Статика: CDN, Amazon S3 - Отсылка почты: Amazon SES,

Mandrilapp - DNS: Amazon Route 53 - Мониторинг: NewRelic, Scoutapp,

HoneyBadger

Page 34: Михаил Табунов (Coub.com)

Релизы- Выкатка должна быть идеальной - Нужно учится правильно выкатывать, сразу не получится

- Быстро растем, быстро меняемся, часто релизим

- Zero-Downtime - сильно влияет на ваш рост, если вы релизите часто

Page 35: Михаил Табунов (Coub.com)

Мобильные приложения- Релиз может занимать от нескольких часов, до нескольких недель

- Помним про обратную совместимость и зоопарк устройств

- Очень важен хорошо спроектированный API, это снимет много проблем

Page 36: Михаил Табунов (Coub.com)

coub.com