GitHub ou comment rendre le développeur heureux
📆 10/11/2022
L'événement GitHub Universe 2022 s’est tenu début novembre à San Francisco. Grâce au magazine Programmez!, j'ai eu le privilège d'être convié à visiter les nouveaux locaux de la firme à « l’octocat », ainsi qu’à assister à la conférence. L’occasion de décrypter le succès et les enjeux d’une société rendue incontournable grâce à l’open source.
Quasiment quinze ans après le premier commit, la société créée par Chris Wanstrath, PJ Hyett et Tom Preston-Werner a bien grandi. Rachetée par Microsoft en 2018, GitHub héberge le code de 94 millions d’utilisateurs à travers le monde (dont près de 2 millions en France), ces derniers ayant généré 413 millions de contributions à l’open source en 2022 d’après le dernier rapport Octoverse.
Et l’open source est devenu incontournable : Thomas Dohmke l’a martelé durant sa keynote en rappelant que plus de 90% des sociétés au monde utilisent dorénavant du logiciel libre. Ce raz-de-marée a pour conséquence que GitHub, utilisé par 90% des entreprises du Fortune 100, vient d’atteindre le milliard de revenus. La firme en pleine expansion ne veut d’ailleurs pas en rester là, comme en témoignent les nombreuses annonces de la conférence.
Une offre dédiée aux entreprises qui génère trois quarts des revenus
GitHub teste ses produits d’abord auprès des développeurs indépendants avant de les packager à destination des entreprises, dont elle tire la majeure partie de son chiffre d’affaires. Ce faisant, la société bénéficie d’un formidable vivier de compétences, d’un feedback régulier et consistant. Prenons l’exemple de Copilot, le fameux assistant qui vous suggère des portions de code relatives à une demande formulée en langage naturel. Son lancement privé a généré un tel engouement que 400.000 développeurs le testaient la première semaine de sa disponibilité ! L’outil étant, il faut bien l’avouer, assez bluffant en permettant une augmentation substantielle de sa productivité (+50% d’après les premières estimations de GitHub), il sera très difficile aux entreprises de ne pas autoriser son utilisation… et donc d’échapper aux offres payantes proposées. Mais au-delà du buzz généré par cet assistant dopé à l’IA, des produits comme GitHub Enterprise Server et GitHub Enterprise Cloud constituent véritablement le cœur de la machine de guerre de GitHub. Ils apportent aux entreprises des solutions d’infrastructure, d’hébergement, de plateformes logicielles et de sécurité. Ecoutons à ce sujet Maya Ross, en charge de la ligne Produits Entreprise : « Rendre les développeurs heureux fera que les entreprises seront aussi satisfaites. C’est pour cette raison qu’elles achètent les produits GitHub et mon équipe s’emploie quotidiennement à ce que cela arrive. Depuis mon arrivée chez GitHub il y a un peu plus de 3 ans, nous avons beaucoup travaillé à améliorer nos produits pour faire en sorte de rapprocher les développeurs des métiers fonctionnels, pour que chacun des acteurs soit à l’aise dans le build et le run des produits digitaux. ».
Maintenant, le vrai sujet en France et dans certains pays très soucieux de la sécurité de leurs données, est la localisation de ces mêmes données. Par exemple, les banques françaises sont encore très frileuses à faire héberger leurs données dans le cloud public, et de surcroit aux US. GitHub a pris conscience de ce phénomène en parlant avec ses clients et Maya nous le confirme : « Un gros travail a été réalisé pour rendre notre cloud ‘Enterprise-ready’, en termes de conformité et de sécurité. La majeure partie de GitHub.com est hébergée sur nos propres datacenters, nous rendant ‘cloud-neutral’. Le problème qui se pose à nous est de pouvoir déployer nos produits Entreprise dans d’autres pays que les US, entre autres en France à l’instar d’Azure, AWS ou GCP. Notre architecture n’est pas totalement ‘cloud native’ et notre feuille de route à long terme tient compte de ce fait. Maintenant, mes récentes visites à des sociétés européennes (blablacar, BMW, Allianz…) m’ont démontré que 50% d’entre elles utilisent déjà nos offres Entreprise même si elles sont hébergées aux US. C’est une évolution certaine ».
Concernant le futur de cette gamme de produits dédiée aux entreprises, Maya évoque des fonctionnalités autour de l’identité, domaine qu’elle connaît bien car elle a supervisé la plateforme de personnalisation de la BBC et ses 40 millions d’utilisateurs enregistrés. Par exemple, l’accès de freelances ou de sociétés de service sera mieux tracé.
La sécurité, enjeu majeur du Digital
Justement, l’identification, l’authentification, les failles dans le code, bref la sécurité au sens large a été abondamment abordée lors de la conférence. Il est de notoriété publique que les développeurs, en général, rencontrent quelque difficulté à tenir compte au long cours de ces aspects et GitHub a massivement investi ces dernières années pour leur faciliter la vie. Pour preuve, le rachat de deux entreprises-clés que sont Dependabot et Semmle.
La première, acquise en mai 2019 par GitHub, était une structure de 3 personnes dirigée par Grey Baker, en charge dorénavant de la ligne Produits Sécurité. Il avait eu l’idée de cet outil pour automatiser les tests de sécurité liés aux dépendances logicielles (GEMs Ruby), quand il était CTO d’une fintech quelques années auparavant : « Au départ, le produit était destiné à automatiser des tâches pour le développeur et puis des discussions client m’ont fait comprendre l’intérêt d’étendre mon produit à la recherche de failles de sécurité dans les composants externes nécessaires à un développement donné. J’ai débuté des discussions avec GitHub qui disposait d’une base de ‘clients potentiels’ infiniment plus importante que la mienne et le rachat s’est imposé de manière naturelle ».
La seconde, Semmle, a été rachetée à peine 6 mois plus tard en septembre 2019, preuve de la stratégie volontariste de GitHub. Créée en 2006 par Oege De Moor, cette société anglaise de 85 personnes commercialisait un outil très puissant d’analyse sémantique de code que des sociétés prestigieuses comme Microsoft ou Google ont utilisé. Son intégration a été rapide, du fait d’une culture très alignée avec GitHub et la brique « CodeQL », qui a bénéficié de 10 ans de travaux, fait désormais partie intégrante de la suite logicielle sécuritaire de GitHub.
Grey précise que cette suite « GitHub Advanced Security » est en fait composée de trois produits que sont donc Dependabot (vérification des dépendances logicielles et de leurs vulnérabilités), l’analyse statique de code avec CodeQL (recherche de vulnérabilités et d’erreurs dans le code) et des capacités de scanning de "secrets" qui alerte le développeur si une clé ou un token est présent en clair dans le code, donc piratable. D’après lui, la force de ces outils est « leur intégration transparente dans le workflow du développeur, avec une présentation efficiente des failles de sécurité permettant de rapidement les corriger ». Il précise d’ailleurs que CodeQL est livré avec des requêtes prédéfinies mais que l’on peut également en écrire soi-même ; les langages supportés sont C/C++, C#, Java, Javascript, Typescript, Python, GO, Ruby et, bientôt, Kotlin et Swift. Justin Hutchings, Directeur « supply chain security », abonde dans ce sens en soulignant que « GitHub a établi une vraie relation de confiance avec les développeurs, en reconnaissant la diversité de leur expérience quotidienne. Le défi est de rester à la pointe des sujets liés à la sécurité et de bien prendre en compte les suggestions et remarques des programmeurs. Cela est possible car les outils mis à disposition par la Compagnie le sont par des experts chevronnés qui en ont également besoin ». Il confirme à cet effet qu’une grande partie du code de github.com est toujours écrit en Ruby et Ruby on Rails, utilisés par les fondateurs de la société. Le support de Ruby étant essentiel pour les équipes internes, il a été décidé que le langage sera supporté par CodeQL qui scanne l’une des plus grandes bases de code Ruby au monde en seulement 20 minutes ! Justin rappelle également l’importance de l’une des annonces de la keynote du CEO : « GitHub est le premier acteur indépendant mondial qui contribue à annoncer les vulnérabilités, près de 1.100 cette année. Les mainteneurs open source peuvent maintenant recevoir des rapports privés liés à la découverte de nouvelles vulnérabilités par la communauté, et ainsi collaborer à leur résolution ».
Enfin, Grey lève une partie du voile sur la feuille de route de ces produits stratégiques pour GitHub : « GitHub était au départ un simple outil de gestion de code construit autour de Git. Mais comme les développeurs gagnent en responsabilité sur l’intégralité du processus de développement (devops…), d’autres outils sont venus compléter la souche originelle. Le monde de l’open source prend de plus en plus la mesure de sa responsabilité sur des aspects comme la sécurité du code, d’où la dynamique très forte autour de ces solutions comme GitHub Advanced Security, gratuites pour les développeurs indépendants mais payantes pour les entreprises ».
GitHub Copilot, le futur « meilleur ami » du développeur ?
Mais revenons sur le produit qui fait actuellement le plus de bruit dans le landernau des développeurs. Copilot a été conceptualisé par GitHub Next, l’unité gérée par Oege dès juin 2020. Pour lui, « Mon équipe est chargée de faire prendre à GitHub des directions inattendues en explorant de nouvelles technologies, créant des prototypes qui peuvent devenir des produits potentiels si les feedbacks récupérés auprès de centaines de milliers de développeurs s’avèrent encourageants ».
Et c’est effectivement ce qui s’est passé avec Copilot. Le défi était de concevoir un produit qui ne soit pas intrusif pour le développeur, qu’il ne le ralentisse pas dans sa réflexion, dans son travail de codage. Il a été surpris car la technologie s’est répandue très vite en interne, avant la mise à disposition en juin 2021 en test privé. Et Oege surenchérit : « Copilot est pertinent pour prendre en charge les parties ennuyeuses ou répétitives à coder d’un projet, pour que le développeur reste concentré sur les tâches les plus nobles, les plus complexes. Un sondage effectué par GitHub a d’ailleurs mis en exergue que quasiment tous les développeurs sondés souhaitaient alléger les travaux sans valeur ajoutée pour eux. Par exemple, la ‘plomberie’ entre composants, l’accès à des APIs complexes sont des domaines où Copilot constitue un vrai plus. Plutôt que de rechercher sur Google la manière de réaliser ces fonctions, Copilot apporte la solution bien plus rapidement et contextuellement… ».
Maya et Oege sont d’accord pour affirmer que « Copilot est un vrai concurrent de Stack Overflow : il permet en fait de ne pas quitter le ‘flow’ de développement. Notre stratégie est plutôt de fournir des outils où se trouve le développeur (i.e. extension Copilot pour VS Code) ; Stack Overflow demande aux développeurs de partager leur connaissance et il faut donc aller la chercher. D’où la rupture dans le cycle de développement, qui génère donc du context switching très préjudiciable à la productivité ». Alors, Copilot est-il le début d’une nouvelle génération d’outils ? « Copilot est juste le début d’une ère de ‘pair-programming’. Les développeurs passent trop de temps à faire autre chose que coder : intégration, tests, setup de plateforme, etc. A moyen terme, GitHub continuera à utiliser l’IA pour rendre le développeur plus heureux et productif », assène Oege. Pour le sémillant ex-professeur d’Oxford, l’expérience du développeur dans les prochaines années sera plus axée sur l’augmentation du temps dédié à la vraie créativité plutôt que sur les pertes de temps relatives aux activités annexes. Il estime enfin que les barrières à l’entrée pour être développeur vont être abaissées avec des outils comme Copilot.
GitHub, un mouvement stratégique pour Microsoft
D’autres produits ont été annoncés ou révisés comme Codespaces ou Actions et Programmez! les abordera très prochainement. La réactivité de GitHub, comme le souligne Oege De Moor, est fascinante « car la société est capable de concrétiser efficacement des produits majeurs en partant d’une ‘petite idée de base’ (i.e. Copilot, Code Search) ». Soulignons également l’initiative de la firme de San Francisco à destination des développeurs qui souhaitent vivre de leur passion de l’open source. Les trois programmes GitHub Accelerator, GitHub Fund (10 millions de dollars) et GitHub Sponsors (25 millions de dollars déjà récoltés) représentent l’investissement de GitHub dans la communauté open source. Même si ces montants peuvent sembler modestes eu égard à la criticité du logiciel libre, c’est un premier effort qui sera probablement amplifié dans les années à venir.
Le rachat de GitHub constitue un mouvement véritablement stratégique pour la firme de Redmond, qui laisse ses quelques 3.000 collaborateurs (dont la moitié sont des développeurs) très indépendants comme Justin le fait remarquer : « GitHub a une culture très distincte de Microsoft, où j’ai travaillé 11 ans. La société a embrassé le travail en remote dès ses débuts, ce qui nous a permis de traverser la pandémie sans heurts. Nous avons donc une culture de développement asynchrone, très distribuée et collaborative, nous autorisant à embaucher des candidats n’importe où dans le monde ». Cela se ressent également dans les différentes keynotes et ateliers, avec une ambiance décontractée et bon enfant. Avec GitHub, Microsoft accroit sa domination silencieuse sur le développement Web, en sus de VS Code (premier projet open source avec près de 20.000 contributeurs sur GitHub) et TypeScript qui sont de plus en plus utilisés.
Justin confirme également que « La montée en puissance de l’open source depuis 15 ans explique le succès de GitHub. A la fin des années 2000, les sociétés étaient encore nerveuses à l’idée d’adopter des technologies issues du monde open source. Ce n’est plus le cas. Dorénavant, le développeur est nettement plus productif en utilisant des briques open source et GitHub rend l’open source plus productif grâce à ses produits. Nous sommes un peu devenus la ‘maison du développeur’ ».
On peut également noter que GitHub a débuté depuis quelques années une politique de rachat avec, la dernière en date, NPM pour « sécuriser la registry » comme l’indique l’un de ses porte-paroles. Nous pouvons donc légitimement nous attendre à d’autres acquisitions dans les prochaines années.
En conclusion, pour Maya, « Le plus gros challenge de GitHub dans les années à venir est de continuer à bien comprendre les développeurs ». C’est tout ce que nous pouvons souhaiter à l’octocat : conserver le développeur au centre du jeu !