Présentation de l'équipe

Merci pour les commentaires et le flot de messages que nous avons reçus (et également à tous ceux qui nous suivent maintenant sur Twitter). Il est réellement réconfortant de voir tout l'intérêt et l'enthousiasme soulevés. Des thèmes importants, dont certains sont tirés des présentations données sur l'expérience utilisateur de Windows 8, se dégagent déjà des premiers commentaires. Nous allons assurément aborder ces problèmes, la conception et les compromis. Windows 8 intègre de nouvelles fonctionnalités dans toute l'étendue du produit. Il faut une certaine équipe pour concevoir Windows 8, et j'ai pensé qu'il ne serait pas inutile de parler de la structure de l'équipe. Parfois, connaître le « comment » des choses permet de mieux en comprendre le « quoi » et le « pourquoi ». Cela vous donnera un aperçu des endroits où nous avons ajouté les fonctionnalités de Windows 8. Cette présentation vous servira également de guide au cours de nos discussions sur le produit.

Il est tentant pour certaines personnes de considérer Windows comme une seule entité ou un seul groupe, et pour d'autres d'envisager Windows comme simplement un ensemble de personnes spécifiques. Il arrive qu'une personne s'exprime au cours d'une conférence ou qu'elle tienne un blog, et cela suffit à représenter le produit pour certains. En réalité, Windows est toujours un produit de l'ensemble de l'équipe et de Microsoft. Presque tous les groupes de développement contribuent à la conception de Windows 8 sous une forme ou sous une autre. Et Windows contribue aux efforts de la plupart des autres groupes également.

Windows est un assez vaste projet composé d'un ensemble de plus petits projets coordonnés. Lorsque nous avons commencé à concevoir Windows 8, nous savions clairement dans quelle direction aller et la structure des équipes que nous avons choisie a pour but de nous y aider. La plupart des équipes travaillent ensemble, mais en même temps, nous essayons de décomposer le travail en groupes plus ou moins indépendants. En tant qu'utilisateur, vous voulez évidemment que les choses fonctionnent ensemble, mais en tant qu'ingénieurs, nous souhaitons également pouvoir travailler de notre côté. C'est un équilibre délicat que nous faisons tout pour conserver.

La mise en place d'une structure d'équipe est essentielle pour l'exécution de toutes les tâches afférentes à Windows. La première étape décisive consiste à établir la liste des tâches à réaliser, afin de mettre en place les meilleures équipes et la meilleure structure pour parvenir au but. En même temps, nous devons nous assurer que dès le début, les processus d'ingénierie sont complets ; par exemple les compilations quotidiennes, l'intégration, la qualité, la sécurité et les notions de base (beaucoup de discussions à prévoir sur ces sujets !).

Notre équipe se compose de plusieurs rôles, ou disciplines, d'ingénierie. Le travail d'implémentation a lieu dans Windows lorsque les développeurs écrivent du code. Ce code implémente les fonctionnalités tirées des spécifications rédigées par l'équipe de gestion de projet, ainsi que les conceptions d'interaction issues de nos concepteurs de produits. Les testeurs sont chargés de s'assurer que la spécification est complète et que le code respecte bien la procédure indiquée par la spécification. Ceci est une représentation simplifiée de la relation entre les rôles, car il nous arrive souvent d'empiéter sur les rôles des uns et des autres. L'équipe est composée de plusieurs autres rôles d'importance équivalente, mais nous avons tendance à penser que notre effort d'ingénierie repose sur la collaboration harmonieuse du développement, du test et de la gestion de projet tout au long de l'élaboration du produit. Chaque rôle est entendu sur le même pied d'égalité dans les choix que nous faisons.

Nous organisons le travail de Windows en « équipes de fonctionnalités ». Il s'agit de groupes de développeurs qui sont responsables d'un ensemble d'éléments architecturaux et de scénarios dans Windows. L'organisation de Windows 8 se compose d'environ 35 équipes dédiées à des fonctionnalités. Chaque équipe est constituée de 25 à 40 développeurs, plus les testeurs et les chefs de projet, qui travaillent tous ensemble. L'objectif de toutes nos équipes est de concevoir un produit pour les utilisateurs du monde entier. Certaines de nos équipes se trouvent en dehors des États-Unis et contribuent à cet effort.

De façon générale, une équipe de fonctionnalités est chargée et conçoit ce que la plupart des gens appellent un domaine ou un composant de Windows. « Fonctionnalité » est toujours un mot délicat : certains pensent qu'une fonctionnalité est un vaste composant architectural, tel que l'« interface utilisateur » ou la mise en réseau, et d'autres peuvent penser qu'une fonctionnalité désigne quelque chose de plus spécifique, comme le « menu Démarrer » ou IPv6. Le terme est donc un peu surchargé d'interprétations. Lorsque nous mettons en place les différentes équipes de fonctionnalités, nous jumelons l'architecture (code, sous-systèmes et composants) avec les scénarios (expérience utilisateur) dans lesquels les utilisateurs vont rencontrer les fonctionnalités, tout en faisant tout notre possible pour que les équipes restent de petite taille et gérables. Il y a longtemps que nous avons arrêté de compter les nouvelles fonctionnalités, en raison de la difficulté que pose la définition d'une fonctionnalité. Nous comptabilisons en revanche les tâches associées au travail et aux spécifications que nous concevons (mais la liste est plutôt longue).

