ivanovv1972

ivanovv1972

Я создатель Sprint Intelligence. Более 30 лет в разработке: прошел путь от разработчика до руководителя команды. Люблю превращать данные в понятные инструменты для управления разработкой
Пикабушник
Дата рождения: 27 апреля
80 рейтинг 2 подписчика 2 подписки 8 постов 0 в горячем
Награды:
Пикабу 17 лет!5 лет на Пикабу
0

Добавить кнопку за 10 минут? Конечно. Если это не продуктовая разработка

Серия Аналитика в разработке

После предыдущей статьи я получил массу хейта и фразы типа:

"Да что там делать? Кнопка за десять минут."

И знаете что? Они абсолютно правы. Но только если речь идет не о продуктовом проекте.

Представьте 2 проекта

Проект №1

Есть лендинг и задача "Добавить кнопку" это всего лишь:
1 Сверстать
2 Запушить
3 Готово

Ну сколько на это все надо времени - час максимум, если еще сходить кофейку попить.


Проект №2

  1. Есть продукт на котором 100 тысяч пользователей.

  2. Работают 40 разработчиков.

  3. На проекте 18 микросервисов.

  4. Три мобильных клиента.

  5. Личный кабинет.

  6. API.

  7. BI.

  8. Яндекс Метрика.

  9. Prometheus.

  10. Grafana.

  11. ClickHouse.

  12. PostgreSQL.

  13. Redis.

  14. RabbitMQ.

  15. Интеграции.

  16. A/B-тесты.

  17. Роли.

  18. Логи.

  19. Фича-флаги.

И приходит задача.

Добавить кнопку "Скачать отчёт".

И вот здесь-то и начинается самое интересное )

Что такое "кнопка" в продуктовом проекте?

Она должна...

  • отображаться только нужным пользователям;

  • учитывать тариф;

  • учитывать права;

  • попасть в аудит действий;

  • отправить событие в аналитику;

  • попасть в Яндекс Метрику;

  • попасть в Google Analytics (если используется);

  • записаться в ClickHouse;

  • обновить дашборд продукта;

  • не сломать мобильное приложение;

  • не ухудшить Core Web Vitals;

  • работать через API Gateway;

  • попасть в документацию;

  • покрыться тестами;

  • пройти ревью;

  • пройти CI;

  • пройти staging;

  • попасть в production.

  • вроде все перечислил )))

И только потом пользователь нажимает кнопку.

И тут конечно вы спросите меня а зачем это все?

Потому что бизнес хотел узнать:

  • сколько раз скачивают отчет;

  • кто скачивает;

  • пользователи какого тарифа скачивают;

  • после какого действия скачивают;

  • сколько времени проводят перед скачиванием;

  • влияет ли новая кнопка на конверсию;

  • не падает ли производительность.

И внезапно выяснилось, что стоимость самой кнопки составила процентов пять от всей задачи.

Ну и как резюме: Продукт — это не код.

Продукт — это постоянные ответы на вопросы.

Кнопку нажали?

Хорошо.

А теперь скажите:

  • кто?

  • сколько?

  • когда?

  • зачем?

  • после какого сценария?

  • какая конверсия?

  • стало лучше или хуже?

  • сколько денег это принесло?

И если вы не можете ответить на эти вопросы...

...значит, вы не сделали продуктовую разработку.

Вы просто написали код ))

Хейтерам - картинки сгенерированы, текст мой )

Показать полностью 2
3

Ответ ARMS.Studio5 в «"Это задача на пять минут". Самая дорогая фраза в разработке»2

Спасибо за развернутый комментарий.

Кажется, вы как раз подтвердили главную мысль статьи.

В продуктовой разработке практически не бывает задач уровня «сделай кнопку».

Обычно задача звучит примерно так:

«Добавить элемент управления для скачивания отчёта в зависимости от прав пользователя, с аудитом действий, поддержкой мобильной версии, локализацией и существующей системой ролей.»

И вот в такой постановке сама кнопка действительно занимает минут пять. Всё остальное — анализ, интеграция, тестирование, ревью, проверка прав, регрессия и т.д. — занимает часы, а иногда и дни.

