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

По случаю официального запуска Visual Studio 2013 корпорация Microsoft помимо глобальной онлайновой презентации продукта провела также серию очных региональных конференций для разработчиков ПО. Такое мероприятие прошло и в Москве, здесь новую версию платформы разработки представил руководитель подразделения, занимающегося продуктами Microsoft Visual Studio, Сэм Гукенхаймер, который хорошо известен в среде разработчиков ПО не только как менеджер, но и как один из идеологов развития методологии программирования. Имея за плечами 30-летний опыт работы в этой сфере, он до прихода с 2003 г. в Microsoft занимал пост директора по стратегии продуктов в корпорации Rational Software, которая потом стала одним из ключевых подразделений IBM. Именно поэтому в центре внимания беседы обозревателя PC Week/RE Андрея Колесова с Сэмом Гукенхаймером были вопросы общего развития средств разработки и методов создания ПО.

PC Week: Первые анонсы о доступности Visual Studio 2013 прозвучали еще в октябре, поэтому не очень понятно, в чем суть ноябрьского объявления, тем более что про онлайновые компоненты в нем говорится в будущем времени. Каков на самом деле статус продукта?

Сэм Гукенхаймер: Как обычно, первыми возможность работы с новыми средствами разработки получают подписчики MSDN, именно об этом мы сказали в октябре, а с 13 ноября его могут приобрести все желающие. С этого же момента начал функционировать и облачный вариант Visual Studio Online: можно зайти на сайт VisualStudio.com и там начать пользоваться набором услуг, который представляет собой усовершенствованную версию Team Foundation Service.

PC Week: Услышав о выпуске Visual Studio 2013, я немного удивился, так как с момента выпуска предыдущей версии прошло чуть больше года. Насколько я помню, за всю историю Visual Studio, насчитывающую уже больше пятнадцати лет, кажется, только в вариантах 2002 и 2003 был такой годичный разрыв. Чем объясняется столь быстрое обновление сейчас?

С. Г.: Ускорение обновлений — это не наша выдумка. Это веление времени, которому нужно соответствовать. Хорошо, что вы вспомнили о событиях десятилетней давности. Тогда быстрая смена версий во многом объяснялась переломным моментом в развитии программных платформ, конкретно у Microsoft — началом широкого продвижения .NET. Отличие же сегодняшней ситуации от тогдашней заключается в том, что в начале прошлого десятилетия это было некое разовое ускорение, а сейчас ускорение носит постоянный характер и имеет тенденцию к усилению.

Для характеристики темпа обновления ИТ сегодня часто используют термин “облачный ритм” (cloud cadence). Одно из значений слова cadence — мерный шаг, движение в ногу, и оно хорошо описывает ситуацию в ИТ. Дело в том, что раньше вендоры, прислушиваясь, конечно, к ритму рынка в целом, могли обновлять свое ПО, во многом ориентируясь на собственный темп развития. Теперь же именно темп рынка, причем постоянно ускоряющийся, является решающим фактором для любой ИТ-компании. Это как в движении автомобилей на магистрали — вы должны ехать в потоке, хотите вы того или нет.

Формально говоря, развитие инструмента разработки определяется темпом обновления операционной среды. Для Visual Studio раньше это была операционная система Windows, теперь — то, что мы называем Cloud OS, которая представляет собой гибрид традиционных Windows и облачной Azure. Ключевым компонентом в этой связке является Azure, которая и задает темп обновления (а для нее ритм задает рынок!).

PC Week: В среде пользователей распространено мнение, что это вендоры заставляют их бежать все быстрее и быстрее…

С. Г.: Это кажущаяся картина, на самом деле все ровно наоборот — есть постоянный спрос к обновлению. Мы видим это на собственном примере: клиентам Microsoft нравится быстрый темп обновления того же Visual Studio. Например, 60% пользователей Visual Studio 2012 обновились до версии 2013 уже к моменту ее запуска.

Изменения темпа нашей ИТ-жизни очень хорошо видны на примере того, что на смену тяжеловесной, но весьма устойчивой методологии разработки ПО конца 1990-х с жесткими правилами и четкой сугубо последовательной логикой создания программ идут методы быстрой и гибкой разработки. Это можно показать на примере концепции Lean, разработанной Эриком Рисом (идеи были сформулированы профессором Стэнфорда Стивом Бланком). Как вы знаете, концепция Lean Startup (“бережливый стартап”) изначально была создана для предпринимательства в целом, но отлично подошла и для разработки ПО.

В этой концепции есть три ключевых слова: Build, Measure, Learn — стройте, измеряйте, учитесь. Идея состоит в том, что вы работаете в коротких циклах и в маленьких группах. И вместо того, чтобы раз в длительный период времени делать какие-то большие куски какого-то ПО, а потом собирать отзывы потребителей, вы постоянно делаете маленькие, очень маленькие бильды, тестируете их и таким образом имеете постоянную обратную связь с клиентами.

Этой концепции придерживается и Microsoft.

