Я хочу поблагодарить читателей этого блога и подписчиков в Twitter за ценные комментарии и письма. Мне очень приятно видеть повышенный интерес к этой теме. Читая первые комментарии, можно выделить основные тенденции, интересующие читателей. Одной из таких тенденций является взаимодействие с пользователем в ОС Windows 8. Мы готовимся к обсуждению этих вопросов, концепции и оптимальных решений. В ОС Windows 8 добавлены новые компоненты, которые затрагивают все аспекты продукта. Я думаю, что следует поговорить о структуре группы разработчиков, поскольку иногда ответ на вопрос "как" помогает ответить на вопросы "что" и "почему". Это даст вам общее представление об областях ОС Windows 8, в которые добавлены новые компоненты. Кроме того, этот материал можно рассматривать в качестве небольшого руководства.

Некоторые люди склонны представлять ОС Windows в виде единого целого или группы либо ассоциировать ОС Windows с группой определенных людей. Иногда докладчик на конференции или автор блога начинает олицетворяет продукт в ваших глазах. На самом деле ОС Windows — это продукт всей группы разработчиков и большая часть корпорации Майкрософт. Практически все группы разработчиков корпорации Майкрософт так или иначе участвуют в создании ОС Windows 8. В свою очередь, результатами работы над ОС Windows пользуются другие группы разработчиков.

ОС Windows — это большой проект, который состоит из набора небольших согласованных проектов. Когда мы начали создавать ОС Windows 8, у нас было четкое представление о направлении движения, поэтому мы построили структуру групп разработчиков, которая способна обеспечивать это направление. Большинство групп работают совместно, но в то же время мы пытаемся разделить задачи между независимыми группами. Очевидно, что, как клиент, вы хотите, чтобы над продуктом совместно работали все сотрудники компании, но, как инженер, вы также хотите иметь возможность работать независимо. Это тонкий баланс, который мы пытаемся поддерживать.

Для организации бесперебойной работы над ОС Windows потребовалось затратить много сил на построение структуры групп разработчиков. Один из наиболее важных шагов заключается в определении круга задач, которые необходимо решить для достижения поставленной цели. Это также позволяет убедиться в правильности выбранных групп разработчиков и проверить работоспособность всей структуры. В то же время нам необходимо убедиться в том, что все технологические процессы, такие как ежедневная сборка, интеграция, обеспечение качества, безопасность и все основные концепции, представляют собой единое целое с самого начала процесса разработки (на эти темы можно говорить бесконечно).

У нас есть несколько инженерных ролей или дисциплин, которые формируют основу группы разработчиков. Реализация работы над ОС Windows происходит тогда, когда разработчики создают код. Этот код реализует компоненты, которые сначала определяются в спецификациях, создаваемых группой сопровождения программного продукта, а также концепциях взаимодействия, которые создаются дизайнерами продукта. Инженеры-испытатели отвечают за полноту спецификации и соответствие кода поставленной задаче. Это упрощенное представление отношений между ролями, поскольку постоянно происходит обмен обязанностями. В группе разработчиков существует несколько других не менее важных ролей, но мы склонны представлять работу над созданием продукта, например разработку, тестирование и управление программным продуктом, как общее дело на протяжении всего цикла работы над выпуском. Иными словами, каждая роль вносит равный вклад в конечный результат.

Работа над ОС Windows разделена между "специализированными группами", т. е. группами разработчиков, которые имеют доступ к сочетанию архитектурных элементов и сценариев ОС Windows. В работе над ОС Windows 8 принимают участие 35 специализированных групп. Каждая специализированная группа состоит примерно из 25-40 разработчиков, а также сотрудников, отвечающих за тестирование и управление программным продуктом. Наши группы разработчиков ориентированы на создание глобального продукта, поэтому некоторые из них находятся за пределами США по всему миру.

Как правило, специализированная группа создает то, что большинство людей будет определять как область или компонент ОС Windows. Компонент — это сложное понятие. Некоторые люди считают, что компонент — это большой архитектурный компонент, например пользовательский интерфейс или подключение к сети, а другие люди подразумевают под компонентом нечто более конкретное, например меню "Пуск" или IPv6. Это понятие немного перегружено. При создании различных специализированных групп мы связали архитектуру (код, подсистемы, компоненты) со сценариями (взаимодействие с пользователем), в которых пользователи используют элементы архитектуры, чтобы контролировать число сотрудников в группах и обеспечивать управляемость группами. Мы давным-давно перестали пытаться считать новые компоненты, поскольку достаточно трудно определить, что же является компонентом. Мы считаем число рабочих элементов, которые соответствуют единице работы, и число создаваемых спецификаций (это довольно длинный список).