Что касается опыта — программирую я достаточно давно. Когда я писал на ассемблере для процессора ВМ80, родители некоторых нынешних комментаторов ещё даже не были знакомы. 🙂

Поэтому статья была не про CSS или умение сверстать кнопку, а про то, что в зрелом продукте стоимость изменения почти никогда не определяется количеством строк кода.

2

«Это задача на пять минут». Самая дорогая фраза в разработке2

Серия Аналитика в разработке

Наверное, каждый разработчик хотя бы раз слышал эту фразу.

— Да там же небольшое изменение.
— Это буквально на пять минут.
— Просто кнопку добавить.

И почти всегда после этих слов начинается история, которая заканчивается совсем не через пять минут.

"Всего лишь кнопку"

Однажды приходит задача.

Нужно добавить кнопку "Скачать".

Звучит действительно просто. Разработчик открывает проект. Оказывается, дизайн для новой кнопки не готов. Пишет дизайнеру.

Пока ждёт — замечает, что компонент кнопок используется ещё в десяти местах.После обновления дизайна выясняется, что на мобильной версии новая кнопка ломает вёрстку.

Исправили.

Теперь оказывается, что скачивать нечего — API не отдаёт нужный файл. Добавили новый метод.

Потом выясняется, что у некоторых пользователей нет прав на скачивание. Добавили проверку доступа.

После этого QA находит проблему. Если пользователь открывает страницу из закладок, кнопка исчезает.

Исправили.

Затем деплой и уже в продакшене оказывается, что в Safari всё работает иначе.

И конечно же кнопка появилась, но прошёл ДЕНЬ, хотя сама кнопка действительно писалась минут пять.

Код редко занимает большую часть времени

Есть интересное наблюдение.

Когда люди говорят:

"Сделать задачу"

Они представляют именно написание кода. Хотя на практике код — это зачастую лишь небольшая часть всей работы.

Остальное время уходит на:

  • понимание задачи;

  • поиск нужного места в проекте;

  • анализ существующей логики;

  • обсуждения;

  • изменения API;

  • тестирование;

  • исправление найденных ошибок;

  • код-ревью;

  • деплой;

  • проверку в продакшене.

Иногда написание самого решения занимает всего 10–20% времени.

Чем старше проект, тем меньше в нём "пятиминутных" задач

На новом проекте действительно можно быстро что-то добавить.

Но когда системе несколько лет...

...любое изменение начинает цеплять другие части.

Добавили одно поле и сломались отчёты.

Исправили отчёты и перестали проходить интеграционные тесты.

Исправили тесты.

Поменялась сериализация и упал мобильный клиент.

Каждый опытный разработчик знает эффект:

маленьких изменений почти не бывает.

Почему разработчики так не любят фразу "на пять минут"

Не потому что ленятся.

А потому что знают, что оценивается только видимая часть задачи.

Никто заранее не видит:

  • старые зависимости;

  • забытый код десятилетней давности;

  • неожиданное поведение;

  • сторонние сервисы;

  • особенности браузеров;

  • ограничения архитектуры.

Это как попросить строителя:

"Да просто стену передвинь."

Пока не начнёшь двигать — не узнаешь, что она несущая.


Как лучше ставить задачи

Вместо:

Это на пять минут.

Лучше сказать:

Посмотри, пожалуйста, насколько это действительно сложно.

Кажется мелочью, но психологически это совершенно другой разговор.

Разработчик перестаёт оправдываться и начинает искать решение.


Самое интересное

За годы работы я заметил одну закономерность.

Когда руководитель начинает использовать выражение:

"Ну это же быстро..."

почти всегда именно эта задача неожиданно становится самой дорогой в спринте.

И не потому что кто-то плохо работает. А потому что сложность разработки редко находится в самом коде.

Она скрывается вокруг него.


Код пишется быстро. Долго приходится разбираться со всем, что этот код затрагивает.

Если вам интересны темы управления разработкой, предсказуемости спринтов и инженерных процессов — иногда пишу об этом здесь. Ещё больше материалов собираю на sprint-intelligence.ru

Показать полностью 2

«Мы закончили задачу». Нет, не закончили

