По данной теме я встану на сторону Дениса. Не в том смысле, что не люблю инструменты, а в том, что сперва, нужно иметь хорошее представление об изменениях, а только потом надеяться на инструменты.
Из своего опыта могу сказать след.:
1. Качество проработки изменения напрямую зависит от ваших знаний о системе, в которую изменения вносятся. Если не знаете систему, то первой обязанностью является изучать её на высоком уровне, а только потом изменять. В реальной ситуации может не быть возможности достаточно глубоко погрузиться (особенно в начале проекта), но держать в голове приоритет изучения системы нужно всегда.
2. Если вы не достаточно хорошо знаете систему, то полагаться на документацию нужно с оглядкой на то, что она может не соответствовать коду, быть неполной и некачественной. Очень часто именно так и бывает. В первую очередь, изменения влияют на живое тело проекта, т.е. на его код. Иными словами, оперировать нужно по телу, а не по мед.карте, а вся ответственность за жизнь пациента на вас. Поэтому, при анализе влияния изменений нужно проявлять максимальную дотошность к текущему фактическому состоянию системы. Аналитик вообще её должен всегда проявлять. Кажется, что это окупается с лихвой.
(Немножко оффтоп) 2.1 Купер сравнивает изменения ПО с рубцом после операции. Большое количество рубцов приводит к потере гибкости и хрупкости организма. Хорошо проработанные изменения отличаются не только полным описанием влияния, но и тем, что они стремятся к уменьшению количества рубцов в перспективе. Я не могу сказать, что всегда получается этому следовать, но держать это в голове тоже стоит.
3. Изменения в больших системах подразумевает правку кода в куче мест сразу. Поэтому, на большие изменения можно писать отдельный документ. Может не всегда нужно это делать, но если не уверены в качестве анализа влияния, то можно подсунуть команде на ревью.
Я видел ситуации, когда даже сами разработчики затрудняются оценить последствия изменения для системы. Это вполне может встретиться на больших проектах. Я никогда не видел ситуации, чтобы команда ругала отдельный документ на большие изменения. Кажется, он всем нравится. В любом случае, документ - это выражение вашей осмысленной работы над изменением.
Есть другой вариант. Если все спецификации содержатся в одном большом документе, то в качестве документа об изменении можно использовать diff версий(например - tfs + share point.wiki). Если по проекту несколько спецификаций, то нужно обеспечит так, чтобы изменения во всех документах можно было просмотреть в одном месте. Не следует разработчикам заставлять лазить по куче разрозненных документов. Велика вероятность, что кто-нибудь что-нибудь да пропустит ...
Лично мне нравится для изменения дополнительно описывать причину, источник, и ещё пару параметров.
Ещё мне нравится CR(change request) из той же самой DOORS. Видео можно на youtube найти.
4. Для изменений на больших данных с большой динамикой изменения стоит продумывать пути отступления. Это может и не очень частая ситуация, но стоит держать в голове гипотетическую ситуацию неотката.
5. Нужно выбросить из головы идею о том, что какой-либо инструмент когда-нибудь защитит от "человеческого фактора на 100%" в плане анализа влияния изменений. Дело в том, что человеческий фактор начинается с момента внесения требований в это самый инструмент. Если внесены кривые, неполные и неактуальные требования, то инструмент не поможет в любом случае.
6. Иногда изменения затрагивают большое количество чужих подсистем. Для таких случаев полезно иметь актуальные dfd или деплоймент диаграммы или диаграммы компонентов или спеки по интеграции. В любом случае, если вы знаете что, с вашей системой / подсистемой связана другая чужая, то всегда следует проверить возможное влияние на ней.
Я умышленно ушел в сторону от вопроса инструментов. Считаю, что начинающий аналитик должен работать над содержанием и пониманием. Выработать свой стиль изложения и понять что хорошо, а что плохо. Для этого ворд подходит лучше. Он не создает рамок. Инструменты загоняют в рамки различных
best practice. Само по себе это не плохо, но всему свое время. Надо научиться видеть картину сверху, чтобы потом суметь адаптировать свой подход к изменениям в любой команде и к любому инструменту. Кажется, это будет универсально.
Обещать не буду, но может поищу материалы, которые сойдут за гайдлайны по изменениям.
Простите если кого утомил. многобуков. Не сдержался