что означает буква n в акрониме invest
Основы пользовательских историй. Часть 3: Инвестируйте в качественные пользовательские истории
Перевод: Александр Якима (www.enter-agile.com)
Независимый консультант, agile-тренер. В IT-индустрии с 2002 года. Работал менеджером проектов, программ, а также присейл-менеджером в аутсорсинговых компаниях и директором по разработке в стартапах Силиконовой долины. В 2007-2008 сотрудничал с тренинг-центром Luxoft.
Инвестируйте в качественные пользовательские истории
Гибкие команды проводят значительное количество времени (наверное, половину или даже больше) в исследовании, проработке и анализе пользовательских историй а также написании приемочных тестов для них. Так и должно быть, поскольку это подтверждает следующий факт :
Написание кода для уже понятой цели необязательно окажется самой сложной частью разработки продукта, наисиложнейшим скорее является понимание того, что является настоящей целью написания кода.
INVEST-модель является достаточно распостраненной и многие гибкие команды оценивают свои стори исходя из этих атрибутов. Ниже мы предлагаем наше видение того, как именно команда должна INVESTировать.
Независимость
Независимость означает, что стори может быть разработана, оттестирована и возможно даже доставлена сама по себе. В силу этого она может нести независимую ценность.
Многие из пользовательских историй обретут естественные, последовательно накапливающиеся зависимости, по мере наращивания функциональности продукта, и все же каждый кусочек может представлять собой независимую ценность. Например, продукт может показывать единичную запись, потом список, потом его упорядочивать, потом фильтровать, добавить постраничную навигацию, экспортирование списка, редактирование элементов и т. д. У многих из этих пунктов есть последовательные зависимости, и все же каждый из них предоставляет независимую ценность и продукт может быть потенциально доставлен, если разработка будет приостановлена в любой из этих точек.
Тем не менее, множество зависимостей, не несущих конечной пользы, являющихся техническими, либо функциональными, также имеют свойство попадать в бэклог – мы же их должны идентифицировать и упразднить. Вот пример функциональной зависимости, не представляющей собой пользы:
1) Как администратор я могу установить правила безопасности пользовательских паролей так, что пользователи будут обязаны создавать и поддерживать безопасные пароли, поддерживая безопасность системы.
2) Как пользователь я должен следовать правилам безопасности паролей, установленным администратором, чтобы поддерживать безопасность моей учетной записи.
В этом примере стори потребителя зависит от стори администратора. Стори администратора тестируема только лишь на предмет установки, очистки и сохранения политики безопасности, однако не тестируема с точки зрения применения политики для конечного потребителя. Кроме этого, имплементация стори администратора не ставит продукт в потенциально доставляемый вид – а поэтому не несет независимой полезности.
Путем пересмотра пользовательских историй (и архитектуры системы) мы можем удалить зависимости переразбив стори иным способом – в нашем случае по типу политики безопасности и соединяя воедино установку политики и ее применение в каждой стори:
1′) Как администратор я могу установить период истечения действия пароля, таким образом пользователи будут обязаны периодически менять пароли.
2′) Как администратор я могу установить характеристики сложности пароля, так что пользователи будут обязаны создавать пароли, которые сложно подобрать.
Теперь каждая история может существовать сама по себе и может быть реализована, оттестирована и доставлена вполне независимо.
Обсуджаемость
В отличие от традиционных требований, пользовательская история не является соглашением об определенной функциональности, а скорее вместилищем для таких требований, которые еще предстоит обсудить, реализовать, оттестировать и принять. Этот процесс обсуждения между бизнесом и командой адекватно отображает правомерность и первоочередность информации, исходящей от бизнеса, но также и предрасполагает к исследованию через сотрудничество и фидбек.
В наших прошлых компаниях с вертикальной организационной структурой написанные требования порождали ограниченный объем коммуникации между отделами и служили в качестве записи о прошлых соглашениях. Agile же наоборот, основан на идее того, что командный подход более эффективен в решении проблем в динамической среде (одна команда, в которой присутствуют и техперсонал и бизнес в лице продакт оунера, вместо сотрудничества между разнородными департаментами компании – примечание автора перевода). Пользовательская история является структурированным средством реального времени для эффективного использования этого действенного непосредственного общения и подхода к сотрудничеству.
Наконец, обсуждаемость пользовательских историй позволяет командам достичь предсказуемости. Отсутствие чрезмерно ограничивающих и слишком детализированных требований совершенствует способность команды и бизнеса находить компромиссы между объемом функциональности и датой доставки. Поскольку каждая стори допускает определенную гибкость, у команды тоже возникает больше гибкости в выполнении целей релиза, что увеличивает надежность и усиливает доверие.
Польза
Цель гибкой команды проста – доставить максимальную пользу в рамках доступного времени и ресурсов. Поэтому польза (иногда мы ее называем ценность – прим. автора перевода) является наиболее важным атрибутом в INVEST-модели и каждая пользовательская история должна представлять определенную ценность пользователю, заказчику или стейкхолдеру продукта. Приоритеты в бэклогах выставляются на основании пользы стори и весь бизнес переживает успех или терпит крах в зависимости от пользы, которую команда способна доставить.
Типичный вызов, с которым сталкиваются команды – научиться писать небольшие, инкрементальные пользовательские истории, подходящие для эффективной доставки ценности. Традиционные подходы запечатлели в нас алгоритм функциональной разбивки требований на технические компоненты. Этот подход «технического наслоения» при разработке систем замедляет доставку до тех пор, пока все слои не будут соединены воедино в результате многочисленных итераций. Вейк 9 (Wake) предлагает свое видение скорее вертикального, чем технического (горизонтального), наслоения:
Представьте себе всю стори как слоеное тесто, то есть сетевой слой, слой работы с данными, слой бизнес-логики и слой пользовательского интерфейса. При (горизонтальном) разделении стори мы подаем только часть пирога. Но мы хотим дать пользователю возможность прочувствовать вкус всего пирога сразу и самый лучший способ достичь этого – резать вертикально сквозь слои. У разработчиков очень часто преобладает наклонность работать только с одним слоем за раз (и таким образом сделать его «правильно»); однако полноценный уровень доступа к данным (к примеру) не имеет почти никакой ценности для пользователя, если в системе нет пользовательского интерфейса.
Создание полезных стори требует от нас переориентировать наше мышление посредством разбиений от горизонтального к вертикальному. Мы создаем пользовательские истории, «режущие» архитектуру насквозь, так чтобы мы могли предоставить ценность пользователю и рассчитывать на его фидбэк настолько рано и часто, насколько это возможно.
Несмотря на то, что обычно ценность сфокусирована на пользователе, взаимодействующем с системой, иногда все же польза более естественно фокусируема на представителе заказчика или ключевом стейкхолдере. Например, директор по маркетингу энергокомпании запрашивает более высокий показатель переходов по банерам на сайте. Хотя стори и может быть записана с точки зрения пользователя:
Как пользователь я могу видеть другие тарифные планы, эффективнее привлекающие мое внимание, так что я могу подписаться на какую-то из них, лучше подходящую под мой образ жизни.
… однако, чтобы предоставить более четкое видение настоящей ценности, будет более естественным записать стори с точки зрения директора по маркетингу:
Как директор по маркетингу я могу предоставить пользователям новые тарифные планы, так что они с большей вероятностью будут продолжать потреблять электроэнергию у нас.
Другая трудность, с которой сталкиваются команды – это обоснование пользы от технических стори, таких как рефакторинг, апгрейд компонентов и т. д. Например, как продакт оунеру определить ценность такого:
Произвести рефакторинг системы логирования ошибок.
Формулируя ценность технического решения как пользовательской истории помогает донести бизнесу ее полезность. Например:
Как потребитель я могу получить полноценное и понятное сообщение об ошибке где-либо в продукте, так что я буду знать, что делать с проблемой. ИЛИ
Как инженер техподдержки я хочу, чтоб пользователь получал полноценное и понятное сообщение везде в рамках приложения, так чтобы он мог справиться с проблемой не обращаясь в техподдержку.
В этих последних примерах ценность очевидна и для пользователя, и для продакт оунера, и для стейкхолдеров, а также и для команды.
Эстимируемость
Хорошая пользовательская история эстимируема. Несмотря на то, что в бэклоге может лежать стори любого размера, для того, чтобы ее можно было реализовать и оттестировать в рамках одной итерации, команда должна быть способна предоставить приблизительную оценку ее сложности и объема работы, необходимой для ее завершения. Минимальная инвестиция в эстимирование стори – это определение того, войдет ли она в рамки одной итерации. Дополнительная точность в эстимировании увеличит предсказуемость команды.
Если команда не может проэстимировать стори, то стори отмечается как слишком большая либо, что она недостаточно определена. Если она слишком большая для эстимирования, то ее следует разбить на меньшие стори. Если стори слишком слабо определена для того, чтобы ее проэстимировать, тогда для уменьшения неопределенности следует применить функциональный спайк, так чтобы получилась одна или более эстимируемых пользовательских историй. (Каждый из этих случаев детально обсуждается в следующих главах).
Одним из основных преимуществ эстимирования пользовательских историй является не только представление о точном объеме, а и возможность вычленить скрытые предположения, недостающие критерии приемки и прояснить командное представление о стори. Таким образом, диалог, сопровождающий процесс эстимирования настолько же важен, а может и более важен, чем сама по себе оценка. Способность эстимировать пользовательскую историю сильно зависит от ее объема, как мы это увидим ниже.
Компактность
Пользовательские истории должны быть достаточно небольшими, чтобы их можно было выполнить в рамках итерации, в противном случае они не будут представлять ценности или не будут рассматриваться как завершенные под конец итерации. Хотя еще более компактные стори дают еще больше гибкости и продуктивности. Для этого есть две основных причины: увеличение пропускной способности и уменьшение сложности.
Увеличение пропускной способности
Как известно из теории массового обслуживания, более компактные пакеты проходят сквозь систему быстрее. Это один из ключевых принципов бережливого производства и отражен в законе Литтла (Little):
В стабильной системе (где пропускная способность, т. е. объем работы, который можно сделать за единицу времени, является постоянной величиной), мы должны уменьшить объем текущей работы, для того, чтобы уменьшить продолжительность цикла (временного промежутка между началом и завершением процесса). В нашем случае это означает – меньшее количество более компактных пользовательских историй пройдет цикл разработки быстрее.
Более того, когда система загружена полностью, она может стать нестабильной и проблема может нагромождаться. В сильно перегруженных системах большие пакеты двигаются сквозь систему непропорционально медленно, так как пропускная способность падает. (Представьте себе шоссе в час пик. У мотоцикла шансов нормально передвигаться значительно больше, чем у легковых автомобилей и грузовиков – значительно легче маневрировать компактными объектами при движении в нагруженной системе.) Поскольку команды разработчиков обычно заняты почти на полную нагрузку, а то и выше (80-120%), они также попадают в «час пик».
Рисунок 1. У больших пакетов больше продолжительность цикла и выше вариация.
Более компактные пользовательские истории проходят сквозь процесс разработки быстрее не только из-за их пропорционального объема, но и из-за меньшей сложности, а сложность нелинейно зависит от объема. Это лучше всего наблюдается в тестировании, где разветвленность системы тестов, необходимых для валидации функциональности, растет экспоненциально по отношению к объему самой функциональности. Это соответствует рекомендации по разработке чистого кода, а именно, Роберт Мартин [Martin 2009] предлагает следующие правила для функций системы:
О соотношении объема и независимости
Вполне законным является вопрос о связи между объемом и независимостью, так как выглядит логично, что меньшие стори увеличивают число зависимостей. Однако, меньшие стори, даже при некотором увеличении зависимостей, доставляют высшую пропускную способность и предоставляют более оперативный фидбэк от пользователя, нежели большие пользовательские истории. Поэтому сторонники Agile всегда склоняются к меньшим стори, а потом делают их еще меньшими.
Тестируемость
В полноценном Agile весь код является оттестированным, отсюда следует тестируемость стори. Если стори оказывается нетестируемой, значит она плохо сформирована, либо излишне сложна, или, может быть, зависит от других пользовательских историй в бэклоге.
Чтобы удостовериться в том, что стори не попадут в итерацию, если они не способны из нее выбраться (то есть быть успешно оттестированными), много гибких команд на сегодняшний день применяет подход: «сначала тесты». Это берет начало в XP-сообществах, использующих Разработку через тестирование (TDD) – практику написания автоматизированных юнит тестов перед написанием кода, который должен этим тестам удовлетворять.
С тех пор эта философия применяется при разработке критерия приемки стори и необходимых функциональных тестов прежде собственно кодирования. Если команда знает как оттестировать стори, значит вероятно они знают и то, как ее реализовать.
В связи с тестируемостью, пользовательские истории попадают в те же «ловушки», что и требования. Нечеткие слова, такие как быстро, управлять, красиво, чисто и т. д. легко пишутся, однако крайне тяжело поддаются тестированию, поскольку означают для разных людей разные вещи, и поэтому их следует избегать. И невзирая на то, что эти слова предоставляют определенный уровень обсуждаемости, ограничение их с помощью четких границ поможет команде и бизнесу синхронизировать ожидания результата и избежать больших сюрпризов.
Литература
Ответы на тесты по теме Маркетинг
Что означает буква «Т» в акрониме SWOT?
Выберите названия полей, соответствующие стратегии в сводной матрице SWOT-анализа, которая позволила бы избавиться от слабости и попытаться предотвратить нависшую угрозу:
Выберите названия полей, соответствующие стратегии в сводной матрице SWOT-анализа, которая должна быть построена таким образом, чтобы за счет появившихся возможностей попытаться преодолеть имеющиеся в организации слабости:
—> Выберите названия полей, соответствующие стратегии в сводной матрице SWOT-анализа, которая должна предполагать использование силы организации для устранения угроз:
Что означает буква «W» в акрониме SWOT?
SWOT-анализ предусматривает выявление и подробное рассмотрение:
Благоприятных возможностей для бизнеса, Угроз для компании
к внутренней среде
Выберите вариант правильного перевода букв акронима SWOT
Strengths, Weaknesses, Opportunities, Threats
К какой среде относятся факторы УГРОЗ в SWOT-анализе?
Что означает буква «O» в акрониме SWOT?
Выберите вариант правильного перевода букв акронима SWOT:
Strengths, Weaknesses, Opportunities, Threats
Выберите названия полей, соответствующие стратегии в сводной матрице SWOT-анализа по использованию сильных сторон организации для того, чтобы получить отдачу от возможностей, которые появились во внешней среде:
К какой среде относятся факторы СИЛ в SWOT-анализе
к внутренней среде верно
К какой среде относятся факторы ВОЗМОЖНОСТЕЙ в SWOT-анализе фирмы?
Что означает буква «S» в акрониме SWOT
Правильно ли сформулировано определение SWOT-анализа фирмы – «SWOT-анализ – это инструмент оценки стратегического положения фирмы, ее сильных и слабых сторон и внешней ситуации (возможностей и угроз)»?
выявление сил и слабостей фирмы, их сопоставления с возможностями и угрозами внешней среды, и разработку стратегии
К какому сектору SWOT анализа препарата АЛЬГЕРОН относится фактор «Слабые конкуренты»
Ни к какому из перечисленных/нет такого фактора в SWOT анализе препарата АЛЬГЕРОН
Расшифровка результатов: В чем разница тестов Abbott и «Вектор-Бест» на антитела
Большинство россиян до сих пор не совсем понимают, что, собственно, написано в документе с данными анализа крови на иммунитет к ковиду.
Фото © ТАСС / Represented by ZUMA Press
Какие в стране есть тест-системы и насколько они надёжны
В России ещё далеко не полностью перевели подсчёт антител к коронавирусу в стандарт Всемирной организации здравоохранения, рассказал Лайфу доктор медицинских наук, практикующий врач, профессор Антон Ершов. Он напомнил, что соответствующее указание Росздравнадзора вышло ещё в июле 2021 года.
Самое смешное, что после выхода этого документа коммерческие лаборатории на следующий же день всё реализовали, а государственные только-только до ума это довели, притом до сих пор ещё не все
Доктор медицинских наук, практикующий врач, профессор
» ratio=»1/1″ src=»https://static.life.ru/publications/2021/11/17/179319092032.7838.jpg» loading=»lazy» />
» ratio=»1/1″ src=»https://static.life.ru/publications/2021/11/17/179319092032.7838.jpg» loading=»lazy» />
К «общему знаменателю» решили привести показатели шести различных систем определения уровня антител к ковиду. Это система ARCHITECT от ирландской компании Abbott, германские Roche и Euroimmun, российская «Вектор-Бест», итальянская DiaSorin и китайская Mindray. Самой надёжной из всех профессор Ершов считает Abbott, а вот к Mindray, которую используют в поликлиниках, по мнению врача, есть серьёзные вопросы.
Эту систему вообще никто понять не может, и я её не советую. Раньше они писали, что они определяют антитела к N-белку (нуклеокапсидному), а теперь они вообще перестали что-либо внятное писать. Уверяют, что якобы к S-белку начали делать, но я не знаю. Я не вижу, чтобы их результаты совпадали с другими реагентами, поэтому для меня «Миндрея» нет
Доктор медицинских наук, практикующий врач, профессор
» ratio=»1/1″ src=»https://static.life.ru/publications/2021/11/17/179319092032.7838.jpg» loading=»lazy» />
» ratio=»1/1″ src=»https://static.life.ru/publications/2021/11/17/179319092032.7838.jpg» loading=»lazy» />
Он добавил, что претензии у медиков есть и ко многим другим тест-системам.
К сожалению, реагентами для определения этих антител недовольно медицинское сообщество. Эти антитела слишком сильно перекрёстно реагируют с теми антителами, которые вырабатываются у нас к обычному сезонному коронавирусу
Доктор медицинских наук, практикующий врач, профессор
» ratio=»1/1″ src=»https://static.life.ru/publications/2021/11/17/179319092032.7838.jpg» loading=»lazy» />
» ratio=»1/1″ src=»https://static.life.ru/publications/2021/11/17/179319092032.7838.jpg» loading=»lazy» />
Что такое IgA, IgG и IgM
Это разновидности иммуноглобулинов, которые вырабатываются для защиты от SARS-Cov-2. К примеру, наличие иммуноглобулинов А (IgA) — верный признак того, что у человека прямо сейчас есть ковид: эти антитела появляются на слизистых оболочках в острый период инфекции и довольно быстро (через пару месяцев) исчезают. Примерно то же самое можно сказать и об иммуноглобулинах М (IgM), но они вырабатываются не только на слизистых, а главное — они не настолько специфичны, то есть точно такие же антитела могут появляться и в ответ на другие инфекции, а значит, их наличие не доказывает на 100%, что у человека именно CoViD-19. А самые долговечные и при этом достаточно специфичные — иммуноглобулины G (IgG), они обезвреживают коронавирусные «шипы» (S-белки) и формируются уже на поздних стадиях болезни, зато сохраняются месяцами. Поэтому их «смотрят» все (или почти все) имеющиеся в мире тест-системы. Каждый из этих типов антител по-своему показателен, но выявлять их все одновременно — не всегда хорошая идея, уверен доктор медицинских наук.
Ряд компаний сделали реагенты для выявления антител к цельному S-белку, они хотели как лучше, а получилось как всегда: в итоге реагенты определяют одновременно антитела и к SARS-Cov-2, и к обычному сезонному коронавирусу, естественно, из-за этого завышенные показатели получаются
Доктор медицинских наук, практикующий врач, профессор
» ratio=»1/1″ src=»https://static.life.ru/publications/2021/11/17/179319092032.7838.jpg» loading=»lazy» />
» ratio=»1/1″ src=»https://static.life.ru/publications/2021/11/17/179319092032.7838.jpg» loading=»lazy» />
В чём измеряют антитела
Каждая из перечисленных систем пользуется своими собственными единицами измерения. Соответственно, отличаются и показатели положительного («антитела обнаружены»), и отрицательного («антитела не обнаружены») результатов. Именно это и создаёт путаницу: скажем, цифра 20 по одной системе — очень неплохой результат, а по другой, считай, ничего. Единица измерения по стандарту ВОЗ — BAU: Binding Antibody Units — «единицы связывающих антител». Её изначально использовала отечественная система «Вектор-Бест». Росздравнадзор поделился формулами, по которым результаты других тестов можно перевести в BAU, смотрите таблицу ниже.
Сколько антител достаточно?
На сайтах нескольких российских клиник указано так:
Однако Антон Ершов подчеркнул, что категорически не согласен с официально принятыми в стране оценками надёжного иммунитета к коронавирусу.
Я считаю, показатели необходимого уровня иммунитета занижены. Мы видим, что на таких значениях, какие указываются, люди заболевают очень легко
Доктор медицинских наук, практикующий врач, профессор
» ratio=»1/1″ src=»https://static.life.ru/publications/2021/11/17/179319092032.7838.jpg» loading=»lazy» />
» ratio=»1/1″ src=»https://static.life.ru/publications/2021/11/17/179319092032.7838.jpg» loading=»lazy» />
По мнению доктора медицинских наук, менее 500 BAU/мл означает ничтожный уровень антител, а по-настоящему надёжную защиту может обеспечить как минимум 1000 BAU/мл.
Всё, что выше 500 BAU, — это хороший уровень
Доктор медицинских наук, практикующий врач, профессор
Акронимы и бэкронимы в английском
Иногда аббревиатуры в виде акронимов и бэкронимов на английском языке могут содержать в себе абсолютно неожиданную расшифровку и перевод на русский язык. Сегодня Евгений подробно расскажет о том, что же такое «акроним» и «бэкроним» и приведет несколько интересных примеров таких сокращений.
Acronym (акроним) — это слово или имя, сформированное как аббревиатура и образованное из начальных компонентов во фразе или слове, как правило из отдельных первых букв, например: NATO – North Atlantic Treaty Organization (Североатлантический Союз), или слогов, например: Benelux — политико-экономический союз, состоящий из стран Belgium, Netherlands и Luxemburg.
Вероятно, вы встречали слово «Captcha», которое является примером современного акронима. CAPTCHA — это искаженный до неузнаваемости текст, необходимый для ввода во время процедуры регистрации на веб-сайте, например, для отправки комментария к статье. Расшифровывается акроним как «Completely Automatic Public Turing test to tell Computers and Humans Apart» (Полностью автоматический тест Тьюринга для различия компьютеров и людей).
Интересно то, что в английском языке существует термин «Backronym» (бэкроним), который представляет собой противовес понятию «Acronym». Backronym — это фраза, построенная таким образом, что уже существующее слово рассматривается как аббревиатура какого-либо понятия.
Например, английский романист и критик 20 века однажды предложил, что слово «Book» может расшифровываться как «Box Of Organized Knowledge» (Коробка упорядоченных знаний!). Классическим примером из реального мира является предшественник известного компьютера Apple Macintosh — The Apple Lisa, название которого ассоциировали с «Local Integrated Software Architecture», но на самом деле он был назван в честь дочери Стива Джобса, рожденной в 1978 году.
Бэкронимы довольно часто используются с целью создания комического эффекта. Примером такого случая может быть название группы или организации A.C.R.O.N.Y.M, которое, наряду с другими вариантами, может означать «A Clever Regiment of Nerdy Young Men» (умный полк молодых мужчин-ботанов!).
Изучаете английский язык?
Оставьте заявку и мы подберём вам подходящую программу обучения и преподавателя