Когда люди берутся за расчеты и пытаются представить число разработчиков в группе, мы обычно слышим одну из двух реакций: "Ничего себе! Как при помощи такого большого количества людей можно вообще что-то создать?" или "Ничего себе! Вы создаете продукт для миллиардов людей силами весьма небольшого числа людей". Минимальное число людей в группе является нашим преимуществом, но в то же время привлечение большого числа разработчиков позволяет добавить все компоненты, которые требуются пользователям. Таким образом, мы ищем "золотую середину". Мы хотим, чтобы группа разработчиков была управляемой и могла создавать высококачественный и полнофункциональный код.

Я уже упоминал ранее, что код ОС Windows используется в других продуктах и наоборот, поэтому при знакомстве со списком учитывайте компоненты из других групп (например, код для поддержки языка веб-браузера создан группой разработчиков средств). Некоторые компоненты, перечисленные здесь, также присутствуют в других продуктах. Например, все версии ядер, сеть, хранилище, виртуализация и другие фундаментальные компоненты операционной системы также входят в состав Windows Server. Иными словами, одна группа создает весь код для клиентской версии ОС Windows и большую часть кода ОС Windows Server. Некоторые компоненты встроены в ядро ОС, но в конечном счете это всего лишь часть серверных продуктов.

Большинство групп, перечисленных ниже, описывают компоненты или области, с которыми вы уже знакомы или которые можно представить исходя из названия. Как будет показано позже, участники группы будут идентифицировать себя как часть этих групп. Кроме того, из этих групп мы создали семь больших групп, которые двигают смежные группы вперед: основные компоненты, устройства и сети, ядро операционной системы, опыт разработчиков, взаимодействие с пользователем, веб-службы и инженерные системы. Группа Windows Live (Hotmail, Messenger, Skydrive, Фотографии, LiveID и т. д.) имеет аналогичную структуру. Группа Internet Explorer состоит из 2 самостоятельных групп, однако они также связаны с ОС Windows 8.

  • Совместимость приложений и устройств
  • Хранилище приложений
  • Взаимодействие с приложениями и мультимедиа
  • Взаимодействие с приложением
  • Развитие основного взаимодействия
  • Возможности подключения устройств
  • Взаимодействие с устройствами и сетью
  • Основы экосистемы
  • Рабочий стол инженера
  • Техническая система
  • Корпоративные сети
  • Глобальное взаимодействие
  • Графические платформы
  • Взаимодействие с разработчиками оборудования
  • Платформа взаимодействия с человеком
  • Технология Hyper-V
  • Управление компьютером
  • Платформа ядра
  • Лицензирование и развертывание
  • Платформа мультимедиа
  • Ядро сети
  • Производительность
  • Представление и состав
  • Надежность, безопасность и конфиденциальность
  • Взаимодействие со средой выполнения
  • Поиск, просмотр и управление
  • Безопасность и идентификация
  • Хранилище и файловые системы
  • Устойчивая инженерия
  • Телеметрия
  • Взаимодействие, ориентированное на пользователя
  • Справка по Windows в Интернете
  • Центр обновления Windows
  • Беспроводные и сетевые службы
  • Язык XAML

Помимо этих групп, осуществляющих разработку, тестирование и управление программным продуктом, существует множество других групп, которые являются частью группы разработчиков продукта. Группа разработчиков контента создает и редактирует встроенную справку, контент для веб-сайтов, документы для разработчиков, пакеты SDK и т. п. Группа планирования продукта проводит маркетинговые исследования, а также работает с отзывами и данными телеметрии по предварительной версии программного обеспечения. Группа дизайнеров продукта разрабатывает общую модель взаимодействия, графический язык и язык проектирования для ОС Windows 8. Группа оценки удобства работы с программным продуктом проводит лабораторные и экспериментальные исследования, которые показывают, как существующие продукты и предлагаемые компоненты отвечают потребностям разных групп клиентов. Группа локализации занимается переводом интерфейса Windows на 100 языков, а также локализует этот блог. Наша операционная группа запускает службы, которые используют сотни миллионов людей и миллиард компьютеров. Мы назвали только малую часть из них...

Когда мы начинали работать над ОС Windows 7, некоторые люди говорили нам, что группа разработчиков Windows стала слишком большой и достигла таких размеров, что больше создавала технических проблем, чем решала их. В то же время вы можете просмотреть все комментарии и увидеть невероятный спрос на новые компоненты в широком диапазоне сценариев.

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

Для людей, которые ведут подсчет слов: я написал около 1 500 слов, так что это можно назвать знакомством с группой разработчиков. Следите за комментариями, поскольку они помогают нам отобрать идеи для новых статей и форм диалога. Я надеюсь, что эта статья поможет развить общий контекст с точки зрения разговоров об ОС Windows 8.

--Стивен