PC Week: По-моему, еще год назад это называлось Agile.

С. Г.: Не совсем так, Lean — это Agile c некоторыми важными дополнениями. Agile также подразумевает короткие циклы и постоянную обратную связь, но в классическом её варианте должен быть конкретный заказчик и сугубо последовательный процесс создания версий. А Lean ориентируется на множество потенциальных потребителей, с чьей помощью исследуется сразу несколько вариантов ПО. Все эти варианты рассматриваются как гипотезы, и в результате экспериментов с участием пользователей отбираются наиболее удачные версии, после чего вы переходите к следующему этапу разработки и экспериментов.

PC Week: Мне кажется, что одновременно с сокращением циклов разработки происходят изменения в отношениях внутри коллективов разработчиков.

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

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

PC Week: А что можно сказать об изменении конкурентной ситуации на рынке средств разработки за те же десять лет? Кто у вас, например, основной конкурент? Тогда всё было вполне понятно: были Borland, Rational, Microsoft. Что представляет из себя этот рынок сегодня, появились ли какие-то принципиально новые вызовы, пришли ли какие-то новые компании с новыми идеями?

С. Г.: Конечно, тут многое поменялось, причем не только состав игроков, но и конкурентные принципы. Раньше системы разработки могли существовать и развиваться самостоятельно, независимо друг от друга. Сейчас все они довольно сильно взаимосвязаны, мир стал еще более гетерогенным. Мы сейчас видим на рынке новое поколение компаний, создающих инструменты разработки, хотя ведущие позиции остаются за ветеранами, в том числе и Microsoft. Но надо отметить, что слово “ветеран” указывает лишь на стаж пребывания на рынке, это совсем не “консерватор”. На этом рынке многое делается, что-то происходит вокруг Java, что-то вокруг OpenStack, немного в меньшей степени — вокруг Ruby. А дальше все становится очень фрагментированным. Понятно, что те разработчики, которые работают с Apple, в основном имеют дело с Objective C.

PC Week: Что изменилось в связи с использованием облачных моделей, мобильных технологий и других инноваций? Как все это влияет на методы разработки, может быть, на психологию разработчика?

С. Г.: В целом можно сказать, что появилась новая модель приложения как такового, то, что сейчас называется современным бизнес-приложением. Его неотъемлемой частью является то, что оно помимо своего просто существования постоянно поставляет какой-то набор услуг, доступных из облака, публичного, частного или гибридного — неважно, какого типа.

И главное, что у этого приложения очень много конечных точек для доступа пользователя. Это может быть браузер, компьютер, планшет или мобильный телефон. Разработчик ПО должен хорошо это понимать и постоянно думать об этом. Ему нужно иметь в арсенале несколько разных инструментов. Если сейчас провести опрос разработчиков, то 60% из них скажут, что они работают с тремя и более технологиями одновременно. Еще три года назад ситуация была иная, тогда так ответили бы всего 25% разработчиков. Они четко определили бы свою позицию на рынке: один сказал бы, что он делает разработку для серверов, другой — для Web, третий — для настольных ПК. Теперь всё совершенно по-другому, и такого жесткого деления уже нет. Изменились логика и организация процесса разработки. Сейчас сборка релиза и его развертывание для тестирования может проходить несколько раз в неделю, постоянно идет обновление клиентских устройств. Все больше людей работают в маленьких мультидисциплинарных командах. При этом разработчики являются превалирующими в этих командах, и им определена привилегия принятия решений. Даже если это какая-то крупная компания, в ней возможна широкая горизонтальная иерархия, так или иначе ее работа чаще всего разбита на эти маленькие команды.

PC Week: Однако давайте вернемся к Visual Studio 2013. Что вы выделили бы в новой версии самое важное, самое интересное?

С. Г.: Новшеств много, но в первую очередь я бы выделил три важнейшие вещи. Во-первых, это интеграция Visual Studio и Azure, в которой реализована работающая в обе стороны связь. Во-вторых, нужно сказать о средствах управления версиями: в Visual Studio встроен инструментарий релиз-менеджмента. И третий очень важный аспект — обеспечение возможности видеть, как происходит функционирование приложения, следить за его производительностью, получать аналитику в реальном времени, оценивать ее. Есть возможность посмотреть и проанализировать всю историю работы приложения, причём всё это в реальном времени отображается либо через Dashboard, либо прямо в Visual Studio. Более того, теперь можно видеть, как, когда и кто использует приложение.

Конечно, важно и появление Visual Studio Online, который представляет собой комбинацию услуг. Какие-то из них уже существовали и перешли из Team Foundation Service, какие-то новые. В этом наборе можно выделить две категории сервисов. Первая касается планирования работы и управления процессом разработки — его можно представить в виде гигантского Dashboard, на котором есть элементы, соответствующие каждой команде. Там отображается, кто какую выполнил задачу, есть чаты для командного общения и т. д. Второй набор услуг — это управление исходным кодом со всеми необходимыми инструментами.

PC Week: Спасибо за беседу.