Разделы портала

Онлайн-тренинги

.
Аудит у Прокруста
06.10.2008 11:06

Автор: Юрий Горюнов

Имея собственный опыт в разработке программного обеспечения, Избранный имеет и собственные представления как это должно производиться. Информация почерпнута как правило из собственного опыта или из книжек, в которых рассказывается, как должен работать шарообразный проект в вакууме. Понятия и определения могут существенно отличаться как от общепринятых, так и изменивших свое значение в рамках проекта.

Введение

Начну пожалуй с того, что при недовольстве заказчика результатом, высшее руководство, которому до этого самого «звонка в три часа ночи», было не очень интересно общее состояние дел, вдруг проявляет всеобщую заинтересованность и желание «разобраться».

Вместо поднятия почтового архива принимается соломоново решение — найти кого-нибудь, кто придя в проект и вникнув в суть проблем принесет их в красиво оформленном списке, а заодно подготовит список решений.

Подвергшись за последний месяц трем аудитам мне удалось выяснить некоторую закономерность, которую я постараюсь изложить далее.

Рождение Прокруста

Итак, Избранный, у которого, кроме своей загрузки на проекте, появляется дополнительная задача «найти и обезвредить» проблемы, совершает набег на проектную группу. Выделить большее время, чем час/полтора у него нет ни желания, ни физической возможности.

Подготовка ложа

Имея собственный опыт в разработке программного обеспечения, Избранный имеет и собственные представления как это должно производиться. Информация почерпнута как правило из собственного опыта или из книжек, в которых рассказывается, как должен работать шарообразный проект в вакууме. Понятия и определения могут существенно отличаться как от общепринятых, так и изменивших свое значение в рамках проекта. Критерии оценки (рекомендована к прочтению замечательная статья Алексея Баранцева) тоже далеко не ясны, и как правило для их выбора используется метод чем хуже, тем лучше. Вы ведь не забыли основную цель прихода аудитора? Найти как можно больше проблем, за как можно короткое время, тем самым оправдав оказанное доверие, и по ходу дела создать впечатление, что уж на проекте аудитора с этим все в порядке. Ко всему прочему добавляется и отсутствие интереса к общему результату проекта. В результате вопросы строятся не по принципу «почему это вы делаете именно так», а по принципу «расскажите, как вы делаете то-то и то-то». Практическая ценность того-то и того-то выходит как правило за рамки аудита.

Вот в принципе и все — ложе готово. Давайте изобразим его графически. Пусть это будет представление Избранного о том, как все должно происходить:

Представление Избранного о том, как все должно происходить

Красивая картинка, правда? Я старался.

Прокруст в гостях

Если гора не идет к Магомету, то Магомет идет к горе. В лучшем случае предупредив, о том, что сегодня будет аудит и Избранный прийдет его проводить (а в худшем Избранный появляется в дверях с просьбой рассказать ему о проекте в двух словах). Проведение аудита заключается в штриховке областей на ложе, которые совпадают с проектными процессами. Предположим, что Ваши процессы выглядят вот так:

Как выглядят ваши процессы

Как выглядят ваши процессы

Рисуя эту картинку я старался еще больше, поэтому должно выглядеть еще красивее.

После серии вопросов «как вы делаете например вот это» ложе в местах пересечения закрашивается, и получается картинка вроде этой:

Наложение представлений Избранного и реальной картинки

Наложение представлений Избранного и реальной картинки

Где красным цветом выделены области удовлетворившие Избранного. На этом этапе проявляется редкая избирательность слуха. Для примера небольшой диалог:

— Какое у вас покрытие вариантами тестирования приложения

— На данном этапе мы приступили к покрытию системы вариантами тестирования, оценочное покрытие около пяти процентов. Исходя из цикломатической сложности приложения и экстраполирования результатов стопроцентного покрытия отдельного модуля ожидаемое количество вариантов тестирования около 250 000. Погрешность при вычислениях может быть очень большой.

Жирным выделено то, что Избранный услышал, а именно:

Варианты тестирования не разрабатываются, все действия в данном направлении хаотичны и нерегулярны. Учитывая большую сложность приложения рекомендуется достижение 100% покрытия системы вариантами тестирования с максимальной детализацией.

При подготовке протокола все зеленое убирается. Это новые для Избранного области, и разбираться в этом у него, как я уже говорил ранее, нет ни желания ни времени.

Результат аудита:

Результат аудита

Результат аудита

Расшифровывать я надеюсь не нужно, что будет занесено в протокол? На всякий случай: процессы в проекте реализованы только частично и не имеют связи друг с другом. Реализованные процессы требуют существенной доработки... дальше допишите сами, или прочитаете в протоколе, который будет написан очередным Избранным в Вашей компании.

Ивасик vs Прокруст

Обнаружив эту особенность при очередном аудите я максимально постарался объяснить следующему Избранному почему мы делаем так, чем это вызвано и какой результат это дает и почему мы не делаем по другому. Протокол меня потряс до глубины души. В числе прочих не до конца реализованных и оторванных друг от друга процессов я увидел замечание, что номера страниц в колонтитулах одного из документов не правильно проставлены. Честно говоря я не могу после этого понять только двух вещей. Почему MS Word создал две восьмых страницы (только в одном документе из всех, к слову) и насколько-же было скучно Избранному, раз он это заметил.

Попытки сесть так как мне удобно, или упросить Избранного показать как нужно сидеть вылились в то, что он просто ждал, когда я перестану ерзать и усну, после чего поступил так-же, как остальные — закрасил и отбросил.

К слову, о вытягивании

Прокруст как известно не только рубил ноги тем, кто был длиннее его ложа, он еще и вытягивал тех, кто был мал ростом.

Рекомендации по изменениям процессов зачастую похожи на рекомендации Мудрой Совы мышам. Помните, да? «Вам нужно стать ежиками. Как? Не мешайте, я даю стратегические советы!». В одном случае мне было рекомендовано таки написать все варианты тестирования, причем сделать это все немедленно и с максимальной детализацией (250 000 это реальная цифра, при суммарной цикломатической сложности приложения в 75 000 единиц), в другом случае, мне было рекомендовано проводить два раунда функционального тестирования. Избранному было все равно, откуда появятся еще 20 специалистов хотя-бы среднего уровня. Чем эти советы лучше советов Мудрой Совы я ответить затрудняюсь.

Где же Тесей?

Вместо заключения

Рано или поздно кому-то из вас придется стать Избранным. Возможно у Вас не будет времени для разбора процессов проекта на достаточно детальном уровне, но в любом случае вспомните про закрасить и отбросить. Постарайтесь если не нарисовать с нуля диаграмму процессов в проекте, то хотя-бы услышать мнение тех, кто работает с ними в проекте ежедневно, честное слово — людям можно верить, и после этого потратьте пол-часа на анализ сильных и слабых сторон. В крайнем случае проведите анкетирование персонала, и уже имея предварительные данные проводите аудит. И я просто умоляю — пожалуйста, не делите дефекты на человеко-часы.

Спасибо за Ваше потраченное время.