Некоторое время тому назад посчастливилось мне работать с одним из наших многочисленных автогигантов. Повезло, на самом деле, поскольку пришлось взаимодействовать с очень грамотными и погруженными в свое дело людьми. Обсуждали мы работу с требованиями. Благодаря многочисленным внедрениям IBM DOORS и IBM DORS Next Generation (да и всего комплекса инструментов IBM Engineering Lifecycle Management) у меня уже была основательная экспертиза в области управления требованиями и управления конфигурацией.
Именно требования и их связь с модельным рядом автомобилей интересовали специалиста от Заказчика. Мы довольно быстро нашли общий язык, стали обсуждать процесс и последовательность привязки данных к физическому делению автомобиля. И в какой-то момент (неизбежно) дошли до момента трассировки требований через весь жизненный цикл, от начала до завершения (до физики). Я, в полной уверенности, что мы на одной волне, стал излагать коллеге свой взгляд на процесс.
– Мы, – говорю, – формируем вначале конфигурацию на уровне требований…
– Хм…
– Следующая конфигурация, – продолжаю, – на уровне эскизного проекта…
– Хм-хм…
– Потом на уровне технического проекта делаем еще один срез, это следующая конфигурация. В этот момент как раз и распределяем требования при помощи трассировочных связей на уточненный функциональный состав автомобиля.
– Постойте-постойте, – говорит мой визави, – о какой конфигурации может идти речь, если автомобиля еще нет?
– Э… - вот тут я заподозрил, что мы достаточно долго (разговор я сократил до обмена значимыми фразами, но он был долгий) говорили одними словами про разные вещи. Я говорил про базовые конфигурации, которые создаются на протяжении всего жизненного цикла, и прокладывают отмеченную вехами тропу от автомобиля мечты к его физической реализации. А мой коллега говорил исключительно о конфигурации уже изготовленного автомобиля в рамках модельного ряда, и в рамках потребностей Заказчика (которые, кстати, бывают весьма изысканными).
И вот что интересно, если подходить с точки зрения определения элементов конфигурации, то в некотором смысле мой собеседник был прав. Элементами конфигурации могут быть только физические компоненты, или выпущенные (готовые к загрузке в вычислитель) элементы программного обеспечения. И это одна сторона вопроса.
Вторая сторона вопроса состоит в том, что от момента появления мечты до момента ее реализации в «железе» мы постоянно и непрерывно должны управлять конфигурацией. Мы делим наш образ мечты на компоненты, чтобы справиться с масштабом и сложностью.
Мы соединяем компоненты между собой, обеспечиваем их взаимодействие при помощи интерфейсов. Мы шаг за шагом конкретизируем мечту до тех пор, пока она не приобретет очертания и детализацию, позволяющую поручить ее физическое воплощение нашему производственному подразделению. Но чем же мы управляем все время, когда элементов конфигурации еще нет?
Мы управляем документацией по конфигурации и информацией о конфигурации. Все наши концептуальные представления: чертежи и 3D-модели, расчеты и пояснительные записки, графики и диаграммы, имеющие непосредственное отношение к будущему производству нашей системы являются документацией и информацией о конфигурации первого плана.
На втором плане находится документация и информация, обеспечивающая существование нашей системы как продукта: эксплуатационная документация, документация для ремонта и настройки, и подобная, поставляемая с системой, документация.
На третьем плане обычно располагаются учебные материалы о том, как эксплуатировать нашу систему (если они нужны).
То есть, пока наша система (автомобиль это или вертолет) находится на
концептуальном этап (на нисходящей ветви V-модели, если применять системно-инженерную терминологию), мы управляем конфигурацией исключительно документированного образа системы. И только при переходе через нижнюю точку V-модели мы начинаем управлять конфигурацией самой системы в ее физической реализации.
Подведу краткий итог:
1. элементом конфигурации может быть только физический объект или выпущенный программный код;
2. управление конфигурацией осуществляется от замысла до реализации;
3. до момента реализации мы управляем не элементами конфигурации, а их документацией и информаций.