Étienne Baudoux // Notes

Stage à Microsoft 3.0

// 10/06/2016

Hello World !

Ça y est, l’été, c’est terminé. Contrairement à l’an dernier, je n’ai pas fait un article par semaine, car tout simplement il n’y a pas d’intérêt à tout répéter. J’ai déjà raconté une bonne partie de ce qu’il y a à dire sur un stage à Microsoft, du moins tout ce que j’ai le droit de dire. Je vais donc en parler de manière plus réduite en essayant de parler de ce qui a été nouveau et plus globalement, ce que j’ai été amené à réaliser.

Le job

J’ai donc travaillé durant 12 semaines avec l’équipe VS IDE Project & Telemetry de Visual Studio. C’est en fait deux petites équipes en une, constituées de 5-6 personnes à chaque fois, avec un seul manager. Les deux parties sont donc :

  1. Telemetry, qui travaille sur le développement des apis et outils internes concernant la télémétrie de Visual Studio. C’est en fait l’équipe dans laquelle j’étais il y a deux ans.
  2. Project, là où je suis cette année, travail sur les fonctionnalités de Visual Studio qui permettent de gérer les projets et solutions au niveau global. Ça signifie qu’on ne va pas rentrer dans les détails des projets dédiés au C# par exemple, il y a une autre équipe pour ça, celle qui réalise les outils de développement spécifique au C#.

Dans cette équipe, comme à chaque fois, j’ai fait face à des nationalités diverses et variées. Un chilien, trois américains, deux russes, un bulgare, un indien, un ukrainien, deux chinois.

Dans la partie de l’équipe avec laquelle j’ai travaillé, on y fait du SCRUM (contrairement à l’an dernier ou, avec l’équipe Chakra, ça ressemblait plus à de l’Extreme Programming sans en être à fond). Daily meeting, démonstration en fin de sprint, rétrospective, etc. J’aime bien cette façon de travailler personnellement.

J’étais situé au bâtiment 18, dans un Open Space avec fenêtre. Il y a encore quelques années, à Microsoft, les jeunes employés avaient des bureaux fermés sans fenêtre, et plus on montait en grade/expérience, plus on avait la possibilité d’avoir une fenêtre à son bureau. Aujourd’hui, Microsoft rénove la plupart des bâtiments (certains n’ayant pas changés depuis leur construction dans les années 1990-2000). Désormais, l’idée est que tout le monde ou presque sera en Open Space avec des fenêtres. Je dis « ou presque » car il existe aussi une sorte de bunker pour les projets très critiques ou la confidentialité fait que l’on ne préfère pas mettre de fenêtres.

Comme chaque année, il y a un meeting hebdomadaire entre l’employé et son manager, le « 1 : 1 » (One to one). J’adore toujours autant ce meeting ou l’on en profite pour raconter comment s’est passé la semaine : ce que l’on a accompli, les difficultés que l’on a rencontrées, comment les éviter à l’avenir, ou tout simplement discuter de tout et n’importe quoi et pourquoi pas vider son sac. J’aime bien comparer ce meeting une visite chez le psy.

L’an dernier, je travaillais principalement en C++ et JavaScript, seul sur mon projet de stage. Cette année, j’ai principalement fait du C#, ai travaillé en binôme, et ai eu la chance de pouvoir participer à quelques prises de décisions importantes sur l’UX du projet sur lequel je travaillais, en discutant avec des Program Managers et un Designer, ce qui est tout nouveau dans ma courte carrière. Mais ce projet, qu’en est-il ?

Visual Studio – Open Folder

Une des nouvelles fonctionnalités de Visual Studio 15, beaucoup demandées par les développeurs web et C++, est la possibilité d’ouvrir un dossier, et non une solution/projet. Cette fonctionnalité existe déjà dans Visual Studio Code et bien d’autres IDE, mais n’était pas encore intégrée à Visual Studio. Elle a donc pour but de laisser l’utilisateur ouvrir et explorer un dossier entier dans Visual Studio, le tout en conservant l’auto-complétion, le débogueur, la possibilité de compiler…etc.

Mon sujet de stage a été de travailler sur l’UX et l’optimisation de cette fonctionnalité. Visual Studio 15 Preview 5 intègre la majeure partie de ma contribution de ces 12 dernières semaines (il y a "presque" tout), et je vais enfin pouvoir dire « Tu vois ce bouton ? C’est moi qui l’ai fait ! :D Quoi ? Il bug ? Finalement ce n’est pas moi… ».

Open Folder

Je ne vais pas rentrer dans les détails techniques du pourquoi du comment, mais pour faire simple j’ai dû recoder la plupart des fonctionnalités existantes de l’Explorateur de Solution pour que l’UX y soit similaire. Cela inclut les éléments suivant :

  1. Copier
  2. Coller
  3. Couper
  4. Ouvrir le dossier dans l’explorateur de fichier
  5. Ouvrir une invite de commande
  6. Copier le chemin
  7. Glisser/Déposer dans l’explorateur de dossier
  8. Limiter à (Scope to this)
  9. Le tout nouveau bouton dans la barre d’outils qui permet de permuter entre la vue dossier et la solution de notre choix, si une solution est disponible dans le dossier que l’on a ouvert. Inversement, passer de la vue solution à la vue dossier.

