Команда надеется, что новая версия Chatty будет быстрее, красивее, совершеннее. А ещё там будут новые важные функции — возможность работать со словарём и карточками для проверки вокабуляра. Всё для драгоценных пользователей!
Требования к ПО
У термина «требования к ПО» есть несколько определений, и каждое из них описывает понятие с разных точек зрения. Самые распространённые определения звучат так:
Требование — это пригодное для практического применения представление проблемы, которую нужно решить, или возможности, которую нужно использовать. Требования акцентируют внимание на ценности, которую можно получить при их реализации. Требования можно представить в виде документа, набора документов или в ином соответствующем обстоятельствам виде (The Business Analysis Body Of Knowledge (BABOK) Guide — свод знаний по бизнес-аналитике, составляемый Международным институтом бизнес-анализа IIBA).Требование — это определение того, что должно быть реализовано. Оно описывает поведение системы, её свойства или атрибуты, которые могут стать ограничением для разработки (Ian Sommerville & Pete Sawyer).Требование — это всё, что влияет на проектирование ПО (Brian Lawrence).
Исходя из этих определений, можно вывести ключевые характеристики требований.
- Требование описывает решение проблемы. То есть требование — следствие возникновения определённой проблемы, которую оно должно решить.Например, пользователи Chatty не могут добавить незнакомые слова в личный словарь, хотя они нужны им для дальнейшего изучения. В этом случае требование, которое передаёт ожидания пользователей от ПО, звучит так: «Приложение Chatty должно позволять пользователям сохранять слова для дальнейшего изучения».А если Даня предложит добавить в Chatty, например, взаимодействие с умным домом, это не будет требованием, ведь он не является пользователем или заказчиком, непонятна цель такого нововведения.
- Требование применимо для практического использования и должно быть реализовано. Таким образом, требованиями не могут быть предположения, пожелания или намерения. Требование содержит конкретику — что именно нужно сделать.«Приложение Chatty должно поддерживать режим для слабовидящих» — это требование, которому должно соответствовать ПО.А слова: «Наверное, приложение Chatty должно поддерживать режим для слабовидящих, но это не точно. Возможно, слабовидящие не пользуются нашими продуктами» — это ещё не требование, лишь предположение.
Разные участники команды разработки не всегда одинаково понимают, что такое требования к ПО. Проясните со своим менеджером, что понимается под требованиями в вашем проекте.
Можно сформулировать требования к продукту и требования к проекту:
- Требования, описывающие свойства ПО (например, как оно должно работать), называют требованиями к продукту.
- Требования, относящиеся к организации работы команды, называют требованиями к проекту.
Важно их не путать. Бывает так, что требование к продукту затрагивает несколько проектов.
«Приложение Chatty должно поддерживать минимум 10 курсов» — требование к продукту.
«В проекте должны участвовать 10 разработчиков» — требование к проекту.
Требования к проекту
Требования к проекту включают в себя:
- Физические ресурсы, необходимые команде разработки, например: рабочее помещение, оборудование и прочее.
- Потребность в обучении персонала.
- Проектную документацию, в том числе руководство пользователя, и документацию для технической поддержки.
- Инфраструктурные изменения, которые необходимо внести в операционную среду ПО.
- Требования и процедуры для установки, конфигурирования, тестирования и выпуска нового продукта, а также для перехода со старой системы на новую систему.
- Требования по сертификации продукта, его соответствие требованиям регулирующих органов, правовой защите (патенты).
- Внутренние документы компании: её политика, процессы, структуры и прочее.
- Соглашение с клиентами об уровне обслуживания (Service Level Agreement — SLA). Например, гарантийное обслуживание.
Где описаны требования к проекту
Требования к проекту так же важны, как и требования к ПО. Но в спецификации требований к ПО, которую готовит системный аналитик, такие требования не раскрываются.
Для проектных требований используются другие документы — например, бизнес-план, руководство пользователя, техническая документация, если уже сделана предыдущая версия ПО. Как правило, в определении проектных требований помимо системного аналитика участвуют заказчики, менеджер и другие члены команды разработки.
Почему важно разрабатывать качественные требования к ПО
Требования — основа для создания продукта. Их можно сравнить с рецептом блюда. Если посетитель кондитерской хочет купить «Наполеон», а у повара есть соответствующий рецепт, кухня сможет приготовить этот торт. Заказчик будет доволен, а команда разработки (кухня) сможет создать хороший продукт на основе качественных требований.
С другой стороны, можно приготовить идеальный торт, который не будет соответствовать ожиданиям заказчика (например, клубничный чизкейк). Вряд ли покупатель будет доволен. Значит, команда разработки трудилась зря.
Ошибки в требованиях, так же как и ошибки в рецепте, могут привести к плачевному результату. Проблемы, как правило, возникают по следующим причинам:
- Недопонимание между заказчиком и командой разработки.Допустим, вы приготовили «Наполеон», как и хотел посетитель кондитерской. Однако покупатель всё равно остался недоволен. Он хотел «Наполеон» со взбитыми сливками, а вы сделали его с масляным кремом. С требованиями так же — ваше видение и видение заказчика могут сильно отличаться, поэтому важно на берегу прояснить все детали.
- Бессистемное общение с заказчиками.У вас заказали трёхъярусный ванильный свадебный торт. Через некоторое время вам позвонил жених и уточнил, что два нижних яруса нужно сделать в виде клубничных капкейков. Затем позвонила невеста и сказала, что они передумали и хотят вернуться к первоначальному варианту. Когда вы отдали паре торт, молодожёны расстроились — ведь вернуть они хотели только формат, но не вкус, а вы сделали ванильный торт без добавления клубники. Похожая путаница может случиться и с требованиями к ПО, особенно если у вас несколько заказчиков и общение с ними происходит спонтанно — без чёткого плана.
- Ошибки документирования требований к ПО.У вас новый заказ. На этот раз вам нужно приготовить торт с надписью «С днём рождения!». Вроде всё просто, но вы забыли, как зовут именинника, и не записали пожелания заказчика. Фиксировать пожелания — особенно актуально для требований. Их будут изучать и другие члены команды разработки, а они могли даже не видеть заказчика. Подробности нужно документировать, даже если на первый взгляд они кажутся очевидными.
Примеры требований к ПО, их уровни и типы будем детально разбирать в следующих уроках.
Согласно исследованиям, из-за ошибок, допущенных на этапе сбора требований, происходит существенная часть дефектов в готовом ПО (от 40% до 50%).
Стоимость внесения изменений в ПО или устранения программной проблемы увеличивается пропорционально этапу, на котором вносятся изменения или исправления (Barry W. Boehm, профессор, специализирующийся на программном обеспечении).
Другими словами, ошибки, сделанные на начальной стадии сбора и анализа требований, дорого исправлять на более поздних этапах проекта. Если ошибок нет и требования удовлетворяют нуждам заказчиков, на выходе вас ждут отличный продукт, благодарные заказчики и довольные разработчики.
Подведём итоги
Говоря о требованиях, стоит помнить, что:
- У термина «требования к ПО» нет единого определения. Поэтому важно обсудить со всеми причастными к проекту, что такое требования. Договориться поможет понимание общих характеристик требований.
- Требования описывают решение проблемы, применимы для практического использования и должны быть реализованы.
- Исправлять ошибки, допущенные на этапе сбора требований, — очень дорого. Поэтому важно сделать требования наиболее полными и корректными.
- Стоит отличать требования к ПО от требований к проекту. В спецификации требований к ПО не учитываются требования к проекту.