Председатель совета по управлению изменениями обычно просит опытного разработчика выполнить анализ результата определенного. Анализа результатов изменений затрагивает три аспекта.
1.Определите возможны последствия изменения. Часто они вызывают значительный волновой эффект. Включение множества функций в продукт может снизить его производительность до неприемлемого уровня, например, когда системе, запускаемой ежедневно, потребуется 24 часа для завершения одного запуска.
2.Определите все файлы, модели и документы, которые, возможно, придется изменить, если команда включит все запрошенные изменения.
3.Определите задачи, необходимые для реализации изменения, и оцените усилия, необходимые для выполнения этих задач.
Ловушка Пропустив выполнение анализа влияния, вы не измените объем задачи. Просто в этом случае этот объем станет сюрпризом для вас. А сюрпризы в области ПО редко бывают приятными. |
На рис. 19-5 показан контрольный список вопросов, разработанный в помощь аналитику. В списке на рис. 19-6 перечислены наводящие вопросы, которые помогут вам определить все элементы ПО, затронутые изменением. Данные трассируемости, которые связывают изменяемые требования с другими основными документами проекта, крайне полезны при анализе влияния. По мере наработки опыта при использовании этих контрольных вопросов адаптируйте их для ваших проектов.
Далее описана несложная процедура оценки влияния изменения предложенного требования. Множество проблем с оценкой возникает так как специалист, выполняющий оценку, не принимает во внимание всю работу, необходимую для завершения задачи. Следовательно, этот подход к анализу влияния требует тщательного определения задачи. Для оценки значительных изменений используйте небольшие команды — а не просто одного разработчика: так вам удастся не упустить из виду важные задачи.
|
1.Работайте со списком на рис. 19-5.
2.Работайте со списком на рис. 19-6, используя доступную информацию трассируемости. В некоторые средства управления требованиями входят отчеты об анализе влияния, в которых размещены ссылки трассируемости, следуя по ним удается найти элементы системы, зависящие от изменяемых требований.
■ | Конфликтуют ли какие-то из требований в базовой версии с предложенным изменением? |
■ | Конфликтуют ли какие-то из отложенных требований в базовой версии с предложенным изменением? |
■ | Какие могут быть технические или бизнес-последствия, если изменение не будет внесено? |
■ | Какие могут быть побочные негативные эффекты или другие риски, если изменение не будет внесено? |
■ | Повлияет ли негативно предложенное изменение на требования к производительности и другие атрибуты качества? |
■ | Выполнимо ли предложенное изменение в рамках известных технических ограничений и квалификации специалистов? |
■ | He потребуется ли для реализации предложенного изменения неприемлемое количество компьютерных ресурсов, необходимых для разработки, тестирования или операционной среды? |
■ | Нужно ли приобрести какие-либо средства для реализации и тестирования этого изменения? |
■ | Как предложенное изменение повлияет на последовательность, зависимости, усилия или продолжительность задач, включенных в настоящее время в план проекта? |
■ | Потребуется ли создание прототипов или другая информация пользователей для проверки предложенного изменения? |
■ | Сколько затрат, уже вложенных в проект, будут потеряны, если принять это изменение? |
■ | He увеличится ли затрата на единицу продукта при принятии изменения, например за счет увеличения оплаты лицензирования продукта приглашенными специалистами? |
■ | Повлияет ли изменение на планы по маркетингу, производству, обучению или поддержки покупателей? |
|
Рис. 19-5. Список возможных последствий предложенного изменения
■ | Определите все необходимые изменения пользовательского интерфейса, дополнения или удаления. |
■ | Определите все изменения, добавления или удаления, которые необходимо внести в отчеты, базы данных или файлы. |
■ | Определите компоненты дизайна, которые придется создать, изменить или удалить. |
■ | Определите файлы исходного кода, которые необходимо создать, изменить или удалить. |
■ | Определите все изменения, которые придется внести в уже созданные файлы или процедуры. |
■ | Определите существующие варианты тестирования элементов продукта, целостности, системы и приемлемости, которые необходимо изменить или удалить. |
■ | Оцените необходимое количество новых вариантов тестирования элементов продукта, целостности, системы и приемлемости. |
■ | Определите все экраны справки, обучающие материалы или другую пользовательскую документацию, которую необходимо создать или изменить. |
■ | Определите все компоненты приложений, библиотек или оборудования, на которые повлияет изменение. |
■ | Определите все стороннее ПО, которое должно быть приобретено или лицензировано. |
■ | Определите влияние, которое предложенное изменение окажет на планы управления проектом ПО, проверки приемлемости качества, управления конфигурацией и другие планы. |
|
Рис. 19-6. Список возможных элементов ПО, затрагиваемых изменением
3.Воспользуйтесь рабочей таблицей на рис. 19-7 для расчета затрат, необходимых для выполнения предполагаемых задач. Для выполнения большинства запросов на изменение потребуется только часть задач из рабочей таблицы, однако для выполнения других необходимы дополнительные задачи.
Затраты (Рабочие часы) | Задача |
______________ | Обновить спецификацию требований или базу данных требований. |
______________ | Разработать и оценить прототип. |
______________ | Создать новые компоненты дизайна. |
______________ | Изменить существующие компоненты дизайна. |
______________ | Разработать новые компоненты пользовательского интерфейса. |
______________ | Изменить существующие компоненты пользовательского интерфейса. |
______________ | Разработать новую пользовательскую документацию и экраны справки. |
______________ | Изменить существующую пользовательскую документацию и экраны справки. |
______________ | Разработать новый исходный код. |
______________ | Изменить существующий исходный код. |
______________ | Приобрести и встроить стороннее ПО. |
______________ | Изменить файлы сборки. |
______________ | Разработать новые тесты элементов и целостности продукта. |
______________ | Изменить существующие тесты элементов и целостности. |
______________ | Выполнить тестирование элементов и целостности продукта после реализации. |
______________ | Написать новые варианты тестирования системы и приемлемости. |
______________ | Изменить существующие варианты тестирования системы и приемлемости. |
______________ | Изменить автоматизированные механизмы тестирования. |
______________ | Выполнить регрессивное тестирование. |
______________ | Разработать новые отчеты. |
______________ | Изменить существующие отчеты. |
______________ | Разработать новые элементы базы данных. |
______________ | Изменить существующие элементы базы данных. |
______________ | Разработать новые файлы данных. |
______________ | Изменить существующие файлы данных. |
______________ | Изменить различные планы проекта. |
______________ | Обновить остальную документацию. |
______________ | Обновить матрицу трассируемости требований. |
______________ | Просмотреть измененные продукты. |
______________ | Переработать продукт после экспертизы и тестирования, |
______________ | Другие дополнительные задачи. |
______________ | Всего затрат |
Рис. 19-7. Расчет затрат на изменение требования
4.Выполните расчет всех затрат.
5.Определите последовательность выполнения задач и то, как они могут пересекаться с уже запланированными задачами.
6.Определите, является ли изменение критичным для проекта. Если такая задача не будет выполнена в срок, дата завершения проекта сдвинется. На каждое изменение тратятся ресурсы, однако если вы можете запланировать изменение так, чтобы оно не влияло на критически важные в настоящее время задачи, то изменение не станет причиной нарушения графика.
7.Оцените влияние предложенного изменения на график и затраты.
8.Оцените приоритет изменения, выяснив относительные преимущества, неудобства, затраты и технический риск по сравнению с остальными требованиями.
9.Доложите о результатах анализа влияния совету по управлению изменениями, чтобы они смогли принять решение об утверждении или отклонении запроса на изменение.
Дополнительная информация Что касается этапа 8, то в главе 14 описываются шкалы оценок для расстановки приоритетов требований, учитывающие преимущества, потери, затраты и риски. |
В большинстве случаев эта процедура не должна отнимать более пары часов. Занятый разработчик, может, и считает, что это уж слишком, однако это небольшая плата за уверенность в том, что ограниченные ресурсы используются обдуманно. Если вы способны адекватно оценить влияние изменения без такой систематической процедуры — дерзайте, просто удостоверьтесь, что вы не идете по зыбучим пескам. Чтобы лучше оценивать влияние будущих изменений, сравните действительные затраты, необходимые для реализации каждого изменение, с рассчитанными затратами. Выясните причины всех различий и измените соответствующим образом списки оценки вопросов и рабочую таблицу.
Деньги на ветер Два разработчика в компании A. Datum Corporation рассчитали, что уйдет четыре недели на добавление улучшения к одной из их информационных систем. Клиент утвердил их расчеты, и разработчики приступили к работе. Через два месяца работа была выполнена только наполовину, и клиент потерял терпение: «Если бы я знал, сколько времени это займет и сколько это будет стоить, я бы не согласился на это. Не нужно ничего делать». Торопясь получить одобрение и приступить к работе, разработчики не выполнили надежных расчетов анализа влияния, которые позволили бы клиенту принять должное бизнес-решение. В результате сотрудники A. Datum Corporation потратили сотни часов работу, которой можно было бы избежать, если бы они не поленились выделить всего несколько часов на предварительный анализ. |