Серия Аналитика в разработке

Когда я был разработчиком и писал свои проекты, для меня всё было просто. Написал код. Проверил. Смёржил. Всё, задача готова. Потом стал тимлидом.

И оказалось, что между «код написан» и «задача действительно закончена» может пройти ещё несколько дней. Пока дождутся ревью. Пока протестируют. Пока выяснится, что забыли миграцию.

Пока продукт посмотрит и скажет: «Я вообще не это имел в виду».

И самое интересное — разработчик в этот момент уже считает задачу завершённой.


Из-за этого почти в каждой команде возникает одна и та же проблема.

Разработчики говорят:

Мы сделали 20 задач.

Менеджер отвечает:

А пользователи получили только 12.

И ведь оба правы.

С тех пор я перестал считать задачей то, что лежит в колонке "На ревью".

И даже "Готово к тестированию" — ещё не готово.

Для меня задача заканчивается только тогда, когда её можно показать пользователю без слов:

«Тут есть пара нюансов...»


Смешно, но именно эта разница чаще всего и объясняет, почему команда уверена, что всё идёт по плану, а бизнес — что разработка постоянно задерживается.

Они просто по-разному понимают слово «готово».

А у вас в команде когда задача считается завершённой?

  • После merge?

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

  • После выкладки?

  • Или только после того, как ей реально начали пользоваться?

P.S. Если вам интересны темы про управление разработкой без корпоративной мишуры — иногда пишу об этом и делаю сервис Sprint Intelligence для команд разработки.

Показать полностью 2

Самый опасный проект — тот, в котором все молчат

Серия Аналитика в разработке

Иногда тишина в проекте страшнее сотни сообщений.

Помнится один спринт, я тогда еще тимлидил. Рабочий чатик почти пустой. Никаких споров. Никаких вопросов. Никаких «не получается». Созвоны - тихо, спокойно, за 5 минут

Все задачи уверенно стоят в статусе «В работе».
Команда выглядит вполне спокойной. Руководство молчит, видимо радуется в тишине ))

И вот именно тогда мне стало тревожно


Большинство руководителей радуются, когда в рабочем чате тихо.

Я — наоборот. За несколько лет управления разработкой я заметил странную закономерность.

Чем тише проект...

...тем громче обычно заканчивается релиз.


Когда команда работает она действительно шумит

В хорошем проекте постоянно происходит что-то из этого:

— мой дотошный фронт который вечно задает вопросы;
— кто-то спорит с постановкой задачи;
— тестировщик находит странный сценарий;
— разработчик пишет, что API нужно изменить;
— аналитик уточняет требования;
— дизайнер приносит новый макет.
Со стороны кажется, будто проект погружается в хаос.
На самом деле именно так выглядит здоровая работа и проблемы всплывают сразу.
И решаются сразу.


Настоящие проблемы любят тишину

Самые неприятные истории почти всегда начинаются одинаково.

Неделя проходит идеально, да и вторая тоже. Все статусы зелёные и спринт идёт по плану.
А потом...
За два дня до релиза выясняется, что два сервиса используют разные версии API.
Или оказывается, что разработчик неделю писал функциональность по устаревшему ТЗ.

Или тестирование вообще не начиналось, потому что никто не сообщил о блокере.
Никто и ничего не скрывал.

Да просто никто ничего не говорил!


Почему так происходит?

Есть такой интересный психологический эффект.

Когда люди долго не обсуждают проблемы, начинает казаться, что проблем нет. Но разработка работает наоборот. Если сегодня я или еще кто-то не поднял сложный вопрос, это не означает, что его нет.

Потому что чаще всего это означает, что о нём узнают позже.

А позже как известно — всегда дороже.


После таких ситуация я обычно спрашивал разработчика:
— Почему молчал три дня?
Ответ был неожиданно честным.

Думал, сам разберусь.

Не разобрался.
Потеряли почти неделю всей команды.


После этого я перестал считать отсутствие сообщений хорошим признаком. И мой хороший день выглядит иначе.
Утром появляется вопрос а через десять минут начинается обсуждение. Еще через полчаса находится решение.
И уже через час задача снова движется дальше.
Да, сообщений больше. Зато сюрпризов перед релизом гораздо меньше.


