Спецификация на основе примера
Спецификация на основе примера требует от представителей деловых кругов подробно описать реалистичные сценарии, как программное обеспечение будет использоваться, и эти примеры используются для определения объема проекта. Данный подход имеет два основных преимущества – во-первых, он стимулирует общение между владельцами бизнеса, которые выступают в роли заказчика проекта, и командой разработки программного обеспечения. Во-вторых, такой подход помогает разработчикам согласовывать характеристики программного обеспечения с помощью проведения приемо-сдаточных испытаний с пользователями. Когда все сделано правильно, технические характеристики могут быть проверены с помощью автоматизированных программных тестов.
Для того чтобы спецификация на основе примера как подход могла добиться успеха, важно, чтобы владельцы бизнеса предоставляли команде разработчиков точные примеры, которые иллюстрируют, как каждый отдельный элемент системы должен себя вести. Это в равной степени важно и для команды разработчиков, чтобы они могли легко убедиться, что каждый элемент спецификации на примере является тестируемым. Однако спецификация на основе примера может дать неудовлетворительные результаты, если примеры сосредотачиваются на том, как программное обеспечение работает, а не на том, каких бизнес-целей оно стремится достичь. Этот подход представляет собой пример, где общение и сотрудничество станут ключевыми факторами. Например, если заказчики тратят слишком много времени, описывая, какой они хотели бы увидеть онлайн-форму, руководителю проекта спецификации на основе примера необходимо перевести фокус разговора обратно на то, как данные, которые вводятся в эту форму, будут или могут быть использованы для повышения производительности, прибыльности и роста бизнеса. Когда проект спецификации на основе примера осуществляется надлежащим образом, это может упростить проектирование, уменьшить количество ненужного кода в разработке и ускорить внедрение системы за счет сокращения или устранения петли обратной связи.
Спецификация на основе примера часто используется в итерационных методах разработки программного обеспечения, таких как Agile, Scrum и Extreme Programming. В зависимости от подхода примеры, которые предоставляют заказчики, также могут именоваться как исполняемые требования или сценарии использования. Как команда решает называть эти проектные компоненты не важно - единственное, что имеет значение, это тот факт, что команда соглашается говорить на общем языке и использует его постоянно. Не менее важно, что документация создается и обновляется в течение всего проекта, чтобы код мог быть легко сохранен или обновлен, когда проект закончится. Менеджеры проектов спецификации на основе примеров называют это «живой документацией». Независимо ни от чего, когда команда решает обратиться к документации проекта, она должна служить способом для ИТ-команды продемонстрировать дополнительную ценность для бизнеса, когда требуется внести изменения в существующий продукт.
Идея концепции спецификации на основе примера принадлежит Гойко Аджику, консультанту по разработке программного обеспечения, который написал книгу в 2011 году под названием "Спецификация на примере: как успешные команды разрабатывают правильное программное обеспечение". В реальном мире концепции, представленные в этой книге, также могут быть отнесены к основанной на примере (example-driven development (EDD)) или к основанной на поведении разработке (behavior-driven development (BDD)), двум аналогичным подходам, которые также являются темами отдельных трудов.