Retour sur la soirée GitHub au ChtiJUG du 9 décembre 2015

Ce Mercredi 9 décembre à l’Université Lille 1 à Villeneuve d’Ascq se tenait un Ch’ti JUG qui avait pour thème : Comment GitHub build GitHub.GitHub

Alain Helaili (@AlainHelaili) travaille chez GitHub et nous a présenté l’entreprise et montré en partie quelle était leur façon de travailler et les outils qu’ils utilisent.

Il a commencé par nous apprendre l’histoire originale de l’entreprise : des associés en Californie qui voulaient développer une super idée. Pour améliorer leurs conditions de travail, il ont créé une application autour du gestionnaire de source git. Puis ils l’ont partagé, jusqu’au jour où une entreprise a voulu l’utiliser. Il a donc fallu créer la société : GitHub, pour pouvoir vendre et trouver un prix. A ce moment là, DropBox proposait du stockage pour 7$/mois… le prix était trouvé.

Le contexte aussi est intéressant : les associés, même à coté, discutent par chat. Et le leitmotiv est que tout doit avoir une URL pour exister. Ainsi le travail est plus facilement collaboratif et asynchrone : pratique quand on travail sur plusieurs « time zone », surtout quand on sait que l’entreprise de près de 500 salariés est répartie un peu partout dans le monde ! Par ailleurs, l’une des valeurs fondamentales de GitHub est que tout soit le plus simple possible, quitte à omettre des fonctionnalités ou les retravailler jusqu’à ce que l’utilisation en devienne une évidence.

Alain nous a ensuite montré comment fonctionnait l’organisation du développement dans la société. Notamment via l’utilisation des issues et pull request. Ce qui transparaît le plus était pour moi :

  • L’absence d’e-mail au profit de création d’issue ou pull request afin de rendre visible les décisions et qu’elles soient de fait toujours documentées.
  • L’outillage devops notamment avec hubot le robot avec qui on discute par chat et qui se charge de déployer en production, faire des opérations de maintenance etc.
  • Le workflow de développement qui contient les phases classique de TU, TI, TNR etc et qui se termine par un test… en production, plutôt que d’imaginer des scénarios de montées en charge qui resteront toujours éloignés de la réalité. La phase finale consiste à déployer en production pendant un laps de temps défini, d’en mesurer les impacts puis de retirer la fonctionnalité le temps de valider qu’il n’y ait pas eu de mauvais impact. Et ce n’est qu’une fois cette validation en production faite que le développement est mis sur la branche principale : master. Ainsi la branche master ne correspond pas forcément à ce qu’il y a actuellement en production, mais elle est le socle de base, fiable pour la production.

Enfin l’application GitHub nous a été aussi présenté comme hautement personnalisable via les hooks et les nombreuses apis disponibles. On a notamment cité :

  • Review Ninja : la gestion des pull request par SAP
  • Gitcolony : également sur les pull request avec notamment la possibilité de les gérer cross-repos
  • Zenhub : qui permet de visualiser les évolutions en cours sous la forme d’un kanban
  • et plus globalement tous les addons disponibles avec GitHub

N’hésitez pas à consulter leur blog http://githubengineering.com pour en découvrir plus encore.

Le seul point négatif à mon sens de cette conférence était la salle dont l’écran était un peu petit et le micro qui coupait de temps en temps. Par contre on peut souligner le super accueil des étudiants de Lille 1 !

Merci à Alain, à l’équipe du Ch’ti JUG (enfin surtout Cyril cette fois-ci ;)) et aux étudiants de Lille 1 !

Matthieu Fernandes