Содержание

Definition of Done, или кто за что отвечает

Нет ничего проще, чем ответить на вопрос: «Вы это сделали или нет?». Но гораздо сложнее добиться одинакового понимания ответа обеими сторонами: бизнесом, который ставит задачи, и самой разработкой, которая их решает.

Думаю, ни один проект не будет успешен, если не привести бизнес и технологию к общему знаменателю, и в этой связи Definition of Done выглядит одним из критически важных инструментов такого приведения.

Эта статья посвящена самому, как мне кажется, распространенному и опасному заблуждению, связанному с этим инструментом. Подавляющее большинство людей, которым я задавал вопрос «Кто определяет Definition of Done?», отвечали на первых секундах: «Клиент».

Минутка матчасти

Definition of Done — это набор критериев, которые позволяют понять, сделано ли то, что было целью разработки. Формат Definition of Done может быть любым, но чаще всего это простой список с перечнем активностей, которые должны быть успешно завершены, чтобы функционал мог считаться готовым.

Например:

  • код написан;
  • юнит-тесты написаны и успешно выполнены;
  • код прошел ревью;
  • документация обновлена;
  • функциональное тестирование успешно завершено;
  • регрессионное тестирование успешно завершено.

Чем больше и объемнее Definition of Done, тем более строгим оно считается. И тем больше нужно времени и усилий, чтобы наш функционал добрался до желаемого состояния «сделано». И тем выше вероятность, что функционал будет работать в соответствии с ожиданиями бизнеса.

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

Кому это нужно

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

Конкретный способ управления разработкой, будь то эволюционировавший до некоего итеративного гибрида Waterfall или же чистый, как слеза, Scrum, при этом никакой роли не играет. Как, впрочем, и бизнес-модель компании-разработчика. Хоть внутренний продукт, хоть наружный, хоть мы продали клиенту дюжину тушек — конечная цель разработки одна и та же: производство программного обеспечения, которое работает и кому-то для чего-то нужно.

Сферический конь в вакууме

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

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

С другой стороны, единственное, в чем должна разбираться Команда — это разработка программного обеспечения. Опять же, было бы неплохо, чтобы Команда видела бизнес-цель за набором смешных цветных объектов в трекинговой системе, но ремарка та же, что и в предыдущем абзаце.

В сухом остатке у нас есть человек, который знает или думает, что знает, ЧТО делать, и не обязан знать КАК, и есть группа людей с горящими глазами, которая знает КАК, но пока не знает, ЧТО именно.

Ближе к делу

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

Обратите внимание, Клиент не ориентируется в 50 оттенках серого от «уже сделал локально» и «залил в dev, но еще не проверили» до «прошли все тесты на stage». Не ориентируется совсем и воспринимает фразу «Функционал готов» самым буквальным образом — готов быть залитым в живой production.

Соответственно, все остальные типы «готовности» для него с точки зрения бизнеса никакого смысла не имеют. Он мог, опираясь на оценки Команды, сжечь на костре маркетинга несколько десятков или сот тысяч долларов в процессе подготовки к запуску на определенную дату. И Falcon Heavy, который собран и красиво возвышается на платформе, но не может взлететь, Клиента, скорее всего, не устроит.

Поэтому Команде, мне кажется, было бы логично, давая определенные оценки по времени, иметь в виду именно этот тип готовности функционала. А для этого набор действий Команды по производству Продукта (или его инкремента), должен включать все виды активностей, необходимых для того, чтобы быть уверенными в качестве и работоспособности функционала.

Необходимых с чьей точки зрения?

Вот мы и подобрались к главному вопросу, на который значительная часть Команд отвечает неправильно. Прямо или косвенно спрашивает разрешения на включение в оценку по времени, к примеру, код ревью или юнит-тестов. Или другими словами, просит Клиента участвовать в формировании содержания Definition of Done.

Клиента! Но ведь Клиент — единственное причастное к разработке Продукта лицо, которое не знает, как разрабатывается программное обеспечение! Зачем у него спрашивать, и уж тем более, зачем у него спрашивать разрешения правильно делать работу Команды? В этом нет никакого бизнеса, это технология!

