Разработка программного обеспечения глазами лидера индустрии
Технологии разработки программного обеспечения, равно как и состав ИТ-проектов в целом, в последнее время претерпевают весьма серьезные изменения, которые оказывают влияние и на тех, кто реализует эти проекты, и на тех, кто потребляет их результаты. Поделиться прогнозами по поводу дальнейшей эволюции ИТ-проектов и ответить на вопросы нашего ответственного редактора Наталии Елмановой мы попросили вице-президента Microsoft Developer & Platform Evangelism Group Санджая Партасарати.
КомпьютерПресс: Какими, на ваш взгляд, могут быть типичные ИТ-проекты в ближайшем будущем?
Санджай Партасарати: Существует несколько ключевых областей, в которых следует ожидать появления интересных проектов. Одна из потрясающе интересных областей — это средства бизнес-аналитики, ставшие невероятно популярными в последние три года. Я думаю, в ближайшие три-четыре года начнется активное применение технологий виртуализации с тем, чтобы люди не просто смотрели на данные, а могли видеть саму информацию. Дело в том, что многочисленные исследования свидетельствуют о том, что решения, принятые на основе визуальной информации, намного более качественные, нежели те, что приняты на базе текстовых или цифровых данных.
Качественная поддержка принятия решений важна, например, для пилотов или врачей — везде, где решается вопрос жизни и смерти. К примеру, сегодня отнюдь не редкость неправильные решения врачей, в том числе приводящие к фатальному исходу, такие как назначение неверного лекарства, неправильное или несвоевременное назначение лечения, ошибки в диагнозах. Поэтому нужно делать все возможное для того, чтобы врачи принимали правильные и оптимальные решения, в том числе предоставлять информацию о пациенте максимально доступным путем.
Однако не только врачи, но и инженеры нуждаются в поддержке принятия решений. Трехмерная модель конструкции намного понятнее, чем рулон чертежей. Поэтому, я полагаю, в области визуализации и моделирования появится много сложных проектов.
Стоит также обратить внимание на развитие технологий видеоигр. В настоящее время предлагается большое количество хороших видеоигр. Раньше, чтобы создать такую игру, требовалось потратить немало усилий. Сегодня современные технологии позволяют осуществлять трехмерную визуализацию, и именно в этой области интеграция инженерного дизайна и традиционной разработки программного обеспечения проявляется наилучшим образом. Можно привести примеры компаний, начавших применять технологии, ранее характерные для видеоигр, в области бизнес-приложений, например финансовых услуг. Так, специализировавшаяся раньше на играх компания MatrixOne стала создавать решения для визуализации портфелей ценных бумаг. Таким образом, интеграция инженерного дизайна и традиционной разработки программного обеспечения в конечном счете приводит к появлению новых возможностей в области анализа данных, которая сегодня очень важна.
КП: Сейчас значительная часть ИТ-проектов связана не с разработкой, а с внедрением готового программного обеспечения. Количество компаний — производителей ПО уменьшается, многие из них исчезают или меняют профиль, становясь системными интеграторами или внедренцами. Как вы думаете, исчезнут ли окончательно индивидуальные разработчики и маленькие команды?
С.П.: Мы проводили серьезные исследования на эту тему. В мире становится все больше компаний — разработчиков ПО с прибылью более 20 млн долл. в год, и сегодня их намного больше, чем 5-10 лет назад. В мире существует около 1,5 тыс. компаний, получающих прибыль, превышающую 5 млн долл. в год, и 73 тыс. компаний, годовая прибыль которых ниже 5 млн долл. Однако только ограниченное число компаний-разработчиков получают стабильную прибыль в течение 5 лет. Таким образом, происходят два процесса: создаются маленькие компании, которые явно не выживут самостоятельно, и существует некоторое количество больших компаний, которые растут, в том числе и за счет маленьких. В целом это нормальный процесс.
Я согласен с вами, что приложения масштаба предприятия становятся слишком сложными и требуют дорогостоящих проектов по внедрению. Каково же решение данной проблемы? Я вижу четыре направления деятельности, открывающие интересные возможности.
Первое из них — заново подумать о способах создания ПО, особенно если бизнес-приложения будут становиться все сложнее и сложнее, как, например, современные ERP-системы — для создания такой системы требуется десять лет и сотни миллионов долларов, чтобы выполнить проект внедрения. Один из способов решения этой проблемы — концепция ПО как сервиса. Пока потребители опасаются пользоваться подобными услугами, поскольку не так просто найти компанию, предоставляющую нужную им функциональность и готовую взять на себя все проблемы системной интеграции. В этой области сложно что-то предсказывать, но я думаю, что значительная часть программного обеспечения и для предприятий, и для конечных пользователей в ближайшие 10-20 лет будет преобразована в ПО как сервис.
В развитии любой деятельности существуют циклы. Сегодня вы становитесь из разработчика системным интегратором, а завтра начнете создавать ПО как сервис, поскольку это сулит неплохие возможности.
Второе направление — это при реализации комплексных проектов разобраться в том, как была построена внедряемая система и как ее представить в виде сервиса. Подобный подход снижает комплексность проекта, позволяет осуществлять повторное использование кода, дает уверенность в том, что затраты на создание инфраструктуры окупятся. Есть очень много причин, позволяющих думать, что концепция ПО как сервис будет становиться все более важной.
Третье важное направление связано с пересмотром способов, которыми пользователи взаимодействуют с программным обеспечением. Сложность ПО масштаба предприятия заключается не только в комплексной инфраструктуре, но и в сложности приложений для конечных пользователей: иногда для решения своих бизнес-задач им приходится запускать до 15 приложений, открывать до 17 окон, и это, по меньшей мере, разочаровывает. Я думаю, приложения масштаба предприятия вообще должны содержать офисные продукты в качестве приложений для конечных пользователей. В этом случае пользователи знают, чего ожидать, поскольку видят привычный офис и знакомый интерфейс. К тому же возможно управление потоками работ (например, с помощью служб SharePoint и Windows Workflow Foundations). Наше партнерство с SAP — весьма показательный пример, поскольку в SAP уже осознали, что их пользовательский интерфейс сложен, и одним из способов заставить-таки пользователей применять SAP стало предоставление интерфейса к офисным приложениям.
Четвертое направление уже более высокого уровня, нежели применение офисных приложений, — это создание нового интерфейса для пользователей. Сегодня мы применяем в этой области идеи и технологии 20-30-летней давности. Я думаю, нам надо равняться на другие отрасли — автомобильную, легкую промышленность, на индустрию видеоигр, где широко используются: звук, видео и анимация, привлекающие потребителей.
На мой взгляд, эти четыре направления важны для любого типа ПО: приложений масштаба предприятия, веб-приложений, ПО для конечного пользователя.
КП: Если говорить о развитии и применении концепции ПО как сервиса, то нашим читателям было бы интересно узнать, что именно делает Microsoft в этом направлении.
С.П.: Все больше производителей начинают искать пути представления своих систем как сервисов, и мы помогаем им сделать уже существующее ПО доступным в качестве сервиса, не осуществляя в нем серьезных изменений. Мы можем составить детальное руководство по перемещению вашего приложения в такое окружение, помочь изменить архитектуру приложения для этой цели. Подобные руководства можно найти, к примеру, на сайте MSDN.
Но и это еще не все. Мы должны думать о том, что следует сделать с нашими продуктами, такими как Windows Server System, SharePoint Server и Microsoft SQL Server, чтобы их можно было применять в качестве сервиса или основы для приложений, реализующих данную модель. И наконец, мы создаем свои собственные предложения в модели «ПО как сервис», например CRM Live и Office Live. Таким образом, поддержка модели «ПО как сервис» со стороны Microsoft реализована на трех уровнях: платформы, приложений и руководств.
КП: В последние годы быть разработчиком в России становится все менее престижно, и многие высококлассные специалисты в области разработки приложений переходят в другие области, например в консалтинг или в компании, специализирующиеся на внедрении готового ПО, а их место занимают гораздо менее квалифицированные кадры. Есть ли у вас идеи, каким образом добиться повышения престижности труда программиста?
С.П.: Это особенность России — в других странах Европы и в США отношение к разработчикам совершенно иное. Возьмем, к примеру, Францию, в которой положение дел весьма интересно: если вы разработчик игр — вы бог, а вот создание бизнес-приложений для компаний — это уже не столь престижно. Престижность работы зависит и от страны, и от того, что именно ты делаешь.
В России снижение престижности труда разработчиков происходит, на мой взгляд, потому, что российская индустрия ПО пока работает не настолько хорошо, чтобы можно было сказать, что разработка ПО имеет большое значение для вашей страны. Все знают, почему для России важны газ и нефть или инвестиционные компании и банки. Я думаю, престиж той или иной деятельности напрямую связан с экономической ситуацией в стране. Да, десять лет назад быть разработчиком в России было престижно, теперь это не так, но у меня есть причины думать, что информационные технологии рано или поздно станут у вас стратегическим направлением и российская ИТ-индустрия будет развиваться.
Дефицит же квалифицированных разработчиков в плане долговременного развития — это неплохо. Иногда дефицит нужен, чтобы привлечь внимание к проблеме.
КП: Сейчас некоторые поставщики инструментов для разработчиков предлагают решения для индустриального подхода к разработке ПО с огромным и сложным жизненным циклом, с участием большого количества программистов, менеджеров и специалистов по тестированию. И эти решения, и сама разработка, согласно такому подходу, оказываются очень дорогими. Есть ли у Microsoft какие-то идеи или проекты по созданию новых инструментов, которые смогут сделать цикл разработки ПО короче и дешевле?
С.П.: Все приложения можно условно разделить на два класса. К первому относятся критические приложения, для которых нужен правильно поставленный процесс и система менеджмента качества типа ISO или CMMI. Разрабатываются, конечно, и новые технологии, основанные на контроле приложений за собственным поведением. Применение таких технологий сможет заметно упростить достижение и контроль нужной степени качества ПО, а в будущем, возможно, и гарантировать его. Но пока подобные технологии не стали широко доступны, для критических приложений нужен полный жизненный цикл.
Второй тип ПО — это веб-приложения, которые можно обновлять хоть каждые два часа. При этом, когда мы говорим о сложности концепции ПО как сервиса, многие думают, что если приложение не критично, то оно не требует долгого жизненного цикла разработки. Однако формально следует считать любое ПО критическим, пока не доказано обратное, а значит, в этом случае тоже требуется правильно поставленный процесс его создания.
КП: Большое спасибо за интересную беседу! Желаем успехов вашей компании и ждем от нее новых технологий и новых идей!