Прошедшую в конце марта в Москве конференцию Enterprise Developers Conference (EDC) вполне можно считать стартом нового сезона взаимодействия ведущих мировых поставщиков с российскими разработчиками корпоративного ПО. Неудивительно, что организатором и главным “наполнителем” этого мероприятия стала Microsoft: не говоря уже о том, что компания не первое десятилетие занимает лидирующие позиции в области средств разработки, и эта конференции состоялась как раз как в канун выпуска в апреле новой версии Visual Studio 2010 — одного из “китов” всей программной платформы корпорации.
Сам по себе факт проведения EDC примечателен еще двумя моментами. Во-первых, Microsoft смогла привлечь в качестве “соучастника” компанию IBM (по сути, именно эти два вендора составляют пару лидеров в сегменте платформ разработки). Такое объединение усилий двух конкурентов, впрочем, выглядит вполне естественным, так как сейчас общая задача повышения качественного уровня разработки ПО в России является более важной, чем “отъедание” доли рынка у соперников.
Вторая особенность заключается в том, что, по замыслу организаторов, EDC была нацелена на корпоративных разработчиков ПО, тех, кто занимается созданием приложений внутри компаний-заказчиков (in-housе). Более того, по мнению Microsoft, EDC стала первым российским мероприятием, ориентированным именно на эту категорию специалистов.
Скажем сразу: признать успешность реализации такой задумки можно лишь с некоторыми оговорками. Специфика in-house-разработки была освещена на конференции недостаточно глубоко. Это проявилось, в частности, и в том, что независимые наблюдатели перевели английский вариант названия конференции как “Конференция для разработчиков корпоративных приложений” (что не то же самое, что “Конференция для корпоративных разработчиков”). По ходу мероприятия было заметно и некоторое несоответствие между темами докладов и ожиданиями аудитории: среди слушателей довольно большую долю (возможно, не менее половины) составляли ИТ-специалисты из числа “принимающих решения” (именно они были объявлены целевой аудиторией в анонсе мероприятия), явно не стремящиеся погружаться в специализированные вопросы разработки ПО.
Впрочем, тут нужно добавить, что помимо двух-трех сотен собравшихся в зале за выступлениями докладчиков наблюдали в ходе прямой Web-трансляции еще около двух тысяч (по данным организаторов) ИТ-специалистов по всей стране. И в целом нужно сказать, что на EDC был представлен хороший обзор текущего положения дел и тенденций в сфере технологий и средств разработки. Разумеется, тут доминировала точка зрения Microsoft, но она отражала во многом общеотраслевое видение ситуации.
Модельно-управляемая разработка
Специально для участия в EDC в Москву приехала целая зарубежная сборная команда Microsoft и IBM, неформальным “капитаном” которой стал архитектор группы данных и моделирования подразделения бизнес-платформ Microsoft Кейт Шорт, отвечавший ранее за общую стратегию развития средств корпорации для проектирования распределенных приложений масштаба предприятия.
Основная идея его двух выступлений заключалась в раскрытии таких главных тезисов:
- повышение эффективности разработки и эксплуатации корпоративных приложений требует использования новых подходов к созданию ПО на базе широкого применения модельно-управляемой методологии (Model-Driven Development, MDD);
- Microsoft имеет полный набор методических и инструментальных средств для претворения концепции MMD в жизнь.
По мнению г-на Шорта, Microsoft, общая тенденция развития методов разработки ПО заключается в переходе от традиционной модели, где главным звеном является создание программного кода (а те же средства моделирования лишь упрощают его процесс), к MDD, в которой роль кода сводится в минимуму, а в идеальном варианте собственно программирование просто уходит со сцены (модели исполняются напрямую в высокоуровневом слое Application Framework).
Все это должно базироваться на основе новых концептуальных подходов к проектированию корпоративных ИТ-систем, в том числе с применением уже подзабытой сегодня SOA (сервисно-ориентированная архитектура), с повышением уровня абстракций при программировании и с расширением использования метаданных при разработке ПО.
С пользой идей MMD трудно спорить, хотя стоит сказать, что любая идея помимо позитивных имеет и негативные аспекты. Чем, собственно, и объясняется во многом то, что данная методология занимает пока далеко не доминирующие позиции в разработке ПО. И тут полезно вспомнить, что MDD — это совсем не такая уж передовая методология, как это могло показаться из выступления Кейта Шорта. Скорее, тут Microsoft очутилась в роли догоняющей лидеров (ту же IBM), но нужно признать, что компания как всегда быстро сокращает разрыв, делая ставку на продвижение передовых технологий на массовый рынок.
Очередной шаг в поддержке MDD и языка UML 2.0 сделан в новой версии Visual Studio 2010. Но наиболее значимым достижением последнего времени, наверное, надо признать выпуск осенью прошлого года SQL Server Modeling Services — такое официальное название получил проект Oslo, о котором компания объявила тремя годами ранее в рамках реализации своей SOA-стратегии.
Изучение реальных возможностей этих средств российскими разработчиками еще впереди, но из презентации архитектора Microsoft было видно, что они хорошо вписываются в общую инструментальную систему корпорации. Однако один традиционный минус у этой новинки все же виден — ориентация на поддержку только собственных платформенных технологий. В то же время безусловно сильной стороной Microsoft является то, что, будучи крупнейшим в мире разработчиком ПО, компания активно распространяет свой опыт в виде методологических рекомендаций (в частности, речь идет о Microsoft Solutions Framework). То, как реально можно использовать те же идеи и средства MDD, корпорация демонстрирует собственным примером: Кейт Шорт сообщил, что именно с их помощью создаются SharePoint, а также приложения семейства System Center.
Если же говорить о необходимости поддержки гетерогенной среды разработки ПО, то здесь Microsoft ориентируется на традиционный для себя “косвенный” вариант использования дополнительных средств, создаваемых независимыми разработчиками, которые быстро заполняют появляющийся разрыв между спросом и предложением. Впрочем, в последние годы Редмонд делает и собственные шаги в этом направлении. Так, ключевой компонент ее инструментальной системы — средство поддержки групповой разработки Visual Studio Team Foundation Server — в значительной степени развивается именно как платформно-независимый. Возможность его использования в режиме гетерогенной коллективной работы была показана в одном из докладов представителем компании Quest Software на примере программирования баз данных Oracle. Отметим также, что в новую версии Visual Studio 2010 включен набор средств Teamprise Client Suite, приобретенных в ноябре 2009 г. у компании SourceGear и позволяющих, в частности, напрямую взаимодействовать со средой Eclipse.
Организация проектных работ
В деле повышения эффективности разработки ПО помимо совершенствования собственно технологий ключевую роль играют также организационные вопросы. Что же касается внутрикорпоративной разработки, то здесь они имеют свою специфику, которая заключается в необходимости привязки процессов создания ПО к бизнес-задачам компаний. В последние два-три года именно на этот аспект делает особый акцент IBM, которая еще год назад объявила курс на соответствие требованиям бизнеса стратегической линией развития свой платформы Rational.
На EDC эту тему взаимодействия разработчика с его корпоративным окружением поднял в своем выступлении эксперт по архитектуре информационных систем Microsoft Сергей Орлик. Особое внимание он обратил на увязку выполнения задач бизнеса с требованиями информационной безопасности. А главный софтверный экономист IBM Уокер Ройс обозначил на конференции другой, более общий вопрос — повышение экономической отдачи от разработки ПО. Главный тезис своего доклада он сформулировал следующим образом: “Экономический фактор в большинстве ИТ-компаний гораздо важнее инженерного. При управлении проектами решения должны приниматься на основе таких аспектов, как себестоимость и ценность программного продукта, человеческий фактор, макроэкономические условия, лидирующие технологии, рыночные тенденции, а также фактор времени. Снижение степени неопределенности в проекте — вот к чему в первую очередь должны стремиться менеджеры проектов”.
О возможностях контроля за ходом выполнения проекта с помощью формальных метрик и отчетов говорилось в докладе еще одного эксперта Microsoft, Дмитрия Андреева. Однако, хотя сам он при этом сосредоточился в основном на возможности решения данной задачи с помощью средств новой версии Visual Studio 2010, главный вывод, который можно сделать из его выступления, наверное, можно представить так: программисту нужно заранее подумать о подготовке отчетов о своей работе, не дожидаясь внезапного вызова “на ковер” к начальству, а руководству компаний надо постоянно следить за подобными проектами, для чего ему следует обязать своих сотрудников подготавливать пусть краткие, но регулярные отчеты.
Однако сама подборка докладов на EDC наглядно показала сложность и внутренние противоречия процессов создания ПО. Так, например, тот же Уокер Ройс обращал внимание на то, что лучшие практики ставят во главу угла оценку рисков и снижение неопределенности в проектах по разработке ПО. Но дело в том, что сейчас в этой сфере быстро набирают популярность методы управления проектами, которые вообще не используют какие-то практики.
Действительно, на протяжении всей истории создания ПО софтверная разработка развивается в рамках единства и борьбы двух противоположностей — жестко регламентированных методов управления и гибких подходов. Наиболее известные представители первого варианта — это как раз методологии лидеров этого рынка — IBM Rational Unified Process и Microsoft Solutions Framework. Второй лагерь включает целое семейство методик, объединенных сегодня концепцией Agile (быстрый, проворный), включающей перечень ценностей и принципов, которыми должны руководствоваться команды разработчиков, но не использующей (в отличие от жестких методов) имеющиеся в отрасли практики. В упрощенной формулировке Agile подразумевает переход от последовательного выполнения этапов разработки (проектирование — кодирование — тестирование) к параллельному с продвижением к конечной цели небольшими шагами путем быстрого выпуска серии релизов продукта. Организационно Agile-методы основаны на непосредственном общении всех участников процесса разработки “лицом к лицу”, что сводит к минимуму объем управленческой документации (создание которой занимает очень большую часть времени в жестком варианте).
Принципиальные достоинства и недостатки обоих концептуальных подходов давно и хорошо известны, и столь же давно общепризнанным считается, что реализация крупных, ответственных проектов должна базироваться на жестко регламентированных методах. Помимо всего прочего одной из причин тут является то, что Agile подразумевает нахождение команды разработчиков в одном офисе, что накладывает очевидные ограничение на масштабы реализуемых проектов.
Возможность объединения распределенных коллективов разработчиков общим виртуальным пространством с помощью современных коммуникационных средств открывает принципиально новые перспективы для использования Agile в крупных, в том числе в корпоративных, проектах.
Но тут нужно отметить, что сейчас само понятие “групповая разработка” трактуется совсем иначе, чем даже всего несколько лет назад. Речь идет не просто о команде или распределенной группе специалистов, находящихся в разных точках планеты. Сегодня важно то, что такая команда может иметь минимальные организационные связи. Например, теперь совсем необязательно, чтобы все специалисты работали в одной компании: это могут быть и офшорные субподрядчики и даже индивидуалы.
Что касается использования модели софтверной разработки со слабыми организационными связями, то здесь большой опыт получен в сообществе свободного ПО, и крупные компании (те же IBM и Microsoft) уже давно не только изучают, но и используют в собственной деятельности такие подходы. В последние же годы они активно продвигают эти идеи в сообщества своих партнеров и клиентов.
О возможностях применения Agile шла речь и на EDC. Причем, если ведущий программный менеджер Microsoft Григорий Мельник из Редмонда говорил больше об этом на общеметодическом уровне, то технический специалист IBM Тимур Маркунин делал акцент на возможности применения конкретных средств платформы Rational Jazz.
Нас ждут облака
Среди других тем, которые были затронуты на EDC (там обсуждались еще различные направления разработки приложений, в основном с использованием платформы Microsoft, в частности, SQL Server, SharePoint, Dynamics CRM, Silverlight), стоит выделить еще одну, качественно новую тему. Речь идет о создании облачных приложений.
Этому вопросу был посвящен доклад советника по платформенной стратегии департамента стратегических технологий российского отделения Microsoft Дмитрия Мартынова “Готовимся к эре облачных вычислений. Практика проектирования и архитектура приложений для работы в облаке и в локальном ЦОДе”. В нем было представлено общее видение Microsoft возможности использования облачных вычислений в корпоративных системах на основе своей платформы Azure и сделан краткий обзор средств разработки ПО, которые корпорация предлагает в этой связи своим партнерам и заказчиком. Но все же, на наш взгляд, суть презентации заметно расходилась с ее названием в одном важном аспекте: речь на конференции все же шла не о практике, а о теории.
Проблема с облаками заключается как раз в том, что пока реальные перспективы практического применения этой архитектуры достаточно туманны (что во многом усугубляется национальными аспектами — ведь Azure в России сегодня недоступна, и пока неизвестно, когда с ней смогут работать отечественный компании). Признавая то, что Cloud Computing представляет собой отчетливый вектор развития ИТ, нужно сказать, что оценить хотя бы приблизительно размеры круга и глубину использования этого подхода в корпоративных ИТ сейчас довольно сложно. Это можно будет сделать только опытным путем, а эксперименты в данной сфере еще только-только начинаются.
Вместе с тем можно только согласиться с ключевым тезисом этого доклада: готовиться в возможному переходу в облака, учитывая это в том числе в сегодняшней практике разработки приложений, нужно уже сейчас. Хотя анализ ситуации позволяет говорить о том, что корпоративные разработчики начнут реальное опробованием облачной инфраструктуры только уже после ее освоения с помощью модели SaaS софтверными вендорами.
От теории к практике
Туманные перспективы облаков неплохо отражают одну из главных проблем российской отрасли разработки ПО: мы очень мало знаем о реальных процессах, происходящих в этой сфере, в том числе о практике использования тех или иных методов и технологий. Все это наглядно продемонстрировала EDC: мнение собственно корпоративных разработчиков по теме на конференции представлено не было. Да и докладчики от вендоров не особенно пытались подкрепить свои соображения анализом отраслевого опыта.
Довольно характерные отзывы о прошедшей конференции удалось получить в кулуарных разговорах с представителями (пожелавшими сохранить инкогнито) разных категорий участников.
- Разработчик ПО: “В общем-то мы в курсе всех этих технологий и методик. Но как нам убедить руководство в нецелесообразности траты средства на приобретение, доработку и сопровождение очередного промышленного решения? Как убедить его в необходимости развития собственной разработки ПО, повышения квалификации программистов и приобретения современных инструментов?”
- Руководитель ИТ-направления крупной корпорации: “Про современные инструменты и методы мы знаем. Но где гарантии, что они дадут обещаемый эффект? Для этого уверений поставщиков недостаточно, нужен хороший анализ отраслевого опыта, в том числе отечественного. К тому же надо разобраться в принципе: что разрабатывать самим, что заказать на стороне, а что лучше купить в виде готового продукта”.
- ИТ-журналист (со стажем): “А что, разве корпорации еще содержат своих собственных разработчиков? Зачем? Ведь есть готовые решения, а что нужно — можно заказать у ИТ-компаний. С чего это вдруг: десять лет молчали про in-house-разработку и вдруг решили вспомнить?”