TechLeads meetup: Макс Лапшин, Erlyvideo

35
Разработка без стресса в своей компании Максим Лапшин [email protected]

Transcript of TechLeads meetup: Макс Лапшин, Erlyvideo

Разработка без стресса в своей компании

Максим Лапшин [email protected]

Содержание

• Кто мы такие и кому нужны

• Как ставим задачи и чего в них сложного

• Как делаем сложные задачи без ночных спринтов

• Как обеспечиваем качество и скорость

Flussonic

• Видеостриминговый серверный софт

• Операторы связи

• Производства

• Сплошной b2b

Особенности

• Основное средство производства

• Не работаем с программистами

«Взрывной» рост

• 2 года ходишь на выставки, на 3-й начинают здороваться

• все на старте боятся, не доверяют

Чего получается• Ровный рост компании

• Держим паритет по фичам с лидером рынка

• Все делаем спокойно

• Выходные и ночь для отдыха

• Сохраняем уровень качества

Направление разработки

• Сами себе заказчики

Направление разработки

• Сами себе заказчики

• «Реактивная» разработка за рынком

Направление разработки

• Сами себе заказчики

• «Реактивная» разработка за рынком

• В b2b надо быть и гибким, и не делать спец-ветки

Направление разработки

• Сами себе заказчики

• «Реактивная» разработка за рынком

• В b2b надо быть и гибким, и не делать спец-ветки

• Конкуренция с внутренними отделами клиента

Сложности

• Есть mandatory задачи: делай или уходи

Сложности

• Есть mandatory задачи: делай или уходи

• Непрогнозируемый код: от месяца до 2 лет

Сложности

• Есть mandatory задачи: делай или уходи

• Непрогнозируемый код: от месяца до 2 лет

• Тяжело проектировать то, что ещё не делал

Наши ответы

• Продаем только готовое

Готовая коробка

• Мы даем не сервис, а софт

• Каждая строчка пишется для многих клиентов

• Сначала пишем, потом продаем

• Гарантии по срокам дают только на HL3

Наши ответы

• Продаем только готовое

• Подход к задаче, как к научной проблеме

Наукообразный подход• Инженер планирует планы решения задачи

• Ищет гарантированные способы и короткие

• Описывает шаги и их результаты

• Минимум ежедневно пишет отчет

• Один тикет — одна диссертация

Наши ответы

• Продаем только готовое

• Подход к задаче, как к научной проблеме

• Запуск минимальных фич

MVP каждый день• Что-то завелось — дали клиенту на тест

• Чем быстрее фидбек, тем лучше

• Клиент не знает, что именно будет нужно

• А мы не полностью знаем бизнес клиента

• Чем раньше бросишь, тем меньше потеряешь

Наши ответы

• Продаем только готовое

• Подход к задаче, как к научной проблеме

• Запуск минимальных фич

• Баланс между новым и поддержкой

r&d vs support• Тяжелый выбор

• Приходится дергать людей

• Иногда группируем поддержку в большие задачи

• Есть код, который поддерживаем 8 лет

• Выделенной роли нет

Наши ответы

• Продаем только готовое

• Подход к задаче, как к научной проблеме

• Запуск минимальных фич

• Баланс между новым и поддержкой

• Иногда откладываем

Progress -> New• Бывает, что фича слишком много съела время

• Stop loss!

• Через 3 месяца будут новые инструменты

• Или новый человек

• Надо уметь откладывать

Обеспечение качества

• Софт vs сервис

ПО и сервис• Сервис решает проблему

• Софт работает так, как запрогали

• Софт один на всех, сервис каждому свой

• Стараемся делать то, что годится всем

• Убираем то, что смущает

Обеспечение качества

• Софт vs сервис

• Сложности тестирования highload

Тестовый сервис

• Нереально воспроизвести нагрузку на стенде

• Для отладки нужен странный сервис

• Надежнее всего иметь пиратский сервис на тесты

• Но опасно организационно

Обеспечение качества

• Софт vs сервис

• Сложности тестирования highload

• Continuous install

Continuous ready

• Каждый коммит в мастер — рабочий пакет

• Ежедневно по 8-10 скачек новых сборок

• Фичи opt-in, потом opt-out, потом включаются

Обеспечение качества

• Софт vs сервис

• Сложности тестирования highload

• Continuous install

• Юнит-тесты — нет

Юнит-тесты зло

• Фиксируют внутреннее API

• Очень хрупкие

• Мало живут

• Дорогие в написании

Обеспечение качества

• Софт vs сервис

• Сложности тестирования highload

• Continuous install

• Юнит-тесты — нет, интеграционные — да

Тесты• Интеграционные тесты рулят

• Замещают ручного тестировщика

• Обязательны регрессионные тесты

• Внешне протокольные, хаотичные

• Есть 6-летние тесты

Резюме• Инертный b2b рынок

• Сложные непрогнозируемые задачи

• Отделяем себя истеричный рост клиентов

• Аккуратно пишем и хорошо тестируем

• Спим по ночам и отдыхаем по выходным

Вопросы?

Макс Лапшин [email protected]