“Software. Everywhere” — этот англоязычный каламбур, ставший девизом очередной ежегодной конференции IBM Innovate 2011 в Орландо (США), сегодня не нуждается в дополнительных разъяснениях. Действительно, в наше время трудно представить себе сколько-нибудь сложное изделие, в котором не были бы “зашиты” компьютерные программы. Это может быть детская игрушка или современный автомобиль. В одном из докладов рассказывалось о том, как с помощью инструментов IBM Rational (именно им и посвящен данный форум) за 29 месяцев специалистами General Motors было создано ПО для бортового компьютера последней модели автомобиля Chevrolet Volt, содержащее более 10 млн. строк кода. Не менее сложные задачи приходится решать и разработчикам бизнес-приложений. О решении этих задач, по-видимому, в силу специфики российского рынка, мы пишем гораздо чаще, но на международном форуме, каковым является Innovate 2011, особенно бросается в глаза обилие фирм, занимающихся разработкой ПО для встроенных систем. В любом случае создание программных решений обретает все больше черт настоящей промышленной технологии и требует специальных методологий и инструментов для ее реализации.
Указанные методологии и инструменты уже имеют свою многолетнюю историю, но продолжают развиваться с учетом происходящих в отрасли изменений. Один из наиболее важных трендов — глобализация, превратившая разработку ПО в процесс, охватывающий множество групп и отдельных программистов, которые трудятся над одной задачей, находясь в разных странах и не видя друг друга. Согласно опросу IBM CEO Study (в нем участвовали 1500 исполнительных директоров из 60 стран), результаты которого сообщил генеральный директор IBM Software Rational Кристоф Клекнер, две трети глобальных корпораций управляют группами разработчиков, находящимися в разных странах и вовлеченными в один проект. Как добиться того, чтобы такие распределенные команды работали как единая организация, создавали программы с требуемой функциональностью, производительностью, надежностью, укладываясь в запланированные сроки и бюджеты? О том, что вопросы эти далеко не праздные, свидетельствуют результаты упомянутого исследования: более 60% проектов по разработке ПО не были завершены в срок, а 30% затрат оказались связаны с неполным соответствием предъявляемого ПО исходным требованиям и необходимостью корректировки программного кода.
“Улучшение экономических показателей “софтверного производства” давно уже стало нашей главной целью, — подчеркнул директор IBM Rational по экономике разработки ПО Уолкер Ройс. — Однако сегодня мы достигли предела на пути повышения производительности отдельного программиста и должны думать о том, как сделать более эффективным труд распределенных коллективов разработчиков”. На данной конференции IBM представила целый ряд новых решений, призванных помочь организовать совместную работу таких коллективов, включающих наряду с разработчиками представителей стороны, отвечающей за эксплуатацию созданного ПО. Прежде чем говорить об этих решениях, хотелось бы обратить внимание на должность Уолкера Ройса — Chief Software Economist. Не исключаю, что, как и многие другие нововведения IBM, позиция CSE со временем появится в штатном расписании большинства компаний софтверной отрасли.
Сначала отметим, что представленные на Innovate 2011 новые решения базируются на открытой платформе Jazz, патронируемой IBM и обеспечивающей внутрикомандное взаимодействие проектантов и разработчиков, обращающихся к репозиторию совместно используемых ресурсов. Так, очередные версии продуктов Rational Rhapsody Design Manager и Rational Software Architect Design Manager объединены в пакет Collaborative Design Management, позволяющий интегрировать задачи проектирования с процессами разработки на основе общего хранилища информации, содержащего требования к ПО, исходные коды, программы тестирования и контроля качества. Как считает вице-президент IBM Rational по разработке Хэриш Грамма, преимущество такого подхода в том, что теперь можно будет проследить все действия, выполняемые в ходе создания программного продукта, и подвергнуть их анализу. По аналогии с Business Intelligence, он говорил о Development Intelligence — аналитическом подходе к оценке эффективности процессов на всех этапах создания ПО. Такой анализ становится возможным благодаря наличию единого хранилища проектной информации, которое, кроме того, помогает организовать повторное использование программных модулей, документировать их и контролировать соответствие тем или иным нормативам. Важно, что хранилище доступно всем участникам проекта.
Еще один пакет, объединивший очередные версии продуктов Rational Team Concert, Rational Requirements Composer и Rational Quality Manager, получил название Collaborative Lifecycle Management и призван улучшить управление изменениями ПО и жизненным циклом процесса его коллективной разработки. В частности, Rational Team Concert — средство управления изменениями, предоставляющее разработчикам инструменты мониторинга исходного кода, контроля сборок и релизов, управления проектами и потоками работ и поддерживающее платформы разработки IBM и других вендоров. Rational Requirements Composer позволяет распределенным командам разработчиков контролировать требования к ПО, поступающие от заказчиков, партнеров и регулирующих органов. Rational Quality Manager помогает автоматизировать процессы тестирования и контроля качества, включая в них всех участников: разработчиков, аналитиков и тестировщиков.
Представители IBM всячески подчеркивают, что формирование подобных пакетов позволяет не просто суммировать функциональность входящих в них продуктов, но и дает множество новых возможностей, благодаря их тесной интеграции. Интеграция стала одной из главных тем форума. Так, функциональность решения IBM Smart Business Desktop Cloud существенно расширена за счет его интеграции с продуктами Rational Application Developer и Rational Software Architect, а использование социально-сетевых коммуникационных средств IBM Connections позволит находить внутри организации экспертов по той или иной проблеме и вовлекать их в процесс распределенной разработки. Во многом, подобная интеграция базируется на открытых стандартах, в частности на спецификации Open Services for Lifecycle Collaboration (OSLC), призванной обеспечить управление жизненным циклом коллективной разработки за счет стандартизации доступа к общей информации о требованиях, заданиях, запросах на изменения, тестах и обмена такой информацией между членами команды. IBM заявляет о твердой поддержке OSLC, одним из знаков которой стал анонс на Innovate 2011 нового Eclipse-проекта под кодовым названием Lyo, цель которого создание OSLC-совместимого SDK для поставщиков инструментальных средств.
Нельзя не отметить еще одну тенденцию рынка разработки ПО, которая бросалась в глаза при осмотре выставки, традиционно сопровождающей подобные конференции. Чуть ли не на каждом стенде звучали слова “облака” и “мобильные приложения”. При этом речь шла как о готовых приложениях, так и об инструментах для их создания, а также об использовании облачных архитектур в качестве платформы для распределенной разработки. Хорошим подспорьем для решения подобных задач может стать продукт Deployment Planning & Automation, призванный автоматизировать и оптимизировать процессы развертывания приложений за счет многократного использования созданных ранее модулей, независимо от того, где они находятся в настоящий момент: в корпоративном дата-центре или облаке.