Après une période de cinq ans, Kellan Elliott-McCrea a quitté Etsy. Elliott-McCrea a été CTO d'Etsy au cours des 4 dernières années et VP de l'ingénierie avant cela. Durant ces cinq années, les équipes logiciel et d'ingénierie ont subi des changements radicaux. Dans l'article annonçant son départ, Elliott-McCrea expose cinq principes qui l'ont guidé à travers ces changements.
En 2009, Etsy, grand marché en ligne pour acheter et vendre des produits faits à la main ou vintage, avait des difficultés à supporter la montée en charge. La fiabilité du site était dramatique du fait d'une architecture souffrant d'une culture pre-DevOps. Les développeurs, DBA et les admin-sys travaillaient tous dans leurs silos. Les déploiements étaient importants et peu fréquents. Les développeurs n'avaient pas la main sur la production. C'était la période avant DevOps - la première conférence DevOpsDays, à Ghent, a eu lieu en 2009 - donc à ce moment, c'était la manière la plus courante de développer et gérer des sites web.
Lorsque Elliott-McCrea rejoignit Etsy, les transformations étaient déjà en route, ce qui était une manière de tester ses principes.
Principe 1 : Rien de ce que nous “savons” sur le développement logiciel ne devrait être présumé valable.
Construire des logiciels est un travail d'équipe mais la plupart des outils, processus et modèles mentaux pour le développement logiciel postulent un seul développeur.
Principe 2 : Les technologies sont le fruit de la culture qui l'ont produite.
La culture est le fondement de toute construction. La culture permet de passer à l'échelle avec un couplage faible. Et la culture est la manière d'agir, non de parler.
La culture ne signifie pas une seule culture. Comme Elliott-McCrea le dit : "Il y a cinq ans, suggérer que de meilleurs logiciels sont écrits par des équipes variées de personnes attentives qui tiennent aux autres, était en opposition avec notre image de l'industrie".
Principe 3 : Le développement logiciel devrait être pris comme un cycle continu d'apprentissage et d'amélioration plus que le chemin allant d'un début à une fin, ou la recherche d'une exactitude.
Etsy déploie des douzaines de fois par jour, ce qui permet d'apprendre et de s'améliorer. De manière intéressante, Elliott-McCrea explique que "la maturité, c'est savoir quand arbitrer et quand ne pas arbitrer".
Principe 4 : Vous construisez une culture d'apprentissage en optimisant globalement, et non localement.
Les améliorations doivent toucher toute l'équipe, sur des croyances partagées, des outils et des modèles mentaux. S'appuyer sur quelques développeurs "rock-stars" n'est ni la meilleure solution pour une bonne productivité, ni satisfaisant pour tous.
Principe 5 : Si vous voulez construire pour le long terme, la seule certitude est le changement.
Vos réponses actuelles sont soit fausses maintenant ou le seront bientôt. Donc, l'équipe doit continuellement poser des questions, des principes et les tester pour trouver de nouvelles réponses.
Un aspect spécifique des changements d'équipe d'ingénieurs est son ouverture au monde. Cette culture de l'ouverture apporta beaucoup d'outils open source. Certains sont très connus, comme StatsD, un aggrégateur de mesures, Logster, qui génère des mesures d'après des fichiers de log. Les présentations d'Etsy sont également devenues des caractéristiques de nombreuses conférences dans le monde où ses ingénieurs parlent de tous les aspects du développement logiciel, aussi bien techniques que culturels. Etsy invite également des speakers dans son Labs à Brooklyn, deux fois par mois.