Естественно, не менее абсурдно выглядят и попытки Клиента ускорить разработку за счет «выставки народной резни» по качеству вообще и Definition of Done в частности: «А без юнит-тестов?», «А зачем мы тратим время на ревью?», «Зачем документация по API?», «Не рассказывайте сказки, я сам в 1812 году работал с перфокартами» и так далее.

Представьте, что к каменщику, которого наняли строить и который между рядами кирпичей кладет или ложит раствор, подходит Заказчик и говорит: «Слушай, мужик, зачем ты тратишь свое время и мои деньги на это месиво? Нельзя просто положить кирпич на кирпич, а раствора туда иногда для запаха между каждым десятым и каждым одиннадцатым рядом?!»

Представили? Выглядит просто сказочно. Конечно, все аналогии лживы по своей природе, но в чем принципиальная разница между этим примером и нашим случаем? И там, и там, Человек-ЧТО влазил и рассказывал Человеку-КАК — как тому делать его работу. Каменщик ведь не пытался построить оперный театр вместо дельфинария, он просто соблюдал технологию процесса. Не более того.

Кто виноват и что делать

Во-первых, Definition of Done должно быть. Причем даже если Команда не одна, а N, оно должно быть одно на всех.

Потому что если ваш цех по производству Kotlin-пасочек станет хронически обгонять цех RxSwift-пасочек по причине отсутствующего или гораздо менее строгого Definition of Done, мобильная разработка рискует превратиться в храм боли. Боли при общении с Клиентом.

При этом, естественно, усилия QA команды получат ярко выраженный Android-вектор, и это направление будет тормозить запуск всего Продукта в целом.

Позволю себе привести формулу для расчета количества Definition of Done в зависимости от количества команд:

NDoD = 1 NT

где NDoD — количество Definition of Done,
NT — количество Команд

Во-вторых, Definition of Done должно быть четко сформулировано и понятно всем причастным, включая Клиента. Но его источником должна быть технология, а не бизнес. Соответственно, если Команда хочет увидеть силы, которые не выделяют достаточного количества времени на тестирование, ей нужно посмотреть в зеркало.

После титров

И в завершение позволю себе пару небольших ремарок.

Да, есть определенная (и крайне незначительная) часть проектов, где единственное, что имеет значение — это время, даже в ущерб качеству. Но это исключение, которое подтверждает правило.

И нет, я не считаю, что это легко — не позволять Клиенту диктовать Definition of Done. Это трудно. Но если мы считаем себя профессионалами, подход должен быть профессиональным.

Наконец, все вышеизложенное — всего лишь личная субъективная точка зрения (других у меня нет). Надеюсь, вы сможете извлечь из этого материала что-то полезное.

Спасибо, буду крайне признателен за комментарии.

Все про українське ІТ в Телеграмі — підписуйтеся на канал редакції DOU

Теми: розробка

Что такое Jobs To Be Done и для чего она используется

Концепция Jobs To Be Done – это подход, позволяющий понять факторы, которые стимулируют людей на покупку чего-либо. Он используется командами при проектировании продуктов. Например, если речь идет о разработке мобильного приложения, то сразу возникает множество вопросов: «Для кого оно пригодится?», «Какую пользу оно приносит?», «Когда люди будут его использовать?» и так далее. Ответы на эти вопросы как раз и дает концепция Jobs To Be Done.

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

Что такое Jobs To Be Done

В мире ежедневно открываются тысячи стартапов, а в год это число превосходит миллионы. Однако только около 10% из них встают на ноги и начинают приносить свои плоды. Почему так? Потому что продукты создаются на энтузиазме – никто не думает об их пользе.

Применяя концепцию Jobs To Be Done (от англ. «работа, которая должна быть выполнена»), можно определить поведение людей и понять, почему они совершают те или иные действия для покупки чего-либо. Это позволяет делать оптимистичные прогнозы о том, какой пользовательский продукт будет востребован на рынке.

