Очень важный момент - подбор персонала, определяемый кругом задач отдела. Обязательно привлечение профессионалов: IT-инженеров, программистов, компьютерных дизайнеров, кодировщиков, системных архитекторов, системных интеграторов, постановщиков задач, системных аналитиков, вебмастеров, технических писателей, и т.п.
Предполагается также использование уже имеющихся кадров при их переподготовке и повышении квалификации.
Далее для разработки операционной системы необходимо определить несколько самых важных целей, в соответствии с которыми и поделить персонал на команды, каждая из которых будет работать сугубо над своей целью. В среднем получиться около 25 команд. Каждая из этих команд занимается конкретной частью операционной системы - кодом, функциями, качеством и общей разработкой. В каждой команде ведется работа над своим элементом ОС, что значительно упрощает руководство - представители разных команд могут встречаться для обсуждения каких-либо функций, вместе сходить в кино и т.д. В команде разработчиков насчитывается в среднем 40 человек, но размеры могут существенно отличаться.
В общем, команды разработчиков выполняют разработку комбинаций архитектурных компонентов и сценариев работы Windows. Понятие "функция" всегда трактовалось неоднозначно, поскольку некоторые считают функций элемент интерфейса, другие же - архитектурный компонент (например, TCP/IP). Задача - сбалансировать сценарии и архитектуру таким образом, чтобы в итоге получился правильный уровень охвата задач за счет правильной комбинации архитектурных элементов. Надо пытаться избежать разделения разработки функций и интерфейса, чтобы команды имели полную власть над тем, над чем они работают (например, команда "Поиск и организация информации" ведет работу как над непосредственным индексатором, так и над пользовательским интерфейсом, используемом при поиске информации). Вот несколько основных команд разработки Windows :
Ø Апплеты и гаджеты (Applets and Gadgets )
Ø Технологии содействия и поддержки (Assistance and Support Technologies)
Ø Core UX (Core User Experience)
Ø Обслуживание пользователя и телеметрия (Customer Engineering and Telemetry)
Ø Платформа развертывания и компонентизации (Deployment and Component Platform)
Ø Графика (Desktop Graphics)
Ø Устройства и носители информации (Devices and Media)
Ø Устройства и хранение информации (Devices and Storage)
Ø Документы и печать (Documents and Printing)
Ø Инжиниринговые системы и инструменты (Engineering System and Tools)
Ø Файловая система (File System)
Ø Поиск и организация информации (Find and Organize)
Ø Фундаментальные компоненты (Fundamentals)
Ø Internet Explorer (включая низкоуровневую поддержку IE 8)
Ø Международная поддержка (International)
Ø Ядро и виртуальные машины (Kernel & VM)
Ø Media Center
Ø Сеть - фундаментальные компоненты (Networking - Core)
Ø Сеть - корпоративное применение (Networking - Enterprise)
Ø Сеть - беспроводные возможности (Networking - Wireless)
Ø Безопасность (Security)
Ø Платформа пользовательского интерфейса (User Interface Platform)
Ø Платформа Windows-приложений (Windows App Platform)
Каждая команда представлена тремя ключевыми инженерными дисциплинами: инженерами по разработке ПО (иначе sde или dev), тестовыми инженерами по разработке ПО (sdet или тестеры) и программными менеджерами (pm). Наличие трех инженерных дисциплин является уникальным аспектом Microsoft, вызывающим интерес многих исследователей.
Dev ответственны за архитектуру и код, pm отвечают за набор функций и спецификацию, а sdet отвечают за проверку, и по сути являются адвокатами пользователей с точки зрения удобства. Каждый ответственен за качество и производительность. Для любой отдельно взятой функции каждый dev, test или pm представляют звенья одной цепи (в буквальном и в переносном смыслах). Это является ключом к "балансу силы", используемому в разработке Windows. Организационно dev-инженеры работают для dev-инженеров, sdet-инженеры - для sdet-инженеров, а pm-менджеры - для pm-менеджеров.
Это позволяет оптимизировать работу по двум направлениями - сфокусироваться на разработке отдельных функций, при этом обеспечив уверенность, что финальный продукт будет гармонично объединять функции, а не просто являться набором отдельных, независимых друг от друга элементов.
В команде также есть ключевые специалисты, которые ведут работу над различными аспектами продукта:
Разработка контента - авторы и редакторы, ведущие онлайн-сопровождение, создающие веб-сайты, документы SDK и документацию по развертыванию.
|