Поддержка командной разработки и управление жизненным циклом приложений (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 2010 идет впереди или системе еще чего-то не хватает, чтобы реализовать полномасштабное ALM?
Около пяти лет назад Microsoft первой поняла, что самое важное в ALM – интеграция всех компонентов. Сейчас на рынке есть немало хороших решений, реализующих отдельные части ALM, но аналогов нашим предложениям в плане интеграции нет. Это было реализовано еще в версии Visual Studio 2005. Вскоре IBM начала разрабатывать систему Team Concert, которая преследует ту же цель. Сегодня ряд компаний меньшего масштаба пошли в этом направлении, но мы намного всех обогнали.
Однако остаются определенные области, где нам еще предстоит большая работа. Наиболее важная – управление требованиями. В настоящее время в TFS для управления требованиями используются решения внешних поставщиков.
- Как реализуется интеграция инструментов для разных этапов ALM?
В нашем подходе к интеграции можно выделить три направления. Во-первых, наша цель – дать специалистам возможность использовать те инструменты, которые они предпочитают. Например, разработчики могут работать с такими средами, как Visual Studio или Eclipse, менеджер проекта – использовать Microsoft Project, Excel либо веб-интерфейс. В Visual Studio 2010 реализован специальный пользовательский интерфейс для профессиональных тестировщиков. Многие наши конкуренты пытаются реализовать всю функциональность ALM в рамках среды разработки. Но этот подход неэффективен.
Во-вторых, сбор данных становится частью повседневной работы. Для предоставления данных не должны требоваться какие-то дополнительные усилия, идет ли речь о метриках качества, данных управления проектом, данных об исходном коде, об ошибках и т. д. И наконец, все эти данные агрегируются в стандартном едином хранилище, что дает возможность использовать стандартные средства отчетности – Microsoft Office, SQL Server или внешних производителей – для углубленного анализа данных и понимания процесса разработки.
- В своем выступлении вы отметили два наиболее важных фактора с точки зрения инструментальной поддержки командной работы – интеграцию и прозрачность. Что подразумевается под прозрачностью?
Одна из самых значимых проблем, с которой сталкиваются менеджеры команд разработки, состоит в том, что они не знают, что происходит в проекте. Очень часто проект не реализуется в запланированные сроки, выходит за рамки выделенного бюджета, не соответствует заданным требованиям. Но менеджер обнаруживает все это только в тот момент, когда по плану проект должен быть завершен. Прозрачность подразумевает возможность видеть с самого начала, что происходит в проекте, чтобы его результаты не стали сюрпризом в конце.
- Как помогают реализовать прозрачность новшества в управлении проектом, реализованные в Visual Studio 2010?
Иерархия рабочих элементов и настраиваемые связи улучшают понимание зависимостей в работе. Например, в Visual Studio 2010 можно соотнести тестовые сценарии с требованиями, что дает возможность оценить качество выполнения требований. Новые типы отчетности помогают более четко формулировать вопросы по ходу работ. Улучшения в инструментальных панелях повышают эффективность отслеживания состояния работ посредством портала. И наконец, инструменты тестирования предоставляют гораздо больше достоверных данных о качестве.
- Одна из задач проекта Microsoft Oslo – реализация принципов разработки на базе моделей (Model-Driven Development, MDD). Что из этого проекта нашло воплощение в Visual Studio 2010?
Результаты этой работы можно видеть в новых инструментах архитектора, в поддержке UML-моделирования. Совместная работа с командами Oslo и System Center направлена на то, чтобы выяснить, как MDD может помочь в развертывании и сопровождении приложений. Кроме того, продолжаются разработки в области приложений, ориентированных на базы данных, создание которых может значительно упроститься благодаря применению принципов MDD.
- Раньше Microsoft игнорировала язык моделирования UML. Почему позиция компании поменялась?
Действительно, мы в течение долгого времени не поддерживали UML, а развивали собственный язык Domain Specific Language. Но примерно четыре-пять лет назад мы поняли, что нет необходимости выбирать из этих двух альтернатив, лучше их комбинировать для создания еще более интересных решений. Многие из наших UML-инструментов построены на базе средств DSL. Сегодня наша задача – максимально использовать багаж, накопленный за время работы с DSL, чтобы обеспечить более тесную связь между моделями и собственно кодом. Но основным инструментом для представления моделей является UML.
- Какие проблемы ставит создание облачных приложений с точки зрения инструментария разработки, как их помогает решать Visual Studio 2010?
Здесь возникает ряд новых задач. На мой взгляд, одна из наиболее интересных – как эффективно отлаживать облачные приложения. Традиционный подход к отладке не работает, приходится в большем объеме использовать трассировку и отладку по факту, поскольку нельзя остановить систему и выяснить, в чем дело. Мы проводим много исследований, чтобы понять, как это реализовать, не создавая попутно новых проблем работы с облаками. Другая группа вопросов связана с развертыванием приложений в облаке.
Мы еще только в начале "облачного" пути, на котором предстоит решить много интересных проблем. В Visual Studio 2010 уже предлагается специальный инструментарий создания приложений для облачной ОС - Micorosft Windows Azure.
- Еще одна новая тема для разработчиков – создание приложений для многоядерных платформ. Какие средства разработки способны помочь извлечь максимальную выгоду при выполнении приложений на параллельных архитектурах?
Параллельные приложения в том виде, как их писали раньше, не масштабируются. Мы проводим много исследований, пытаясь найти различные подходы к параллельному программированию. Большую роль в этом играет абстракция, мы изучаем, в частности, новые парадигмы языков программирования. Например, функциональное программирование, представителем которой является язык F#, демонстрирует лучшие возможности для распараллеливания.
Другой метод – транзакционная память, которая позволяет программе выполняться в предположении, что параллелизм отсутствует. Но если параллелизм создает проблему, программа может быть отведена назад и перезапущена в более подходящей последовательности, так чтобы проблема была устранена.
- Вы много лет занимаетесь разработкой ПО и создаете продукт, потенциальным потребителем которого сами являетесь. В этом качестве на что вы обратили бы внимание в первую очередь при разработке очередной версии Visual Studio?
Думаю, больше всего мне бы хотелось сделать ее проще. Среда разработки очень разрослась, она подавляет пользователей своими масштабами. Надо искать пути, как сделать ее такой, чтобы у пользователя перед глазами всегда было то, что ему нужно. Для этого надо изучать сценарии работы пользователей и оптимизировать интерфейс на основе полученных знаний.
[фото - AECMS - cw_0412 Microsoft - Запуск Visual Studio 2010 В России] Брайан Харри: "Больше всего мне бы хотелось сделать среду разработки проще"