IBM Rational Unified Process (RUP)
Дмитрий А. Лесин, сертифицированный специалист IBM, компания "Финэко Софт"
Когда появляется необходимость выполнения проекта в области разработки информационных систем и автоматизации, всегда доступно два основных варианта:
- Начать проект и решать возникающие проблемы по ходу
- Заранее продумать возможные риски и выполнить необходимые действия по их раннему предотвращению, организовать проект на принципах наиболее эффективного взаимодействия его участников
Первый вариант, обычно свойственный специалистам с меньшим опытом или меньшей степенью ответственности за успешные результаты проекта, иногда кажется наиболее эффективным. Но на самом деле, после окончательного учета всех расходов, связанных с потерями от проблем взаимодействия участников, неудачной реализации начальных запросов заказчиков в конечном продукте, его невысокого качества, потери этих заказчиков и др., выясняется, что либо проект был изначально убыточным, либо он стал таковым уже по ходу в результате неверно принимаемых решений.
Второй вариант обычно выбирают специалисты с наличием определенного опыта и ответственности за успешный конечный результат. Кроме того, он становится актуальным, когда нет права на ошибку, когда в проект вкладываются большие деньги, в него вовлечено огромное число людей и проект является сложным с технологической точки зрения.
Но как наиболее полно предотвратить возможные риски и максимально гарантировать конечный успех? Самый простой путь - использовать чужой опыт, сформированный на основе анализа ошибок и достижений в других проектах и воплощенный в виде "лучших практик" ("best practices") в той или иной методологии.
Одной из ведущих на сегодняшний день подобных методологий, в которой инструментально поддерживаются все этапы жизненного цикла разработки информационных систем, является методология IBM Rational Unified Process (IBM RUP). Она опирается на проверенные практикой и временем методы. Методология IBM Rational Unified Process (RUP) является базой знаний, на основе которой может быть выстроена разработка любой сложности и размеров.
Методология определяет процессы, а грамотно выстроенная инструментальная поддержка гарантирует ее соблюдение всеми участниками и обеспечивает Руководителя проекта необходимой оперативной информацией, если где-то начинают возникать сбои. Т.е. появляется возможность оперативного реагирования.
Шесть проверенных временем ключевых концепций IBM Rational Unified Process (RUP) лежат в основе развития инструментов и процессов Rational уже более 10 лет:
- Адаптация процесса под проект
- Управление запросами заинтересованных лиц
- Организация взаимодействия удаленных команд разработчиков
- Итерационный подход к разработке
- Повышение уровня абстрагирования
- Непрерывное повышение качества
Адаптация процесса под проект указывает на крайнюю необходимость соответствия масштабов процесса разработки разрабатываемому проекту. Больше - не лучше, меньше - не лучше. Степень контроля и детализации должна соответствовать размерам и числу команд, наличию внешних ограничений и сложности проекта.
Управление запросами заинтересованных лиц означает непрерывный поиск компромиссов и решение возможных противоречий в запросах заинтересованных лиц, определение приоритетов их реализации. Не стоит забывать, что основная цель здесь не удовлетворить всех пользователей разрабатываемой системы, а обеспечить максимальную выгоду от реализации конечного продукта, прежде всего, для бизнеса, минимизировав при этом затраты на разработку.
Организация взаимодействия удаленных команд разработчиков подчеркивает важность тесного сотрудничества участников проекта для достижения максимальной эффективности. При этом специалисты, работающие в проекте, могут находиться далеко друг от друга. Наличие разных часовых поясов может привести к тому, что одни специалисты начинают свой рабочий день, в то время как другие его уже заканчивают. И даже в этих условиях можно и нужно организовать работу без сбоев и простоев.
Итерационный подход к разработке позволяет создавать функционал конечного продукта в виде небольших приращений. При этом наиболее приоритетные части, которые могут принести наиболее быструю бизнес отдачу, реализуются в первую очередь. Параллельно при этом необходимо взаимодействовать с заинтересованными лицами, учитывать все их замечания и предложения и вносить оперативные коррективы в ход проекта. Это дает возможность еще на ранних стадиях значительно уменьшить риски и динамически корректировать процесс, непрерывно направляя его в самое эффективное русло.
Повышение уровня абстрагирования позволяет эффективно бороться со сложностью. Сложность - один из ключевых вопросов при разработке современного программного обеспечения. Именно на преодоление сложности, в первую очередь, направлены сегодня большинство усилий в области разработки информационных систем. На эту борьбу направлены усилия в области создания средств разработки, управления и контроля.
Вопросы разработки устойчивой архитектуры системы с самого начала проекта являются ключевыми, если важно увеличить жизненный цикл системы и снизить затраты на разработку и сопровождение. Грамотно реализованная архитектура, которая предрасполагает к многократному использованию существующих решений, может значительно повысить эффективность проекта. Такие решения (компоненты) могут быть разработаны в проекте своими силами или субподрядчиками, использованы повторно из прошлых проектов или куплены у третьих фирм.
Непрерывное повышение качества - это концепция, которой необходимо уделять внимание на всех этапах жизненного цикла проекта.
Достижение высокого качества - это не просто проверка на соответствие требованиям, либо производство продукта, соответствующего потребностям и ожиданиям пользователей. Качество также включает оценку самого процесса, получение ответов на вопросы о том, насколько хорошо он гарантирует стабильное и неслучайное производство качественных продуктов в ходе разных проектов и можно ли, как минимум, повторить тот же уровень качества в новых проектах.
Итерационный процесс хорошо подходит для обеспечения высокого качества, поскольку в нем по окончании итераций предусмотрены вехи для измерения показателей текущего состояния продукта и проекта и внесения корректив при необходимости.
Очень важным понятием здесь является регрессионное тестирование. Смысл его состоит в том, что при итерационной разработке происходит разработка функционала по частям. Но доработка новой части может привести к выходу из строя уже существующей. По этой причине встает необходимость полного тестирования разрабатываемой системы в каждой итерации. Это и есть суть регрессионного тестирования. Но расходы на такое тестирование могут стать неоправданно высокими, если оно выполняется вручную. Существенно снизить такие расходы может автоматизация процедур тестирования.
Перечисленные концепции реализуются с помощью методологии IBM Rational Unified Process (RUP), архитектуру которой представляет следующий рисунок:
На данном рисунке представлены два измерения:
- Горизонтальная ось представляет время и показывает временные аспекты жизненного цикла процесса
- Вертикальная ось представляет дисциплины, которые определяют физическую структуру процесса
На этом рисунке показано, как с течением времени изменяются акценты в проекте. Например, в ранних итерациях больше времени отводится требованиям; в поздних итерациях больше времени отводится реализации.
Горизонтальная ось сформирована из временных отрезков - итераций, каждая из которых является самостоятельным циклом разработки, цель которого принести некоторую заранее определенную осязаемую доработку в конечный продукт, полезную с точки зрения заинтересованных лиц.
Вертикальная ось состоит из дисциплин, каждая из которых может быть более детально расписана с точки зрения выполняемых задач, ответственных за них ролей, продуктов, которые подаются задачам на вход и выпускаются в ходе их выполнения и т.д.
Ключевые дисциплины жизненного цикла IBM Rational Unified Process (RUP), которые часто на русском языке называют процессами, хотя это не совсем верно с точки зрения данной методологии, поддерживаемые инструментальными средствами IBM (и/или третьих фирм):
- Бизнес анализ и моделирование (примеры инструментальных средств: IBM Websphere Business Modeler, IBM Rational Software Modeler, IBM Rational Rose)
- Управление требованиями (IBM Rational Requirements Composer, IBM Rational RequisitePro, IBM Rational Software Modeler, IBM Rational Rose)
- Анализ и проектирование (IBM Rational Software Architect, IBM Rational Rose)
- Реализация (IBM Rational Application Developer, IBM Rational Web Developer, IBM Websphere Integration Developer)
- Тестирование (IBM Rational Quality Manager, IBM Rational Functional Tester, IBM Rational Performance Tester, IBM Rational Robot)
- Развертывание (IBM Rational BuildForge)
- Конфигурационное управление и управление изменениями (IBM Rational Team Concert, IBM Rational ClearCase, IBM Rational ClearQuest)
- Управление проектом (IBM Rational Project Conductor, IBM Rational Team Concert, IBM Rational Insight, Microsoft Project, IBM Rational ClearQuest)
- Управление средой
Бизнес анализ и моделирование обеспечивает реализацию принципов моделирования с целью изучения бизнеса организации и накопления знаний о нем, оптимизации бизнес процессов и принятия решения об их частичной или полной автоматизации
Управление требованиями посвящено получению информации от заинтересованных лиц и ее преобразованию в набор требований, определяющих содержание разрабатываемой системы и подробно описывающих ожидания от того, что система должна делать.
Анализ и проектирование охватывает процедуры преобразования требований в промежуточные описания (модели), представляющие, как эти требования должны быть реализованы.
Реализация охватывает разработку кода, тестирование на уровне разработчиков и интеграцию компонентов, подсистем и всей системы в соответствии с установленными спецификациями.
Тестирование посвящено оценке качества создаваемого продукта.
Развертывание охватывает операции, имеющие место при передаче продуктов заказчикам и обеспечении доступности продукта конечным пользователям.
Конфигурационное управление и управление изменениями посвящено синхронизации промежуточных и конечных продуктов и управлению их развитием в ходе проекта и поиском скрытых проблем.
Управление проектом посвящено планированию проекта, управлению рисками, контролю хода его выполнения и непрерывной оценке ключевых показателей.
Управление средой включает элементы формирования среды разработки информационной системы и поддержки проектной деятельности.
В зависимости от специфики проекта могут быть использованы любые средства третьих фирм. Причем их можно сочетать с любыми средствами, которые перечислены выше при описании дисциплин.
Изобилие технологий и необходимость адаптации IBM Rational Unified Process (RUP) обычно приводят к необходимости привлечения консультантов. Часто бывает намного выгоднее заплатить компании, профессионально занимающейся постановкой процессов и развертыванием инструментов, которая на базе сложившихся в вашей организации организационных, технических и иных факторов поможет грамотно выстроить процесс разработки, обеспечить его необходимой инструментальной поддержкой, обучить сотрудников и подготовить из них экспертов, способных его далее сопровождать и развивать.
Иной путь кажется более простым - ваша организация сама на свой страх и риск занимается внедрением процессов и инструментальных средств. Но здесь необходимо закладываться на необходимость обучения сотрудников в ходе проекта, отрыв их от основного производства, высокую вероятность ошибок в выстраивании процессов и закупке инструментальных средств, что может привести к неожиданной потере средств и, вдобавок, отсутствию устраивающего конечного результата.
В любом случае, выбор остается за вами. Помните только, что основная цель не заключается в простом внедрении правильных методов ведения проекта и средств, а в оптимизации проектной деятельности и повышении ее качества, т.е., в конечном итоге, получении максимальных бизнес выгод от того проекта, который должен быть организован.
***
Если Вас заинтересовал данный материал и описанное направление, то обращайтесь в нашу компанию. Наши специалисты с многолетним опытом работы готовы эффективно взаимодействовать с Вашей организацией для оказания необходимых консультаций, проведения экспертиз и внедрения управляемых методов разработки информационных систем на основе методологии IBM Rational Unified Process (RUP).
В Каталоге Центра IT обучения "Institutio" представлено несколько специализированных программ обучения по IBM Rational Unified Process, отличающихся друг от друга включенными в них модулями:
- PRUP0001, IBM Rational Unified Process, адаптация и внедрение (полный курс с детальным рассмотрением ключевых процессов и и введением в средство проектирования процессов - IBM Rational Method Composer), 5 дней
- PRUP0002, Введение в IBM Rational Unified Process (краткий обзор IBM RUP), 1 день
- PRUP0003, IBM Rational Unified Process, адаптация и внедрение (обзор IBM RUP и подходов к его адаптации и внедрению, введение в средство проектирования процессов - IBM Rational Method Composer), 3 дня
- PRUP0004, IBM Rational Unified Process для аналитиков и архитекторов (обзор IBM RUP и детальное рассмотрение процессов бизнес-моделирования, управления требованиями и анализа и проектирования), 2 дня
- PRUP0005, IBM Rational Unified Process для программистов (обзор IBM RUP и детальное рассмотрение процесса анализа и проектирования и процесса реализации), 2 дня
- PRUP0006, IBM Rational Unified Process для тестировщиков (обзор IBM RUP и детальное рассмотрение процесса тестирования), 1 день
- PRUP0007, IBM Rational Unified Process для специалистов по управлению изменениями (обзор IBM RUP и детальное рассмотрение процесса управления версиями и конфигурациями), 1 день
- PRUP0008, IBM Rational IBM Rational Unified Process для руководителей проектов (обзор IBM RUP с детальным рассмотрением ключевых процессов), 3 дня