Одна из ключевых идей такого подхода заключается в том, что один и тот же продукт разные люди приобретают для разных целей. Иначе говоря, люди не покупают продукты, а «нанимают» их для выполнения конкретных задач и закрытия своих потребностей. Да, звучит довольно необычно, но в этом и есть прелесть концепции. Например, кто-то покупает смартфон, чтобы играть на нем в игры, кто-то – потому, что это модно, а пожилая женщина берет его, чтобы звонить внукам – все это можно обременить словосочетанием «нанимать продукт».

Смартфон выполняет «разную работу» для своих «клиентов»

Чаще всего при разработке любого продукта нужно понимание того, что из себя представляют пользователи продукта, который мы хотим продать. Для этого берутся образы клиентов – «персоны», «аватары» или «пользовательские истории» (User Story). В случае с Jobs To Be Done используется совершенно иной подход – Job Story. Это истории тех самых работ, на которые «нанимаются» продукты. Истории описывают ситуации, когда у пользователя появляется нужда в какой-то «работе», и отвечают на вопросы: какие потребности нужно реализовать и как продукт может сделать работу.

Давайте разберемся на примере конкретного продукта, как работает Jobs To Be Story.

Примеры

Пользователь: Семен, 25 лет.

Продукт: синтезатор.

Предположим, что есть некий Семен в возрасте 25 лет, который работает курьером, живет один, у него нет девушки, а его хобби – слушать музыку и смотреть фильмы. Вместе с этим у него скучный образ жизни и всего несколько приятелей, с которыми он изредка встречается в баре. Также у него есть музыкальное образование, полученное в детстве. 

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

Также есть еще один человек – Олег. Это старший брат Семена, который профессионально занимается музыкой, и его основной инструмент – синтезатор. Он также хочет его купить, но он ему нужен не для получения признания, а лишь для обновления ассортимента. Отсюда мы можем сделать вывод, что один продукт может использоваться разными людьми для совершенно разных целей.

Для таких Job Story принято использовать формулу: «Я, в качестве X, хочу Y, чтобы получить Z». Если подставить ее в историю с Семеном, то получится «Я Семен, мне 25 лет, работаю на скучной работе, сижу вечерами дома и смотрю фильмы (X), хочу получить признание со стороны окружающих и улучшить свою жизнь (Y), чтобы стать интересным для противоположного пола (Z)».

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

И еще один пример. Для чего «нанимают» приложение Telegram? Давайте посмотрим:

  • чтобы общаться с друзьями;
  • читать новости;
  • найти новые знакомства;
  • вести свой собственный канал и делиться интересными материалами;
  • вести свой канал и зарабатывать на этом.

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

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Кому Jobs To Be Done может помочь

Концепция Jobs To Be Done помогает всем, кому нужна эта помощь. Если у вас есть небольшая компания или просто продукт, который вы хотите отправлять на «работу», то можете уже начать работать по законам JTBD. Этот подход даст вам ответы на то, почему пользователи покупают ваш продукт и кому он вообще нужен.

Jobs To Be Done может помочь в разработке тех продуктов, которых еще нет на рынке. Если понимать, какие «работы» есть у пользователей, то можно определиться и с продуктом, который им нужен.

Ключевое отличие Jobs To Be Done

Основное отличие концепции от других подходов в том, что необходимо полагаться не на достоинства продукта, а на его функции. Главное – то, что он может дать пользователю во время эксплуатации. Даже если продукт будет с крутым дизайном и удобным интерфейсом, это еще ничего не значит. Все будет работать только при том условии, если продукт выполняет свою «работу» лучше всех.

Читайте также

Две интерпретации Jobs To Be Done

Принято выделять две интерпретации концепции – Jobs-As-Progress («работа» как прогресс) и Jobs-As-Activities («работа» как процесс). Первая пошла в обиход от группы авторов: это были Клэйтон Кристенсен, Алан Клемент и другие, а второй подход тесно связан с Энтони Ульвиком.

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

Jobs-As-Progress

Данный подход заключается в том, что покупатель должен стать лучше. Если вернуться назад к Семену, то здесь играет роль не доступ к синтезатору, а доступ к новым возможностям – можно научиться лучше играть на музыкальном инструменте, расширить свой кругозор и стать популярным. Все это долгосрочный процесс, именно поэтому такой подход и называется Jobs-As-Progress – «работа» как прогресс. Семен покупает музыкальный инструмент и постепенно продвигается в своих потребностях.

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

