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

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

May 15, 2015

Download

Internet

Ontico
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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