Хорошая команда — не самая тихая

Сегодня меня радует не пустой чат.
Меня радует чат, в котором люди не боятся сказать:

«Кажется, здесь проблема.»

Или:

«Не понимаю, объясните.»

Или:

«Мы недооценили задачу.»

Потому что именно после этих сообщений проект становится лучше. Молчание редко экономит время. Обычно оно просто переносит проблему на последний день.


Вместо вывода

В своей команде я смотрю не только на сроки и количество закрытых задач. Мне гораздо интереснее понять, когда команда перестала разговаривать.
Потому что именно после этого обычно начинают сдвигаться сроки, расти технический долг и появляться «неожиданные» проблемы.
И если тишина длится слишком долго — для меня это уже повод открыть проект и разобраться, что происходит на самом деле.


Если вам интересны темы управления разработкой, инженерных процессов и метрик команды — буду делиться подобными наблюдениями регулярно.
Если вам тоже не хватает прозрачности в работе команды, посмотрите демо

Буду рад любой обратной связи — проект еще развивается, и многие идеи появляются именно из таких обсуждений.

Показать полностью 1
0

«У нас всё под контролем». Фраза, после которой я начинаю переживать за проект

Серия Аналитика в разработке

Начинается вторая неделя спринта, утренний дейли и тут я слышу фразу:

  • У нас все под контролем
    И я ловлю себя на мысли, что именно после таких слов обычно начинается самое интересное.

Когда я много лет назад начинал работать разработчиком, я думал что мой руководитель знает все. Он же руководитель, он видит все ситуации со всех сторон. И он понимает полную картину.
А потом я сам стал руководителем разработки и оказалось что большая часть информации о проекте приходит не из системы а из разговоров.
Звоню фронтендеру:

  • Саш, что у тебя по задаче?

  • Почти готова, немного осталось.

  • Когда закончишь?

  • Думаю, завтра.

  • Помощь нужна?

  • Пока нет.

На следующий день выясняется что задача уперлась в бэкенд, потом в ревью, через день узнаю что задача уперлась в аналитика. Еще через 2 дня оказывается что проблема вообще в инфраструктуре.
И ведь никто не соврал, каждый видел свой маленький кусочек проекта и все искренне считали, что "все под контролем".

Как в старом фильме:

К пуговицам претензии есть?

К пуговицам претензий нет — пришиты насмерть.

Но со временем я начал замечать некоторую закономерность.
Чем чаще на проекте звучит фраза «У нас всё под контролем», тем меньше там объективных данных.

Потому что если действительно все под контролем, то за пару минут это можно показать цифрами:

  • сколько задач сейчас в работе;

  • где появились очереди;

  • что тормозит релиз;

  • какие задачи уже выходят за ожидаемые сроки;

  • где перегружена команда.

А если для того, чтобы мне выяснить любой вопрос приходится делать созвон - то это уже не контроль. Это ручное управление.

И вот именно из таких ситуаций и родилась идея Sprint Intelligence. И мне совсем не хотелось делать еще один сервис.
Мне хотелось открыть одну страницу и за минуту понять, что происходит с разработкой на самом деле, без десятка сообщений в чате и бесконечных уточнений.

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

Буду рад любой обратной связи — проект еще развивается, и многие идеи появляются именно из таких обсуждений.

Показать полностью 2

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

Серия Аналитика в разработке
Почему руководитель разработки до сих пор управляет командой почти вслепую

Когда руководитель отдела продаж приходит на встречу с директором, он открывает CRM и за несколько минут отвечает практически на любой вопрос.

  • Сколько лидов пришло?

  • Какая конверсия?

  • Почему просели продажи?

  • Какие менеджеры перегружены?

  • Какие сделки находятся в зоне риска?

Маркетинг живет примерно так же.

Есть стоимость привлечения клиента, ROI, LTV, эффективность рекламных каналов и десятки других метрик.

Финансовый отдел тоже давно привык принимать решения на основе данных.

Доходы, расходы, прогнозы, отклонения от бюджета — всё доступно практически в режиме реального времени.