Lorsque les gens font le compte et calculent le nombre de développeurs dans l'équipe, nous entendons souvent une de ces deux réactions : « C'est beaucoup, cela ne va jamais marcher » ou « C'est incroyable, vous concevez un produit pour un milliard de personnes avec si peu de monde ». Il est dans notre intérêt d'avoir le moins de monde possible dans l'équipe, mais il est dans votre intérêt que le plus grand nombre de personnes possible ajoutent tous les éléments que les gens souhaitent avoir. Nous avons donc trouvé une solution intermédiaire. Nous voulons que l'équipe soit gérable et capable de produire un code complet de haute qualité.

J'ai indiqué plus tôt que Windows contribue au code de nombreux autres produits et vice-versa. Donc, quand vous regardez la liste, n'oubliez pas que certaines fonctionnalités proviennent d'autres groupes (par exemple, le composant d'exécution linguistique du navigateur provient du groupe des outils de développement) et une partie du travail effectué ici va dans d'autres produits. Par exemple, l'intégralité de notre travail sur le noyau, le réseau, le stockage, la virtualisation et d'autres notions de base du système d'exploitation fait également partie de Windows Server. Ainsi, une équipe fournit l'intégralité du système d'exploitation Windows et une bonne partie de la base du système d'exploitation Windows Server. Certaines des fonctionnalités ainsi développées ne sont même utilisées que dans le produit Server. Certaines fonctionnalités sont en outre intégrées au cœur du système d'exploitation pour finalement ne constituer qu'une partie du produit Server.

De nombreuses équipes répertoriées ci-dessous décrivent des fonctionnalités ou des domaines que vous connaissez, ou que vous pouvez deviner d'après leur nom. Au fur et à mesure des billets qui seront publiés, les membres des équipes s'identifieront dans ces équipes. Nous avons également classé ces équipes en sept grands groupes dans lesquels sont placées les équipes associées : notions fondamentales, périphériques et mise en réseau, cœur du système d'exploitation, expérience développeur, expérience utilisateur, services Web et notre système d'ingénierie. Le groupe Windows Live (Hotmail, Messenger, Skydrive, Photos, LiveID, etc.) a également une structure similaire. Le groupe Internet Explorer est composé de quelques équipes autonomes, mais il contribue également à Windows 8.

  • Compatibilité des applications et compatibilité des périphériques
  • Magasin d'applications
  • Applications et expérience multimédia
  • Expérience applicative
  • Évolution de l'expérience
  • Connectivité des périphériques
  • Périphériques et expérience réseau
  • Fondamentaux de l'écosystème
  • Bureau de l'ingénieur
  • Système d'ingénierie
  • Réseau d'entreprise
  • Expérience globale
  • Plateforme graphique
  • Expérience de développement hardware
  • Plateforme d'interaction humaine
  • Hyper-V
  • Maître de votre PC
  • Plateforme Kernel
  • Licences et déploiement
  • Plateforme multimédia
  • Mise en réseau
  • Performances
  • Présentation et composition
  • Fiabilité, sécurité et confidentialité
  • Expérience d'exécution
  • Recherche, affichage et commande
  • Sécurité et identité
  • Stockage et systèmes de fichiers
  • Ingénierie de maintenance
  • Télémétrie
  • Expérience centrée sur les utilisateurs
  • Windows Online
  • Windows Update
  • Services sans fil et réseau
  • XAML

Outre ces équipes composées de développeurs, testeurs et chefs de projet, de nombreuses autres font partie de l'équipe de développement du produit. Notre équipe de développement du contenu rédige et met à jour notre aide en ligne, le site Web, les documents de déploiement et les kits de développement logiciel (SDK), pour ne nommer que quelques aspects. L'équipe de planification du produit se charge de la recherche sur les besoins des utilisateurs et des études de marché, et fait également très attention aux commentaires et à la télémétrie concernant la version préliminaire du logiciel. L'équipe de conception du produit développe le modèle d'interaction global, le langage graphique et le langage de conception de Windows 8. Notre équipe de recherche et d'utilisabilité met au point des études sur le terrain et en laboratoire qui montrent les performances des produits existants et des fonctionnalités proposées avec tous les types d'utilisateurs. L'équipe de localisation rend Windows disponible dans plus de 100 langues (et traduit ce blog). Notre équipe opérationnelle fait fonctionner des services utilisés par des centaines de millions de personnes et pratiquement un milliard de PC. Pour ne donner que quelques exemples...

Lorsque nous avons commencé Windows 7, certaines personnes nous ont dit que l'équipe Windows était trop vaste et qu'elle avait atteint une taille qui provoquerait plus de problèmes d'ingénierie qu'elle n'en résoudrait. En même temps, vous pouvez regarder tous les commentaires et voir le nombre incroyable de nouvelles fonctionnalités demandées dans de très nombreux scénarios différents.

Les gens veulent à la fois des nouveautés et que l'on modifie les éléments existants. Ils veulent que les fonctionnalités soient disponibles dans leur pays, quel qu'il soit, qu'elles soient accessibles et de très haute qualité. Ils veulent que tout fonctionne sur le matériel existant, tout en voulant profiter du dernier matériel disponible. Notre travail consiste à réaliser le plus de tâches possible en aussi peu de temps que possible, à une très grande échelle. Cela représente un effort d'ingénierie assez conséquent.

Pour ceux qui comptent mes mots, je suis toujours sous la barre des 1 500 mots et je pense que je vais appeler ce texte une présentation de l'équipe. Continuez à envoyer vos commentaires, ils nous aident à développer des idées dans les billets et à mettre en forme le dialogue. J'espère que ce billet apportera une perspective utile pour nos discussions sur Windows 8.

--Steven