Coté optimisations, ceux qui utilisent déjà cette fonctionnalité dans les précédentes Preview de Visual Studio ont dû remarquer que l’indexation du dossier que l’on ouvre était lente. Cette indexation permet de lister les fichiers du dossier ouvert et de créer des liens entre eux afin que l’utilisateur puisse avoir, par exemple, l’auto-complétion, les références aux méthodes…etc. J’ai travaillé en binôme à optimiser en vitesse cette partie d’Open Folder. Pour vous donner un exemple, si l’on prend le repository de « msbuild » sur GitHub, avant, ça prenait 5 à 6min à être indexer. A présent, ça ne prend plus qu’une vingtaine de secondes. Mon manager et nos supérieurs sont très satisfait de ce résultat, mais nous sommes toujours à l’écoute des feedbacks des utilisateurs (go go go !).

La vie à Microsoft en tant que stagiaire

Il faut reconnaître que l’on est chouchouté. Il faut dire que la concurrence est rude. La plupart des stagiaires ici font également des stages chez Google, Apple, Amazon, Facebook, Twitter. Ainsi la barre est haute pour tenter de recruter.

Ça passe par le salaire, les évènements et la région principalement. Par exemple, cette année j’ai eu l’occasion d’aller faire de la randonnée avec des stagiaires et RH, nous avons eu un concert privé de Ellie Goulding et une Surface Book en cadeau, et j’ai même put rencontrer le papa de SharePoint et One Drive, Jeff TEPER, avec lequel j’ai pu déjeuner. Je l’avais rencontré dans mon école, SUPINFO, à Paris en Mai dernier. Il a donc été un peu plus facile de garder le contact vu que j’arrivais à Redmond un mois plus tard. Mais évidemment, Mr.TEPER n’a pas la même valeur que le sésame, le CEO, le Dieu, Satya NADELLA.

Selfie avec le CEO

Un beau jour, je reçois dans mes emails une invitation à un meeting : « Coffee with Satya ». Les RH ont sélectionné 20 stagiaires sur 1500 pour boire un café le lendemain avec le patron de Microsoft, Satya NADELLA.

C’est la gorge un peu sèche que je suis arrivé au bâtiment 34 de Microsoft, a un point de rendez-vous ou un employé a vérifié mon identité pour être sûr que je ne m’étais pas invite moi-même a l’évènement. J’entre dans la salle. Je me suis assis parmi les autres invités, majoritairement féminin (qui a dit que les femmes n’étaient pas de bons ingénieurs ?). C’est une salle de réunion comme tant d’autres à Microsoft, mais un petit peu plus design il faut le reconnaître, et puis avec une Surface Hub, il n’y en a pas encore partout sur le campus !

Après un petit peu d’attente et un briefing des RH, Satya NADELLA entre dans la pièce. On va faire une séance de question réponse.

Ce fut donc 30 minutes de discussion avec Satya et 20 stagiaires. On lui posait des questions, et il nous en posait également.

Pour ma part, j’ai eu l’occasion de lui poser une question plus ou moins improvisée : j’ai commencé par me présenter, dire que j’étais Français et que nous avons quelques soucis liés au terrorisme. J’ai fait remarquer que nos produits, Windows en particulier, est utilisé par les terroristes contre nous, pour, par exemple, télécommander une voiture à distance qui irait exploser quelque part. Ma question était donc de savoir comment nous pourrions épauler les services anti-terroristes (la CIA notamment, en leur permettant « peut-être » d’espionner/identifier ces personnes au travers de nos produits) tout en respectant la vie privée et la sécurité de nos utilisateurs. La question est complexe, je le conçois, et n’attendais pas de réponse miracle, mais plutôt son point de vue sur le sujet.

Il a ainsi répondu qu’il faudrait faire un nouveau package de lois, en commençant par les Etats-Unis puis dans le reste du monde, afin de modérer davantage la façon dont on récupère et conserve les données anonymes des utilisateurs à travers leurs écrans. Puis l’on pourra créer des législations qui permettront à ces services gouvernementaux de forcer une entreprise à récupérer des données beaucoup plus personnelles d’un utilisateur ciblé. D’où l’intérêt de faire des lois qui protègeront la façon dont l’on récupèrerait et gèrerait ces données personnelles.

Évidemment, tout cela n’est qu’une réponse a une question. « Quel votre point de vue/idée là-dessus monsieur ? ». Je ne pense pas qu’on l’appliquera dans les 5 prochaines années. Les utilisateurs ne sont pas prêts à céder leurs données pour une meilleure sécurité car au contraire ils ne se sentiraient pas en sécurité.

Je n’ai malheureusement pas encore eu l’autorisation de ma RH de publier la photo de groupe que l’on a eu avec ce monsieur. Je peux la montrer en privé, c'est tout pour le moment. :)

Conclusion

Quel été ! Le reste du séjour et de l’expérience est très similaire à mes précédents stages. Il serait donc inutile de me répéter encore.

Ce fut un privilège de pouvoir contribuer à Visual Studio, un outil que j'utilise depuis 11 ans maintenant, et qui a été une immense source d'inspiration pour SoftwareZator.

Je vais retourner à Redmond à partir d’Avril pour mon stage de fin d’étude. Cette fois-ci probablement dans l’équipe XAML Expérience (qui travaille sur le designer XAML et Blend principalement), VS IDE Editor (qui travaille sur l’éditeur de code de Visual Studio) ou bien VS Debugger (qui travaille sur les outils de débogages de Visual Studio). Le placement dans les équipes se fait en fonction de nos préférences et des places disponibles dans les bureaux.

N’hésitez pas à me poser des questions si ça vous vient.

A bientôt !