На конференции по случаю премьеры платформы разработки следующего поколения Visual Studio 2010 в Москве выступил Брайан Харри, вице-президент по технологиям корпорации Microsoft. На протяжении практически всей своей профессиональной карьеры Харри занимается созданием средств разработки и в последние годы отвечает в Microsoft за Team Foundation Server, ключевой компонент Visual Studio, который является ядром автоматизации совместной работы команды над программным проектом. Поддержка командной разработки и управление жизненным циклом приложений (Application Lifecycle Management, ALM) стали одним из основных направлений совершенствования Visual Studio при создании ее новейшей версии. Брайан Харри поделился подробностями этих и других улучшений Visual Studio 2010.
Какие усовершенствования в области управления жизненным циклом приложений реализованы в Visual Studio 2010?
Самые большие вложения были сделаны в тестирование. Реализованы возможности управления тестовыми сценариями, выполнения тестов вручную, функционального тестирования пользовательских интерфейсов, отчетности по тестированию. Много сделано в области диагностики с целью повысить эффективность обнаружения ошибок и дать возможность готовить детальные отчеты.
Следующая область — инструменты для архитекторов. Во-первых, в системе обеспечена поддержка широкого набора UML-диаграмм, включая варианты использования, диаграммы последовательности, диаграммы компонентов. Во-вторых, появился новый инструмент Architecture Explorer, который позволяет анализировать архитектуру существующих в компании приложений. И третье новшество — диаграммы слоя (layer diagram), которые обеспечивают создание программного решения с хорошо продуманной архитектурой.
Еще одно направление инвестиций — Team Foundation Server. Мы сделали целый комплекс улучшений в управлении проектом: добавили иерархию рабочих элементов и настраиваемые типы связей (custom links) для улучшения возможностей контроля, обеспечили поддержку Scrum, значительно улучшили использование портала SharePоint, добавив новые отчеты и инструментальные панели. Упростилась инсталляция и администрирование TFS. Изначально сервер TFS позиционировался как решение для корпоративных команд разработчиков. Он и сейчас является таковым, но мы добавили много улучшений, которые позволяют применять продукт и небольшим группам разработчиков. Кроме того, усовершенствована система контроля версий, в частности поддержка ветвлений и параллельной разработки.
Инструмент разработчика IntelliSense теперь позволяет проанализировать ошибки, сделав несколько шагов назад в выполнении программы.
Но все это лишь малая часть усовершенствований Visual Studio 2010 в области ALM.
Как реализуется интеграция инструментов для разных этапов ALM?
В нашем подходе к интеграции можно выделить три направления. Во-первых, наша цель — дать специалистам возможность использовать те инструменты, которые они предпочитают. Например, разработчики могут работать с такими средами, как Visual Studio или Eclipse, менеджер проекта — использовать Microsoft Project, Excel либо веб-интерфейс. В Visual Studio 2010 реализован специальный пользовательский интерфейс для профессиональных тестировщиков. Многие наши конкуренты пытаются реализовать всю функциональность ALM в рамках среды разработки. Но этот подход неэффективен.
Во-вторых, сбор данных становится частью повседневной работы. Для предоставления данных не должны требоваться какие-то дополнительные усилия, идет ли речь о метриках качества, данных управления проектом, данных об исходном коде, об ошибках и т. д. И наконец, все эти данные агрегируются в стандартном едином хранилище, что дает возможность использовать стандартные средства отчетности — Microsoft Office, SQL Server или внешних производителей — для углубленного анализа данных и понимания процесса разработки.
В своем выступлении вы отметили два наиболее важных фактора с точки зрения инструментальной поддержки командной работы — интеграцию и прозрачность. Что подразумевается под прозрачностью?
Одна из самых значимых проблем, с которой сталкиваются менеджеры команд разработки, состоит в том, что они не знают, что происходит в проекте. Очень часто проект не реализуется в запланированные сроки, выходит за рамки выделенного бюджета, не соответствует заданным требованиям. Но менеджер обнаруживает все это только в тот момент, когда по плану проект должен быть завершен. Прозрачность подразумевает возможность видеть с самого начала, что происходит в проекте, чтобы его результаты не стали сюрпризом в конце.
Как помогают реализовать прозрачность проекта новшества в управлении проектом, реализованные в Visual Studio 2010?
Иерархия рабочих элементов и настраиваемые связи улучшают понимание зависимостей в работе. Например, в Visual Studio 2010 можно соотнести тестовые сценарии с требованиями, что дает возможность оценить качество выполнения требований. Новые типы отчетности помогают более четко формулировать вопросы по ходу работ. Улучшения в инструментальных панелях повышают эффективность отслеживания состояния работ посредством портала. И наконец, инструменты тестирования предоставляют гораздо больше достоверных данных о качестве.
Какие проблемы ставит создание облачных приложений с точки зрения инструментария разработки, как их помогает решать Visual Studio 2010?
Здесь возникает ряд новых задач. На мой взгляд, одна из наиболее интересных — как эффективно отлаживать облачные приложения. Традиционный подход к отладке не работает, приходится в большем объеме использовать трассировку и отладку по факту, поскольку нельзя остановить систему и выяснить, в чем дело. Мы проводим много исследований, чтобы понять, как это реализовать, не создавая попутно новых проблем работы с облаками. Другая группа вопросов связана с развертыванием приложений в облаке.
Мы еще только в начале «облачного» пути, на котором предстоит решить много интересных проблем. В Visual Studio 2010 уже предлагается специальный инструментарий создания приложений для облачной ОС — Microsoft Windows Azure.
Еще одна новая тема для разработчиков — создание приложений для многоядерных платформ. Какие средства разработки способны помочь извлечь максимальную выгоду при выполнении приложений на параллельных архитектурах?
Параллельные приложения в том виде, как их писали раньше, не масштабируются. Мы проводим много исследований, пытаясь найти различные подходы к параллельному программированию. Большую роль в этом играет абстракция, мы изучаем, в частности, новые парадигмы языков программирования. Например, функциональное программирование, представителем которой является язык F#, демонстрирует лучшие возможности для распараллеливания.
Другой метод — транзакционная память, которая позволяет программе выполняться в предположении, что параллелизм отсутствует. Но если параллелизм создает проблему, программа может быть отведена назад и перезапущена в более подходящей последовательности, так чтобы проблема была устранена.
Вы много лет занимаетесь разработкой ПО и создаете продукт, потенциальным потребителем которого сами являетесь. В этом качестве на что вы обратили бы внимание в первую очередь при разработке очередной версии Visual Studio?
Думаю, больше всего мне бы хотелось сделать ее проще. Среда разработки очень разрослась, она подавляет пользователей своими масштабами. Надо искать пути, как сделать ее такой, чтобы у пользователя перед глазами всегда было то, что ему нужно. Для этого надо изучать сценарии работы пользователей и оптимизировать интерфейс на основе полученных знаний.