Jobs-As-Progress определяет ряд таких терминов, как желания, ограничения и решения о покупке. У покупателя есть потребности, есть ограничения и есть настрой изменить свою жизнь.

Jobs-As-Activities

В отличие от предыдущего подхода, Jobs-As-Activities направлен не на процесс, а на действие. Например, люди покупают швабру, чтобы воспользоваться ей для уборки. Или берут в аренду машину, чтобы доехать на ней до красивого места. Работа может быть функциональной, эмоциональной или ассоциироваться с использованием продукта.

Концепция Jobs-As-Activities говорит о том, что пользователи хотят совершать действия и задачи. Ее автор использует примеры «работ» по типу «построить дом», «скачать фильм», «покрасить стену» и так далее. Задачи стоят во главе всего анализа – любые эмоциональные соображения вторичны по отношению к функциональной работе.

Резюмируем: Jobs-As-Activities более функциональный, чем эмоциональный. Он осознанно не идет в первую очередь во внутренний мир покупателя. Мы берем продукт, чтобы выполнить конкретную задачу. В подходе Jobs-As-Progress, напротив, задачи и подзадачи не так важны, как главная цель. Если мы покупаем синтезатор, то он нам нужен не просто, чтобы на нем поиграть, а решить более глобальные вещи, например, найти признание.

Виды конкуренции в Jobs To Be Done

Принято выделять три вида конкуренции в Jobs To Be Done, о которых стоит помнить каждому, кто начинает разрабатывать свой продукт.

  • Прямая конкуренция – продукт выполняет одну и ту же работу одинаковыми способами. Например, пиццерии DoDo и Papa John’s.
  • Вторичная конкуренция – продукты выполняют одну работу совершенно разными способами. Например, взять бизнес-встречи: они могут проходить удаленно или офлайн в офисе. Такую «работу» может выполнить рейс Пекин-Нью-Йорк, либо просто мессенджер для созвонов по типу Zoom.
  • Непрямая конкуренция – продукты выполняют разную работу с конфликтующим результатом. Например, Дима обожает есть бургеры, но в то же время хочет быть спортивным. Бургер в McDonald’s и фитнес-браслет Xiaomi решают разные проблемы, но борются за одну целевую аудиторию.

Чтобы продвигаться вперед, нужно либо сделать «результат» другого продукта менее привлекательным в глазах пользователя, либо изменить позиционирование продукта, чтобы «результаты» больше не находились в конфликте.

Как это применить на практике?

Стоит понимать, что Jobs To Be Done – это не инструмент, а лишь теория, которая помогает понять, как люди принимают решения, как они выбирают и как используют продукт в дальнейшем.

Теория «работ» не заменяет никаких существующих подходов и рабочих схем: если у вас в компании выстроены свои процессы, например, вы используете Customer Development или CJM-карты, то все это можно отлично дополнить концепцию Jobs To Be Done.

А вот что нужно сделать для ее реализации:

  • сначала необходимо определить цели и задачи исследования;
  • затем сформулировать гипотезы, которые нужно проверить;
  • провести опрос или интервью потенциальных клиентов;
  • начать работать с данными, которые были получены в ходе беседы;
  • составить Job Stories на основе полученных данных;
  • на последнем этапе начать создавать продукт, который будет приносить плоды.

Заключение

Концепция Jobs To Be Done – это «работа», которая должна быть выполнена конкретным продуктом или услугой. Она помогает создавать по-настоящему крутые вещи – они не будут лежать в столе и ими будут пользоваться те, кому это нужно.

Выше мы рассмотрели лишь базовые определения концепции, на основании которых вы уже можете представить, как это функционирует. Фокусируйтесь на проблемах пользователя и помогайте ему переводить их из статуса «надо сделать» в «сделано».

Готово Определение и значение — Merriam-Webster

1 из 2

ˈdən 

причастие прошедшего времени сделать

сделать

2 из 2

1

: наступило или закончилось

