Затраты
Затраты (стоимость) оценки выражаются во времени, затраченном на эту процедуру специалистами. Имея опыт критического анализа приблизительно 300 полноценных вариантов архитектуры для проектов, на разработку которых уходит как минимум 700 человеко-дней, компания AT&T, по данным своих руководителей проектов, называет средние затраты на оценку — 70 человеко-дней. Проведение критического анализа по методике АТАМ занимает примерно 36 человекодней (Этот показатель учитывает только работу группы оценщиков. Поскольку методика АТАМ предполагает участие в оценке заинтересованных лиц и ответственных лиц, общие затраты увеличиваются.). Если в вашей компании на постоянной основе существует подразделение, занимающееся исключительно оценкой, при расчете затрат следует учитывать стоимость его содержания, а также временные затраты на обучение сотрудников. Выгоды Нам известны шесть видов преимуществ, связанных с обследованием архитектуры. 1. Финансовые преимущества. В AT&T руководитель каждого проекта обязан сделать приблизительный расчет средств, которые можно сэкономить путем оценки архитектуры. Согласно средним за восемь лет деятельности показателям, комплексная архитектурная оценка любого проекта уменьшает стоимость проекта на 10 %. Учитывая то, что на оценку уходит в среднем 70 человеко-дней, окупается оценка тех проектов, работа над которыми продолжается 700 человеко-дней и дольше. Мы не располагаем сопоставимыми количественными данными других компаний. Однако, по словам некоторых консультантов, более 80 % их работы — это повторение уже выполненных задач. Их клиенты довольно быстро осознали, что дополнительное проведение оценки просто выгодно. Случаев, когда в результате оценки заказчики смогли избавить себя от лишних трат, известно множество. Рассказывают, например, что одна крупная компания отказалась от многомиллионного контракта, узнав, чго архитектура глобальной информационной системы, которую она планировала приобрести, не способна реализовать желаемые атрибуты качества. Проведенный на раннем этапе архитектурный анализ электронной системы перечисления денежных средств показал, что предоставляемая ею суточная емкость в $50 миллиардов в два раза меньше предполагаемой. Оценка системы розничной торговли выявила проблемы производительности самого высокого порядка, справиться с которыми не смогли бы даже самые совершенные аппаратные средства. Таким образом, заказчик сумел предотвратить собственное банкротство. И так далее. Рассказывают также и о том, к каким неприятностям приводит игнорирование процедуры оценки. В одном таком случае пересмотр системы учета клиентов планировалось провести за два года, однако по прошествии семи лет она претерпела целых три повторных реализации. Несмотря на то что вычислительная мощность в последней версии в 60 раз превосходила характеристики первоначального макета, удовлетворить требования по производительности так и не удалось. В другом случае проблемы с производительностью, обусловленные непродуманными проектными решениями, сделали невозможным компонентное тестирование. В результате проект — разработку крупной инженерной системы реляционных баз данных — свернули. Обошелся этот грандиозный успех в $20 миллионов.
2. Вынужденная подготовка к критическому анализу. Специалисты, на которых возлагается обязанность по оценке архитектуры, должны, во-первых, знать> на что следует обращать внимание, а во-вторых, предварительно составить некое описание архитектуры. Следовательно, им приходится документировать архитектуру. Варианты архитектуры, доступные для понимания всем разработчикам, встречаются не так уж часто. Составленные описания зачастую оказываются либо слитком краткими, либо (что случается чаще) слишком подробными и растягиваются на многие тысячи страниц. Вполне возможно недопонимание разработчиками тех или иных допущений, касающихся выделенных им элементов. Процесс подготовкикоцеике способствует решению многих из этих проблем. 3. Фиксация логического обоснования. В процессе оценки архитектуры внимание всегда заостряется на нескольких областях; перед оценщиками ставятся вполне конкретные вопросы. Для того чтобы на эти вопросы можно было ответить, часто требуется получить представление о проектных решениях и соответствующих логических обоснованиях. Документация логического обоснования проекта оказывается востребованной на дальнейших стадиях жизненного цикла, помогая оценить эффект модификаций. Задокументировать логическое обоснование постфактум невероятно сложно. Его фиксация по результатам оценки архитектуры, таким образом, приносит немалую пользу впоследствии. 4. Своевременное выявление недостатков существующей архитектуры. Чем раньше проблемы обнаруживаются, тем дешевле их исправить. В частности, по результатам оценки архитектуры возможно выявление проблем, связанных с необоснованными (или слишком дорогостоящими в части реализации) требованиями, производительностью или потенциальными нисходящими модификациями. Оценка сценариев модификации системы способствует обнаружению трудности переносимости и расширяемости. Таким образом, оценка архитектуры помогает составить представление о возможностях и ограничениях продукта на ранней стадии его проектирования. 5. Проверка требований. Проверка соответствия архитектуры предъявляемым к ней требованиям перетекает в анализ требований как таковых. Это помогает лучше уяснить их суть и (как правило) расставить приоритеты. Процесс формулирования требований, проводящийся в отрыве от ранних стадий проектирования, обычно приводит к конфликту свойств системы. Высокая производительность, безопасность, отказоустойчивость, низкие затраты — всего этого легко потребовать, но крайне проблематично (а иногда и невозможно) достичь. Оценка архитектуры вскрывает конфликты, указывает на возможные компромиссные решения и создает условия для совместного обсуждения возникших проблем. 6. Усовершенствование ароситектуры. Компании, встроившие оценку архитектуры в стандартный процесс разработки, отмечают повышение качества результата. Предугадывая возможные вопросы и предметы для обсуждения, зная, какая документация потребуется для оценки архитектуры, компании-разработчики естественным образом увеличивают эффективность проведения этой процедуры. Результатом становится повышение качества архитектуры, наблюдаемое не только после оценки, но, по существу, и до ее проведения. Со временем компания вырабатывает культуру качественного архитектурного проектирования. Итак, оценка архитектуры способствует повышению качества, снижению затрат и бюджетных рисков. Являясь основой для принятия любых технологических решений, архитектура оказывает огромное влияние на стоимость и качество продукта. Сама по себе оценка не гарантирует высокого качества или низких затрат, но она явственно обозначает области риска. Конечная стоимость и качество системы складывюется из совокупности факторов, включая тестирование, адекватность документации и кодирование. Методики Рассматриваемые в двух последующих главах методы АТАМ и CBAM являют собой примеры вопросных методик (questioning techniques). Они предполагают формулирование испытательных вопросов согласно сценариям и проверку реакции оцениваемой архитектуры на различные ситуации. Среди других вопросных методик следует упомянуть контрольные списки и анкеты. Эффективными они оказываются в тех случаях, когда оценщикам приходится работать с однотипными системами, каждый раз организуя для них одни и те же испытания. Все вопросные методики, по сути, основываются на мысленных экспериментах, и с их помощью определяют степень соответствия гой или иной архитектуры поставленным задачам. Естественным дополнением вопросных методик являются измерительныеме* тодики (measuring techniques). Они опираются на количественные показатели. В качестве примера таковой можно привести архитектурные метрики. По результатам измерений сцепления в рамках архитектуры, связности ее модулей или глубины иерархии наследования можно сделать определенные выводы о модифицируемости результирующей системы. К измерительным методикам также относятся приемы, предполагающие проверку на предмет интересующих атрибутов качества (например, атрибутов периода прогона наподобие производительности или готовности) моделей и макетов. Результаты приложения измерительных методик оказываются в некотором смысле более конкретными, чем ответы, получаемые по вопросным методикам, но, с другой стороны, они применимы только при наличии рабочего артефакта. Другими словами, измерительные методики предполагают существование объекта измерений. Вопросные методики, напротив, прекрасно приспособлены к обследованию гипотетических архитектур, а значит, могут применяться на гораздо более ранних стадиях жизненного цикла. Планировать или не планировать? Оценка может быть запланированной или незапланированной. Запланированная оценка считается нормальным элементом цикла разработки проекта. Время ее проведения определяется заранее, она учитывается при разработке рабочих плэ- нов и бюджета проекта и подлежит контролю по срокам. Незапланированная оценка, как правило, проводится спонтанно, являясь результатом возникновения разного род затруднений; ее организация, таким образом, призвана вытащить проект из тупика. В лучшем случае запланированная оценка рассматривается как одно из средств реализации проекта, в худшем — как отвлечение от него. Воспринимать ее как инструмент проверки квалификации участников проекта не следует, скорее, это проверка соответствия изначально запланированному «курсу» разработки. Запланированная оценка носит предупреждающий характер и способствует сплочению коллектива. Незапланированная проверка для участников проекта — это, напротив, настоящее испытание. Она требует выделения дополнительных временных ресурсов, которых и так не хватает. Решение о проведении незапланированной проверки принимается руководством в случае высокой вероятности неблагоприятного исхода и, таким образом, воспринимается как средство внесения промежуточных корректив. Незапланированные проверки носят реактивный характер и проводятся в довольно напряженной атмосфере. Руководитель группы оценщиков обязан не допустить выяснения отношений между своими подчиненными. Не стоит и говорить, что запланированные оценки предпочтительнее. Предварительные условия Об успехе процедуры оценки можно судить по следующим критериям: 1. Четко сформулированные задачи и требования к архитектуре. Оценивать полезность архитектуры можно только в контексте определенных атрибутов качества. Система, отличающаяся сверхпроизводительностью, может оказаться совершенно непригодной для выполнения задач, требующих модифицируемости. Анализировать архитектуру, не разобравшись с критериями «добротности», — все равно что отправляться в путь куда глаза глядят. Иногда (хотя, судя по нашему опыту, крайне редко) эти критерии устанавливаются в форме спецификации требований. Более вероятно, что их определение придется на период перед оценкой или непосредственно на оценку. Задачи определяют цель оценки; их следует явно оговаривать в договоре об оценке и уточнять впоследствии. 2. Поддающиеся контролю рамки. Процедуру оценки следует ориентировать на решение определенных ясно сформулированных задач. Их количество должно быть сведено к минимуму (не более 3-5). Неспособность определить ограниченный круг высокоприоритетных задач часто свидетельствует о несбыточности ожиданий от результатов оценки (а возможно, и от системы в целом). 3. Экономическая эффективность. Организаторы оценки обязаны убедиться в том, что выгоды от проведения проверки (с высокой вероятностыо) превысят затраты. Те виды оценки, о которых мы говорим, нодходяг для проектов среднего и крупного масштаба, однако их эффективность в отношении малых проектов весьма сомнительна. 4. Наличие необхоЪимых специалистов. К проведению проверки совершенно необходимо привлечь архитектора или другого специалиста, способного авторитетно рассуждать об архитектуре и проектировании. Этот человек (или эти люди) должен уметь сжато и ясно изложить факты архитектуры и мотивацию принятия архитектурных решений. Если речь идет об очень крупной системе, необходимо участие проектировщиков ее основных компонентов — они должны проверить, насколько сложившееся у архитектора представление об архитектуре фактически отражено на более детальных уровнях. Проектировщики, кроме того, могут сообщить немало важного об атрибутах поведения и качества компонентов. В контексте методики АТАМ следует обеспечить участи^ в оценке архитектуры заинтересованных лиц. Необходимо определить лиц, желающих получить отчет об оценке, установить их приоритеты и ожидания. 5. Квалифицированность группы оценщиков. В идеале, оценкой программной архитектуры должно заниматься специальное подразделение компании. Участники группы оценщиков должны быть беспристрастны, объективны и уважаемы. Группа должна создавать впечатление компетентности в своей области; результаты ее деятельности должны иметь определенное значение в глазах других специалистов — иначе они неизбежно будут воспринимать ее функции как бесполезные. В группе оценщиков должны работать люди, смыслящие в вопросах архитектуры, а во главе ее должен стоять специалист, имеющий серьезный опыт проектирования и оценки проектов на архитектурном уровне. 6. Ясные ожидания. Определяющее значение для успешного проведения оценки имеет четкое понимание ожиданий ее компании-организатора. Необходима ясность относительно задач оценки, ее предполагаемых результатов, анализируемых (и неанализируемых) областей, требующихся временных и трудовых ресурсов и заинтересованных в получении результата лиц. Результаты По результатам оценки следует составить отчет, охарактеризовать в нем все выявленные проблемы и подкрепить выводы фактами. Черновик отчета следует передавать поочередно каждому из оценщиков; совместно они должны устранить из него все недоразумения, любую необъективность, сопоставить различные элементы и только после этого составить окончательный вариант. В идеале, если те или иные проблемы не решаются, их следует ранжировать по принципу потенциального влияния на проект. Также следует собирать информацию о самом процессе оценки. На основе совокупных данных о ряде оценок можно выстроить специальные методики, выработать способы обучения, наконец, усовершенствовать процессы разработки системы в целом и оценки архитектуры в частности. Необходимо анализировать затраты и выгоды проведения оценки. Информацию о предшествующих процедурах оценки компания должна использовать, во-первых, для внесения корректив в последующие подобные процедуры и, во-вторых, для составления аналитических сводок по затратам и выгодам. Внастоящей части три главы. Метод АТАМ (рассматриваемый вглаве 11) представляет собой структурный метод оценки архитектуры. По результатам его применения составляется список рисков несоответствия архитектуры предъявленным к ней требованиям. CBAM (глава 12) — это метод ранжирования рисков. В крупных системах зачастую оказывается слишком много рисков. Решение о том, какой из них следует сгладить в первую очередь, необходимо принимать исходя из сопоставления затрат модифицирования архитектуры, без которых этот риск не сгладить, и выгод его сглаживания. В методе CBAM предусматривается структура, направленная на решение этой организационно-экономической задачи. В главе 13 приводится очередной конкретный пример систем, ориентированных на WWW. Их развитие рассматривается как прохождение нескольких архитектурно-экономических циклов. Дополнительная литература Изложенный в этом введении материал взят из исследования [Abowd 96] «Recommended Best Industrial Practice for Architecture Evaluation», составленного по результатам семинаров, проведенных его авторами и другими научными сотрудниками Института программной инженерии. На них побывали представители восьми промышленных и консультативных компаний. Методика архитектурной оценки на основе контрольных списков и анкет — одна из разновидностей активного анализа проектного решения (active design review) — изложена в работе [Parnas 85b]. Активная оценка проектного решения предполагает участие нескольких лиц, которые, основываясь на документации, отвечают на заранее подготовленные вопросы. Этот метод заметно отличается от случайной и неорганизованной оценки, участники которой докладывают об отклонениях по мере их обнаружения. В издании [Cusumano 95] метрики рассматриваются как средство выявления мест, в которых с наибольшей вероятностью могут произойти изменения. Богатый опыт по части оценки вариантов архитектуры, накопленный компанией AT&T, обобщается в работе [AT&T 93].
|