InfoWorld, США

Наряду с повышением производительности труда отдельного разработчика сегодня следует сосредоточиться на команде в целом

Сома Сомейсгер — вице-президент корпорации Microsoft, возглавляющий подразделение Developer Division. Это подразделение занимается проектированием различных инструментальных средств разработки (в частности, очередной версии Visual Studio и новой платформы управления жизненным циклом приложений — Visual Studio 2005 Team System и Visual Studio 2005 Team Foundation Server). Сомейсгер работает в Microsoft с 1989 года и в последнее время известен как большой любитель блогов.

После выступления Сомейсгера на конференции VSLive Conference, прошедшей в Сан-Франциско, старший редактор еженедельника InfoWorld Пол Крил встретился с ним и задал ряд вопросов об инструментальных средствах разработки Microsoft и о блогах.

Насколько критичной для Microsoft является задача управления жизненным циклом приложений (Application Lifecycle Management, ALM)? В частности, какова роль продуктов Team System и Team Foundation Server, в которых реализован соответствующий функционал?

Управление жизненным циклом приложений — одна из приоритетных для нас задач. Если обобщать причины, побудившие нас приступить к реализации проекта Team System, я бы выделил следующие: исторически сложилось так, что мы ориентируемся на профессионального разработчика, и нам хотелось бы гарантировать ему действительно высокую индивидуальную производительность. Кроме того, программы сегодня становятся все сложнее, и мы пытаемся с этим бороться.

Сома Сомейсгер: «Управление жизненным циклом приложений — одна из приоритетных для нас задач»

Объективные тенденции сегодня таковы, что коллективы должны объединяться. Иногда мы все находимся рядом, иногда нас разбрасывает по свету. Когда различные команды объединяются, им нужно наладить взаимодействие, чтобы автоматизировать потоки работ и демонстрировать высокую не только личную, но и коллективную производительность. Таким образом, наряду с повышением производительности труда отдельного разработчика следует сосредоточиться на команде в целом, на поддержке внутри команды различных ролей, начиная от решения всех вопросов, связанных с проектированием, и заканчивая поставкой и развертыванием продукта. Как управлять жизненным циклом в целом, какой набор интегрированных друг с другом инструментальных средств выбрать? Это серьезная задача, и для того, чтобы решить ее, мы приступили к реализации проектов Team System и Team Foundation Server.

Другие компании (в частности, Rational и Borland) также поставляют инструментарий ALM. Что из того, что еще не охвачено ими, собираетесь предложить вы? Хотите сказать, что у вас глубже проработаны вопросы интеграции с Windows?

На мой взгляд, главная ценность, которую мы предлагаем, связана с интеграцией в целом. Наши инструментальные средства хорошо взаимодействуют друг с другом в единой интегрированной среде. Не думаю, что кто-то другой в состоянии предложить сегодня такое. Мало-помалу и другие начинают говорить об этом, но мы первыми занялись маркетингом соответствующего продукта — Visual Studio Team System.

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

И этим интегрированным хранилищем является Team Foundation Server?

Да, это Team Foundation Server. Платформа организации взаимодействия, объединяющая все необходимые средства. В этом контексте следует подчеркнуть, что нас волнуют вопросы производительности и гибкости. И мы всегда нацеливаемся на улучшение соответствующих показателей. Хотелось бы объединить все это с тем, что я называю дисциплиной. Мне нравится употреблять словосочетание «гибкость наряду с дисциплиной». Вам хочется быть гибким, хочется демонстрировать высокую эффективность, и мы предлагаем своим клиентам добиваться поставленных целей на основе соблюдения строгой дисциплины. Когда команды объединяются друг с другом, людям нужно иметь готовые процедуры и методологию разработки.

Каким образом Visual Studio обеспечивает гибкость разработки?

У нас есть две наработки, которые пользователям Visual Team System и Team Foundation Server предлагается включить в свой арсенал. Первая — методология гибкой разработки, вторая — модель Capability Maturity Model Integration. Мы предлагаем шаблоны, которые вы можете использовать в неизменном виде или адаптировать к своим потребностям. Главное, что вы получаете упрощенную процедуру, конкретные особенности которой определяются выбранной моделью, — методологией гибкой разработки или CMMI. Процесс упрощается настолько, насколько это возможно, и, что еще важнее, он интегрирован с инструментальными средствами, поэтому вам как разработчику не нужно думать о процедурах.

В мире сейчас фактически сложились три «лагеря» разработчиков, использующих конкурирующие платформы — .Net, Java и LAMP (Linux, Apache, MySQL и Perl/PHP/Python)? Как к этому относятся в Microsoft?

Мы считаем, что предлагаем платформу, обладающую наибольшей ценностью (она заслуживает доверия, обладает высокой производительностью, поддерживает все необходимые функции, отличается высокой устойчивостью и безопасностью) и полагаем, что движемся в правильном направлении. На наш взгляд, .Net отвечает всем перечисленным требованиям. Поговорите с пользователями, особенно с корпоративными. Мы чувствуем, что идем в правильном направлении, и будем развивать свою платформу и впредь. Мы убеждены в том, что она обладает достаточной масштабируемостью для того, чтобы удовлетворить потребности приложений следующего поколения.

Значит, вы не считаете сторонников LAMP своими конкурентами?

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

А теперь несколько вопросов, касающихся применения технологии Atlas, которая позволит разрабатывать приложения ASP .Net 2.0 на основе подхода AJAX (Asynchronous JavaScript and XML). Что нового появилось в технологии ADO .Net 2.0 (ActiveX Data Objects)? Можно ли прояснить планы Microsoft в отношении технологий Atlas и ADO .Net 2.0?

Мне непросто говорить об ADO .Net, потому что группа разработчиков этой технологии только приступила к проектированию следующей версии. Одна из поставленных задач заключается в создании общей платформы обработки данных. Независимо от того, обращаются ли разработчики к реляционным базам данных или к данным XML, они должны получать общий набор интерфейсов, который смогут применять пользователи. Но еще раз повторю, что работа над дальнейшим развитием ADO .Net находится сейчас в самом разгаре.

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

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

Известно, что вы много пишете в блогах. Фильтруется ли их содержимое представителями Microsoft?

А что вы понимаете под фильтрацией?

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

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

Значит, никто к вам не подходит и не говорит, что нельзя затрагивать ту или иную тему?

Нет. Иногда люди спрашивают, каким установкам необходимо следовать при написании блогов? Или что делать позволено, а что нет? Лично для меня ответ достаточно прост: обратитесь к своему здравому смыслу. Вы знаете, что наш бизнес связан с разработкой и поставкой программного обеспечения. Если вы считаете, что стоит поделиться информацией, содержание которой люди смогут понять и высказать в ответ свое мнение, сделайте это. Довольно сложно утверждать, что некоторые вещи следует делать именно так, а вот так поступать не следует. Еще раз повторяю, обратитесь к своему здравому смыслу, и все будет так, как надо. Лично я всегда прислушиваюсь к своим ощущениям.

Какие отклики вы получаете на свои блоги?

Эти блоги — интересная вещь. Я занимаюсь ими достаточно регулярно, потому что они позволяют мне наладить замечательную и совершенно добровольную обратную связь с людьми из самых разных стран мира. Люди шлют мне свои отзывы, и зачастую они оказываются весьма полезными. Если вы напишете что-то только для того, чтобы проинформировать людей, никто вам не ответит. Если же написанное вами заденет их за живое, то вы получите массу откликов.