Еще один вопрос, и мы закончили.

2

: обречены на неудачу, поражение или смерть

3

: ушел к : более

День цирка закончился.

4

: физически истощены

5

еда : достаточно приготовлено

Проверить готовность мяса.

6

: соответствует общественным традициям

не готовое

Синонимы

Прилагательное

  • полное
  • завершено
  • заключил
  • вниз
  • закончилось
  • завершено
  • больше
  • закончился с
  • прекращено
  • с
  • по
  • up

Просмотреть все синонимы и антонимы в тезаурусе 

Примеры предложений

Прилагательное Проверьте, готово ли мясо . В то время развод еще не был сделан .

История слов

Первое известное употребление

Прилагательное

14 век в значении, определенном в смысле 1

Путешественник во времени

Первое известное использование сделано было в 14 веке

Посмотреть другие слова того же века

Словарные статьи Рядом с

done

дондом

сделанный

сделанная сделка

Посмотреть другие записи поблизости

Процитировать эту запись «Сделанный.»

Словарь Merriam-Webster. com , Merriam-Webster, https://www.merriam-webster.com/dictionary/done. По состоянию на 10 апреля 2023 г.

Копировать ссылку

Детское определение

Готово

1 из 2

ˈdən 

причастие прошедшего времени сделать

сделать

2 из 2 прилагательное

1

— используется для обозначения того, что что-то закончилось

2

: приготовлено полностью или достаточно

3

: социально приемлемо

развод просто не был , сделанный в то время, когда

4

: Обречен на неудачу, смерть или поражение

5

: физически истощен

больше от Merriam-Webster на

, , , , , , , которых Понял .

Английский: Перевод done для говорящих на испанском языке

Britannica English: Перевод done для говорящих на арабском языке

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

Merriam-Webster без сокращений

Можете ли вы решить 4 слова сразу?

Можете ли вы решить 4 слова сразу?

слабый

См. Определения и примеры »

Получайте ежедневно по электронной почте Слово дня!

Готово Определение и значение | YourDictionary

прилагательное

Выполнено или завершено; законченный.

Дело сделано.

Американское наследие

Завершено; закончился.

Новый Свет Вебстера

Достаточно прожаренный.

Новый мир Вебстера

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

Это просто не сделано.

Новый мир Вебстера

Полностью изношен; измученный.

American Heritage

Synonyms:

  • Synonyms:
  • through-with
  • through
  • settled
  • ready
  • prepared
  • concluded
  • accomplished
  • over
  • doomed
  • past
  • exhausted
  • готово
  • приготовлено
  • обеднено
  • unchangeable

Antonyms:

  • Antonyms:
  • vetoed
  • denied
  • incomplete
  • unperfected
  • unfinished
  • undone
  • raw
  • rare

Advertisement

Webster’s New World

Done is определяется как совершение чего-либо в прошлом.

Пример того, чтобы что-то сделать, это вчера выполнить домашнюю работу.

ВашСловарь

(афроамериканский диалект, южноамериканский вариант английского языка, вспомогательный глагол в прошедшем времени) Используется для образования совершенного вида.

Я сделал все возможное, чтобы поднять вас всех.

Wiktionary

Synonyms:

  • Synonyms:
  • concluded
  • finished
  • fulfilled
  • performed
  • executed
  • effected
  • answered
  • served
  • sufficed
  • deciphered
  • proceeded
  • managed
  • produced
  • given
  • made

Antonyms:

  • Antonyms:
  • failed
  • undone
  • deferred
  • missed
  • passed
  • lost
  • neglected
  • destroyed
  • на холостом ходу

Идиомы, фразовые глаголы, относящиеся к Done

  • сделать
  • сделать за
  • сделать за
  • сделано (для)

Похожие статьи

Готово также упоминается в

  • collatitious
  • tonsure
  • caisson
  • machine
  • playful
  • unnecessary
  • manual-labour
  • underwater
  • slapdash
  • impossibility
  • a magician never reveals his secrets
  • open-collar

Advertisement

Найдите похожие слова

Найдите похожие слова на done с помощью кнопок ниже.

Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *