Что происходит на рынке средств разработки приложений

Веяния времени

Одних базовых средств разработки сегодня уже недостаточно. Необходима технология, позволяющая охватить и контролировать все процессы и этапы жизненного цикла ПО. Согласно стандартам ISO, эти процессы включают: анализ и формирование требований к продукту, моделирование и проектирование ПО, разработку ПО, эксплуатацию, сопровождение, подготовку и выпуск документации, управление конфигурациями и изменениями, тестирование, управление проектом. Сейчас системы поддержки жизненного цикла ПО выходят на первый план. «Говоря о современных тенденциях, я бы хотел подчеркнуть, что процесс разработки становится все более зрелым, — сказал Кирилл Раннев, глава российского представительства Borland. — А из всех этапов жизненного цикла стоит выделить анализ и формирование требований. В некотором смысле эта часть лежит за пределами обычной «программистской жизни». Однако роль данного этапа велика, так как именно здесь закладываются основные гарантии того, что заказчик получит желаемый результат, а также удастся оценить сроки и бюджет проекта».

Андрей Панков, генеральный директор компании Verysell-6, добавил, что сейчас все больше внимания уделяется сопровождению и развитию существующих программных систем. Поэтому инструменты должны удовлетворять дополнительным требованиям: поддерживать обратное проектирование (Reverse Engineering — создание информационных моделей из существующих баз данных), обеспечивать автоматическое документирование и управление версиями.

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

Проблема интеграции стоит и перед заказчиками. Часто предприятия используют разные программные системы, слабо связанные между собой. Это характерно и для Запада, и для нашей страны с ее «лоскутной» автоматизацией. Существует много способов для их объединения в единое информационное пространство. Один из них — реализация функций приложений, к которым следует предоставить доступ извне в виде Web-сервисов. Тогда другие программы, поддерживающие технологию Web-сервисов, смогут обращаться к этим функциям независимо от того, на каких платформах они работают. В настоящее время популярность данного метода интеграции быстро растет, и большинство производителей средств разработки реализовали его поддержку. «Развиваются технологии и стандарты, облегчающие взаимодействие различных приложений через Web, например SOAP, WSDL, UDDI, XML, — сказал Андрей Панков. — Сейчас разработка Web-сервисов — самое перспективное и быстро растущее направление, а наиболее распространенные платформы для их разработки — это J2EE и Microsoft .NET».

Другой способ интеграции приложений — создание кросс-платформных решений. По словам Андрея Евстафьева, руководителя отдела продаж компании «Диалог.СФТ-Сервис», именно в этом направлении развивают свои средства разработки Microsoft, Borland, Intel и другие игроки. «Но они решают эту задачу по-разному: если Microsoft ставит во главу угла продвижение собственной платформы .NET, то Borland создает продукты, которые не привязаны к конкретной платформе и позволяют легко переносить написанный ранее код на другую платформу, — пояснил он. — Intel также участвует в этом процессе, параллельно выпуская новые версии средств разработки для платформ Windows и Linux».

Помимо Web-сервисов разработчики применяют и традиционные технологии интеграции приложений. «При разработке нашего нового программного комплекса LyriX мы использовали модульную архитектуру, а для связи модулей — технологию CORBA, которая не только упрощает расширение комплекса, но и предоставляет мощные возможности его интеграции с другими системами», — сообщил Роман Полозов, директор по международным продажам компании «ААМ Системз». А в отделе ИТ главного финансово-казначейского управления администрации Волгоградской области, по словам заместителя начальника Евгения Даниленко, для интеграции используются методы объектно-ориентированного программирования и функционально-ориентированного проектирования. Не забывают разработчики и о повышении качества ПО. Например, в компании e-Style Software House, входящей в группу E-Style, по сообщению менеджера по маркетингу Константина Конина, внедрена система управления качеством и создан соответствующий отдел, а при разработке ПО применяются мировые стандарты проектирования.

Кто они, пользователи?

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

У Microsoft заказчики самые разные. «Наши средства разработки покрывают практически весь спектр рынка. Есть продукты, которые используют люди, для которых программирование — это хобби, а есть системы, в которых могут разобраться только сотрудники отделов автоматизации крупнейших корпораций, — сказал Андрей Крючков, менеджер по средствам разработки представительства Microsoft в России и СНГ. — Мы предлагаем специальные программы и инструменты для независимых разработчиков, вузов, системных интеграторов и создателей корпоративных систем». Основные заказчики Borland — крупные коллективы разработчиков, хотя по формальному признаку — это предприятия СМБ. Что, впрочем, вполне естественно. Ведь, как отметил Андрей Евстафьев, в любой стране число больших компаний, непосредственно занимающихся разработкой ПО, исчисляется единицами. Поэтому основную массу составляют фирмы или отделы предприятий с количеством разработчиков от 2 до 10.

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

От базовых функций к поддержке жизненного цикла приложения

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

Как уже отмечалось выше, во всем мире сейчас становятся популярными комплексные решения управления жизненным циклом приложений. Подобное смещение интересов — логическое следствие повышения требований к качеству разработки и усложнению создаваемых приложений. Если раньше разработчик мог держать в голове всю архитектуру программного продукта, то теперь приходится проектировать приложение с использованием CASE-средств. Другая причина — удлинение жизненного цикла программных систем. Их развитие не заканчивается после ввода в эксплуатацию, поэтому инструментальные средства должны обладать широкими функциональными возможностями, например, быть способными обеспечить управление запросами на изменение, а также выполнять другие аналогичные функции. Правда, добавил Андрей Панков, в России эта тенденция выражена несколько слабее, чем на Западе. У нас массовым спросом пользуются среды разработки начального уровня. А средствами поддержки жизненного цикла приложений и их интеграцией со средами разработки интересуются в основном крупные компании—разработчики ПО и предприятия, предъявляющие повышенные требования к надежности программных систем. Внимание к передовым технологиям отметил и Андрей Евстафьев. Он объяснил это тем, что к настоящему времени программного кода написано очень много, и разработчики хотят использовать его в новых приложениях, чтобы снизить себестоимость продуктов. Однако, учитывая невысокую стоимость труда программистов в России, в некоторых случаях приобретение таких средств обходится дороже, чем разработка нового приложения с нуля. Но эта ситуация постепенно меняется. В нашей стране растет уровень окладов профессиональных разработчиков и их количество. Поэтому можно надеяться, что в ближайшее время в России, как пару лет назад в Америке и в Европе, значительно вырастет спрос на средства поддержки жизненного цикла.

Отечественные компании—разработчики ПО уже сейчас применяют многие передовые технологии. Так, для создания пакета программ, предназначенных для главного финансово-казначейского управления администрации Волгоградской области, используются среда разработки, система моделирования и средства контроля и хранения версий. А в E-Style Software House работа проектных групп организована как по локальному, так и территориально-распределенному принципу в зависимости от способа взаимодействия с заказчиком. При этом используются средства планирования и контроля выполнения проекта, управления версиями ПО, обмена сообщениями, управления запросами на изменение ПО, конференц-связи. Следует отметить, что перечисленные продукты выпущены несколькими поставщиками. Это лишний раз свидетельствует о том, что современные инструменты могут работать вместе, а заказчики - выбирать из них самые подходящие.

Консервативный подход

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

По словам Андрея Панкова, это соотношение зависит от ценовой политики поставщиков, периодичности выпуска новых версий и стоимости обновлений. Продажа новых лицензий означает расширение числа пользователей и, как правило, приносит больше выгоды, чем продажа обновлений. Поэтому основная цель вендоров — продвижение новых лицензий, хотя продажа обновлений также вносит существенный вклад в их прибыль. У Microsoft, по словам Андрея Крючкова, заказчики в большинстве случаев покупают обновления старых версий. Но в связи с тенденцией к легализации ПО многим из них приходится приобретать системы впервые, поэтому соотношение между новыми лицензиями и обновлениями составляет примерно 50/50. Компания «Диалог.СФТ-Сервис» имеет много постоянных клиентов, которые регулярно обновляют версии. А Borland сейчас старается заменить разовые поставки upgrade-версий на плановое обновление продуктов по подписке, но в обозримом будущем сохранит обе схемы.

Поддержка и услуги

Сопутствующие услуги очень важны для любого ИТ-продукта, особенно для такого сложного, как средства разработки. Более того, в нашей стране именно сервис часто становится основной причиной, подталкивающей пользователей к приобретению лицензионного ПО. Другими словами, покупая официальную лицензию, пользователь платит не столько за продукт, сколько за поддержку. Как же организована техническая помощь в области средств разработки?

В Microsoft заказчики могут бесплатно обращаться в службу поддержки компании, а подписчики MSDN, покупая продукт, получают и право на определенное количество обращений в платную службу технической поддержки, которая может решать очень сложные проблемы у заказчиков. Обучением разработчиков занимаются партнеры Microsoft.

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

Мнения специалистов относительно спроса на обучение и консалтинг в области средств разработки расходятся.

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

Что нужно разработчику

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

Но остаются и нерешенные проблемы. По мнению Романа Полозова, в современных инструментах недостаточно эффективно реализована поддержка процесса изменений ПО. «Хотя и предусмотрены специальные «мастера» для выполнения часто встречающихся операций, но на практике их применение оправдано только при разработке новых систем, - объяснил он. - А для создания тиражируемого, постоянно изменяемого пакета необходимы инструменты, которые автоматизируют не первоначальное создание кода, а изменение ранее написанного. Особенно это касается средств создания инсталляторов».

А Константин Конин считает, что нужны более легкие и простые в освоении решения. «В реальной жизни программисты используют не более 30% возможностей, реализованных в интегрированных средах разработки, причем в первую очередь это касается Java-инструментария, — сказал он. — Желательно иметь простую базовую среду, в которую по мере необходимости можно добавлять другие компоненты». Рост сложности средств разработки отметил и Евгений Даниленко. По его мнению, это связано с тем, что среда разработки все более тесно интегрируется со средствами моделирования, управления требованиями и коллективной работы, а это в свою очередь вызвано увеличением сложности и масштабности программного обеспечения.

Заключение: самое интересное впереди

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