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

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

Чтобы ответить на эти и другие вопросы, вспомним основные вехи на пути развития инструментальных средств.

Длинный путь за короткое время

Средства разработки ПО напрямую связаны с методами программирования. За время существования вычислительной техники эти методы прошли путь от алгоритмического программирования к структурному и затем к объектно-ориентированному. На первом этапе главное внимание уделялось теоретическому обоснованию базовых конструкций языков высокого уровня, низкоуровневых алгоритмов и численных математических методов. Но со временем алгоритмический подход начал давать сбои, особенно при проектировании сложных программ. В 1968 г. Эдсгер Дейкстра выдвинул идею структурного программирования — метода проектирования программ из набора иерархически организованных компактных модулей, имеющих только одну входную и одну выходную точки. Эта концепция оказалась мощной, достаточно простой и работоспособной — с ее помощью было создано множество надежных программных комплексов.

Но сложность программ продолжала расти, на подготовку квалифицированных программистов требовалось все больше времени и расходов, а рынок заставлял сокращать сроки разработки. Чтобы решить эти проблемы, нужно было перевести производство ПО на индустриальные рельсы. И такой способ нашелся. Им оказался метод объектно-ориентированного программирования (ООП), основоположниками которого считаются норвежцы Дал, Мюрхог и Нюгорт. Именно они в 1960 г. создали язык моделирования Simula, а затем дополнили его механизмами наследования и инкапсуляции, придумали термины «класс» и «объект» и, что еще более существенно, ввели дисциплину написания программ. Язык Simula — это родоначальник всех современных объектно-ориентированных языков.

Развитие технологии ООП продолжалось и дало толчок к появлению метода компонентной разработки (Component Based Development, CBD), который опирается на принцип декомпозиции — система разбивается на «активные сущности» (объекты или компоненты), взаимодействующие друг с другом путем обмена сообщениями. И, наконец, недавно на первый план вышли последние новинки — Web-сервисы, призванные играть роль универсального «клея» для соединения компонентов распределенных систем, и сервис-ориентированные архитектуры ПО, обеспечивающие свободные связи систем и неразрывную интеграцию.

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

Объектно-ориентированный подход привел к возникновению метода визуального программирования, а средства разработки превратились в интегрированные среды для разработки, отладки и компоновки (Integrated Development Environment, IDE), которые значительно упростили жизнь программистов. Появилась технология автоматизированного проектирования и создания программ (Computer Aided Software Engineering, CASE), позволяющая моделировать предметную область и анализировать модель на всех стадиях разработки и сопровождения приложения. Те, кому CASE-технология кажется слишком сложной, смогли воспользоваться методами ускоренной разработки (Rapid Application Development, RAD) и экстремального программирования. А недавно обрела популярность концепция управления жизненным циклом приложения — от определения требований до разработки, кодирования, тестирования и внедрения, которая, как ожидается, позволит повысить качество и продлить срок службы приложений.

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

Сегодня на рынке имеется огромное разнообразие инструментов разработки, но явного лидера назвать сложно. Практически все ведущие производители программных продуктов располагают развитыми технологиями создания программ. В их числе — Borland, Computer Associates, Symantec, IBM, Oracle, Microsoft, Sun, Macromedia и другие. Каждая компания предлагает для разработки приложений не один, а множество инструментов, которые сильно различаются по совместимости с языками программирования, технологическими платформами, а также по функциональным возможностям.

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

Рынок хороший, но ...

Сейчас на рынке средств разработки складывается благоприятная ситуация как у нас, так и за рубежом. Очевидно, это связано с высоким спросом на ПО. Так, по прогнозу аналитической компании IDC, в текущем году продажи средств разработки и развертывания приложений вырастут по сравнению с 2003 г. на 5,4% в Западной Европе и на 7,3% в США. Такой темп роста сохранится в ближайшие четыре года, и в результате, в 2007 г., объем этого сектора в Америке достигнет 27 млрд. долл. В Западной Европе рынок тиражного ПО увеличится по сравнению с 2003-м на 5,6%. У нас темп роста гораздо больше. По данным РБК, в прошлом году продажи тиражного софта выросли на 42% и достигли 1 млрд. долл., а заказного — на 25% и составили 230 млн. долл. Ожидается, что и в нынешнем году рост сохранится на том же уровне, и в результате объем рынка ПО достигнет 1,8 млрд. долл.

Что касается средств разработки, то точную оценку дать трудно, так как отдельно этот сектор не рассматривается, да к тому же эти продукты сложно отделить от других приложений. Тем не менее приблизительную оценку получить можно. По мнению Андрея Панкова, генерального директора компании Verysell-6, входящей в группу Verysell, на долю средств разработки приходится около 10% рынка ПО. Если исходить из данных РБК, то в прошлом году объем этого сектора был равен примерно 130 млн. долл.

Все поставщики отмечают подъем рынка. Так, Андрей Крючков, менеджер по средствам разработки представительства Microsoft в России и СНГ, сообщил, что уровень продаж этих продуктов растет с каждым годом, опережая средние показатели в области ИТ. Одна из причин — бурное развитие рынка труда программистов в регионах, что стимулирует рост спроса на инструменты. Другая причина, по мнению Кирилла Раннева, главы российского представительства Borland, состоит в том, что среди занятого населения России доля разработчиков больше, чем в других странах. Поэтому продажи в нашем регионе стабильно увеличиваются, например у Borland — на 25—35% в год. Поскольку эта компания поставляет только средства для разработки, ее показатель может служить индикатором для всей отрасли.

Растут продажи и у компании «Диалог.СФТ-Сервис», реселлера Microsoft, который специализируется на средствах разработки. Руководитель отдела продаж Андрей Евстафьев объясняет это несколькими причинами. Во-первых, появляются новые версии, и цены медленно, но увеличиваются. Во-вторых, относительная экономическая стабильность в нашей стране способствует появлению новых команд программистов, разрабатывающих приложения как для внутреннего, так и для внешнего рынка. А поскольку нередко такие команды находятся в регионах, растут и региональные продажи.

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

... сильно мешает пиратство

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

Специфика продвижения

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

Поставщики в курсе этих проблем и стараются помочь партнерам. Например, Microsoft оказывает дополнительную поддержку тем из них, кто специализируется на продвижении средств разработки. В частности, известно, что помимо пиратства продажи затрудняет отсутствие локализации. Недавно Microsoft первой из поставщиков средств разработки адаптировала пакет VisualBasic.NET 2003.

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

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

Продолжение следует