А теперь представьте аналогичный разговор с руководителем разработки.

— Почему сорвали прошлый спринт?

Именно этот вопрос несколько раз ставил меня в тупик.


Когда данных много, а ответов нет

За последние годы мне довелось руководить несколькими командами разработки.

У нас были вполне современные процессы:

  • двухнедельные спринты;

  • Story Points;

  • Code Review;

  • CI/CD;

  • Яндекс Трекер;

  • GitLab;

  • регулярные ретроспективы.

На первый взгляд казалось, что информации более чем достаточно.

В любой момент можно было открыть трекер и увидеть:

  • Velocity;

  • Burndown;

  • Cumulative Flow;

  • количество выполненных задач;

  • загрузку сотрудников.

Но каждый раз, когда возникал вопрос:

Почему мы не успели?

ответ приходилось искать вручную.


Самая дорогая фраза в разработке

Обычно обсуждение выглядело одинаково.

👨‍💻 Разработчики: «Было слишком много срочных задач.»

👨‍💼 Тимлид: «Мы ошиблись в оценке.»

📋 Продакт: «Требования постоянно менялись.»

🏢 Руководство: «Команда работает недостаточно быстро.»

Каждая версия выглядела убедительно.

Но была одна проблема.

Это были мнения.

Не данные.


Почему существующих отчетов недостаточно

Современные таск-трекеры отлично отвечают на вопрос:

Что произошло?

Но почти не помогают ответить на другой:

Почему это произошло?

Представьте ситуацию.

Спринт завершился с выполнением всего 70% запланированного объема.

Трекер покажет красивые графики.

Но не расскажет, что:

  • в середине спринта появилось двадцать новых задач;

  • несколько задач несколько раз меняли исполнителя;

  • критические задачи неделями ждали ревью;

  • один разработчик стал узким местом сразу для нескольких проектов;

  • значительная часть времени ушла на незапланированную поддержку.

Именно эти события могли стать настоящей причиной срыва сроков.

Но увидеть их в стандартных отчетах практически невозможно.


Что изменилось для меня

В какой-то момент стало понятно:

проблема не в отсутствии данных.

Наоборот.

Их слишком много.

Не хватает инструмента, который сможет превратить тысячи событий из GitLab и трекера в понятные управленческие выводы.

Не показать еще один график.

А ответить на простой вопрос руководителя:

Почему это произошло?


Вместо вывода

Мне кажется, в ближайшие годы инструменты для управления разработкой будут двигаться именно в этом направлении.

Не просто хранить задачи и строить графики.

А искать причины, прогнозировать риски и помогать руководителям принимать решения.

Сейчас мы как раз пытаемся построить подобный аналитический слой поверх Яндекс Трекера и GitLab. Если получится что-то действительно полезное, обязательно покажу результаты в следующих публикациях.

Если тема окажется интересной читателям, в следующей статье расскажу, какие метрики действительно помогают понять здоровье команды и почему классический Velocity далеко не всегда отражает реальную картину.

Показать полностью

Еще раз о нашей системе образования

Более года читаю Пикабу, вот сегодня решил сам стать писателем.

Потому что просто достало ))

Дочь, 3-й класс.

Задание по литературе: написать письмо известному писателю (например Пушкину).

Тема письма:

1. Поздороваться

2. Выразить свою благодарность за написанные произведения

3. Пожелать успехов в писательском труде

4. Выразить надежду на новые произведения.


Что? Что Карл? Пушкину? Который умер в 1837 году? Почти 200 лет назад?


Ладно, написали, выразили надежду что дойдет до Александра Сергеевича наше послание и что он воспрянет так сказать духом и напишет новые произведения.


Сегодня новое задание:

Написать письмо собаке Мальке, автор В. Белов (умер в 2012 году).

Собаке Карл!!!!

1. Поздороваться

2. Задать вопросы

3. Порассуждать о ситуации

4. Выразить свои мысли


И все это в виде письма. Собаке написать письмо! Собаке!!!

Я никогда не писал писем собаке, впрочем как и Пушкину.

Если кто сможет - подскажите что писать, а то меня разорвет )))

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества