Pourquoi Slack est devenu indispensable aux ingénieurs et aux développeurs

La plateforme collaborative adaptative conçue pour l’ingénierie logicielle.

Une ascension fulgurante

En 2009, notre petite équipe d’ingénieurs logiciels travaillait sur la création d’un jeu massivement multijoueurs appelé Glitch.

Nous avons commencé à utiliser l’Internet Relay Chat (vous vous souvenez de l’IRC ?) pour tenir toute l’équipe informée. Au fur et à mesure qu’avançait notre projet de jeu vidéo, la fonctionnalité de communication basique de notre canal IRC montrait ses limites. Nous avons alors commencé à y apporter des modifications, à y ajouter des fonctionnalités et à détourner son utilité première pour accélérer l’exécution des tâches.

Mais suite à l’échec du jeu vidéo, nous avons décidé de nous concentrer sur ce nouvel outil de collaboration que nous avions développé.

Ce fut une décision judicieuse, car un produit très performant et parfaitement adapté au marché a alors vu le jour pour permettre aux équipes de collaborer efficacement.

C’est sans doute parce que nous n'essayions pas de « créer » quelque chose de bien précis. Nous n’avions pas cette prétention, mais nous avions une vision concrète de ce que nous voulions, car nous étions nous-mêmes des utilisateurs ayant besoin de cet outil.

Et c’est ainsi que Slack a vu le jour.

Aujourd’hui, son succès a dépassé de loin nos attentes et son adoption auprès des équipes de développeurs de toutes tailles y est pour beaucoup.

En effet, la plupart des services et disciplines utilisent Slack, mais l’ingénierie logicielle a été le point de départ de son adoption. L’engouement dont elle fait preuve reste à l’heure actuelle notre principale source de motivation au quotidien.

C’est incroyablement gratifiant pour nous de pouvoir créer des solutions ayant des effets directs sur les activités quotidiennes des développeurs.

Cet e-book présente succinctement quelques solutions que Slack a créées pour aider les développeurs.

Nous espérons qu’il vous permettra de comprendre les raisons pour lesquelles les ingénieurs logiciels sont si attachés à Slack.

Pourquoi Slack est-il aussi adapté à l’ingénierie logicielle ?

Différents types d’équipes non techniques utilisent Slack au quotidien. Elles apprécient sa capacité d’adaptation naturelle au travail qui lui est demandé.

Mais Slack semble aussi parfaitement s’adapter à l’ingénierie logicielle. Il s’agit après tout d’un type de travail très spécifique.

En y réfléchissant bien, toutes ces caractéristiques se retrouvent dans un nombre grandissant de tâches. Mais l’ingénierie logicielle est un cas d’utilisation idéal. Elle nécessite un type de collaboration que les e-mails et les réunions en face à face n'offrent pas. Ce type de travail demande une toute nouvelle approche collaborative.

L’arrivée de la plateforme collaborative adaptative

Les personnes qui n’ont jamais utilisé Slack pensent qu’il s’agit d’une appli de messagerie. Mais ce n’est qu’une fonctionnalité parmi tant d’autres. C’est en fait une solution révolutionnaire.

Nous avons décidé de lui donner le nom de « plateforme collaborative adaptative », car elle s’adapte aux différentes méthodes de travail des équipes et à leurs logiciels existants... mais elle permet aussi de changer de méthode de travail.

Une plateforme collaborative adaptative se compose de trois éléments dans un seul et même outil

  • Une messagerie basée sur des canaux de conversations

Celle-ci permet aux équipes de créer des canaux consacrés à des tâches, à des projets ou à des problèmes spécifiques, comme un canal #dével-nouveau-site où tous les développeurs se retrouvent pour collaborer sur un nouveau site Web ou un canal #triage-app-mobile dans lequel les équipes travaillent ensemble pour supprimer les bugs d’une appli mobile.

Les canaux permettent de travailler beaucoup plus efficacement que les messages individuels ou les fils de discussion par e-mails fermés, car il est possible d’inclure en un clin d’œil toute personne concernée dans le thème correspondant et au moment le plus opportun.

  • Une base de connaissances consultable

Un seul et même endroit dans lequel tous les employés peuvent rechercher des documents pertinents, des conversations et des décisions prises, comme des caractéristiques de produits ou une discussion concernant une nouvelle fonctionnalité.

Les pièces jointes aux e-mails disparaissent généralement de la vue de tous, sauf pour les personnes placées en copie. Le savoir n’est utile que s’il est accessible.

  • Une couche d’intégration

Un endroit dans lequel les logiciels que vos employés utilisent le plus (comme GitHub, Jira, Jenkins et Trello) sont en relation avec le lieu de discussion quotidien d’un travail donné.

Cette approche évite tout changement de contexte permanent lié à l’utilisation de plusieurs applis différentes pour accomplir un travail demandé. Au lieu de forcer vos employés à accéder à ces applis, mettez-les à leur disposition.

Remarque : en réunissant ces trois éléments dans un seul et même endroit, l’efficacité de chacun sera alors décuplée. Mais la plateforme sera beaucoup plus performante que tous ses éléments cumulés.

Avantages pour les équipes d’ingénierie logicielle

Une plateforme collaborative adaptée améliore directement les éléments les plus importants pour chaque équipe d’ingénierie : meilleure qualité de codage et rapidité de développement ; suppression plus efficace des bugs et amélioration de l’expérience des développeurs (et de la satisfaction de vos talents). Tout logiciel vous permettant d’obtenir de tels résultats vaut probablement la peine de s’y intéresser.

Slack est une plateforme de documentation vivante dans laquelle tout est consultable.

Malika RajvanshyIngénieure principale, Slack

IDC nous a aidés à mettre des chiffres sur nos déclarations : les équipes d’ingénierie utilisent Slack pour réaliser de nombreuses autres tâches.

Comment Slack simplifie l’ensemble du processus d’ingénierie logicielle

Nous faisons indubitablement partie des utilisateurs les plus aguerris de Slack en matière de développement de logiciels, car toutes nos équipes de développeurs y passent le plus clair de leur temps. Mais tous les jours, nous entendons parler de nouveaux cas d’utilisation, mais aussi d’applis et d’intégrations intéressantes qu’utilisent les équipes d’ingénierie logicielle.

Intéressons-nous de plus près à quelques-uns d’entre eux, chacun étant présenté dans une étape du cycle de développement d’un logiciel.

Planification

Slack permet aux directeurs de produits, aux concepteurs et aux ingénieurs de se mettre d’accord sur la solution à créer et son objectif.

Informations du canal Slack
Fil de discussion Slack traitant du formulaire de commentaire pour les utilisateurs dans l’appli
  • Commencez le processus en créant un canal unique pour un nouveau produit ou une nouvelle fonctionnalité

Donnez-lui un nom du type #fonctionnalité-nouvelle-app.

Désormais, vous disposez d’un endroit unique pour déterminer les enjeux d’un projet, regrouper des exigences en matière de fonctionnalités, discuter de solutions alternatives et passer des appels importants concernant les fonctionnalités et l’expérience utilisateur.

  • Ici le partage de documents permet de trouver la moindre information

Ce canal s’adresse à tous les contributeurs et aux nouveaux participants. Slack s’intègre parfaitement à Google Docs, tous les documents étant ainsi à portée de clic.

  • Vous avez une question ? Posez-la dans le canal.

Ouvrez une discussion et permettez à tous les participants d’en lire la conclusion à tout moment, car elle sera alors disponible en permanence.

Codage

Slack permet aux développeurs d’organiser les nombreux éléments interchangeables d’une grande base de code, ce qui va accélérer son développement et améliorer sa qualité.

Lorsqu’une équipe doit commencer la phase de codage, Slack veille à ce que le travail de tous ses membres soit synchronisé :

  • Le canal #dével-nom-produit est la page d’accueil du projet

Elle contient notamment les tâches quotidiennes réalisées par les services d’ingénierie et d’assurance qualité ; les pull requests, les fusions de code, les révisions de conception, les points d’équipe quotidiens, les discussions, etc.

  • Une plateforme centralisée pour la révision de code

Slack prend en charge tous les processus que vous utilisez pour relier, fusionner, examiner et publier du code, qu’il soit développé sur des branches de version, des branches de fonctionnalité ou depuis un document maître fusionné.

Les intégrations Git (avec GitHub, Bitbucket ou le référentiel de votre choix) regroupent toutes les notifications de modification dans Slack.

  • Un nouveau type de points d’équipe

Les points d’équipe font partie intégrante d'un développement agile, mais ils ne doivent pas nécessairement se faire en présentiel. Les équipes de développeurs utilisent Slack pour ces types de réunions, qu’elles soient organisées tous les matins ou toutes les semaines, mais aussi pour organiser des réunions en personne uniquement lorsque nécessaire (nombre de développeurs ont une préférence pour les réunions annulées).

Les intégrations à des logiciels, tels que Standuply, transfèrent automatiquement des synthèses dans Slack pour que vos équipes puissent partager des objectifs et des tâches, suivre des indicateurs métier, publier des notes de réunion et surveiller les progrès réalisés et la satisfaction des membres de vos équipes.

Intégration de la liste de contrôle dans Slack qui publie des « pull request » dans un canal

Promouvoir la réutilisation de code : la réutilisation de code est un principe de base qu’appliquent toutes les équipes d’ingénierie efficaces, mais elle représente un défi de taille lorsque des centaines de développeurs participent au codage de plusieurs produits différents. Avant d'écrire un nouveau code, vos développeurs peuvent consulter tous les canaux Slack pour déterminer si quelqu'un d'autre a déjà créé un code similaire. Puis, posez la question suivante dans les canaux correspondants : « quelqu’un a-t-il déjà codé un sélecteur de date ? » Inutile de recoder la roue.

Créer et partager du code à l’aide d’extraits : les extraits permettent de partager directement et en un clin d’œil du code, des fichiers de configuration et des fichiers journaux dans Slack. Les développeurs peuvent les télécharger, consulter le fichier brut et laisser des commentaires.

Slack en action

Au cœur de l’extensibilité

Slack est une plateforme collaborative. C’est son point fort. Il n’essaie pas de se substituer aux logiciels que vos équipes utilisent déjà, tels que Trello, GitHub ou Jenkins.

En revanche, Slack sert simplement à regrouper l’ensemble de ces différentes applis, en faisant ressortir les informations pertinentes qu’elles contiennent dans les différents canaux de discussion d’un projet en cours de réalisation (et en incitant à agir dans ces applis depuis Slack).

Chaque fois que j’ai trouvé une nouvelle intégration à Slack, je l’ai activée. Elle s’est révélée être bénéfique et nous a permis de décupler l’efficacité de nos processus.

Thomas LawlessIngénieur logiciel principal, IBM

Ces intégrations permettent aux développeurs de s’adonner à leur passion : créer des systèmes efficaces.

Les exemples mentionnés tout au long de cet e-book sont ce qu’ils sont : des exemples. Il existe autant de manières différentes d’utiliser Slack qu’il existe d’équipes d’ingénierie logicielle.

Test

Les tests font partie intégrante des processus de développement/déploiement modernes. Slack applique une approche dynamique, collaborative et transparente en matière de tests.

L’intégration continue exécute votre suite de tests lors de chaque fusion avec un nouveau morceau de code. Slack simplifie le processus de plusieurs manières différentes, à grande et petite échelle :

  • Un canal #test–fonctionnalité coordonne l’équipe d’assurance qualité

Il permet à l’équipe d’assurance qualité de collaborer avec les développeurs d’un autre forum ouvert.

  • L’intégration de Jira automatise les procédures de test

Identifiez toute anomalie dans Slack et intégrez-la automatiquement au processus. Envoyez des notifications personnalisables de Jira à vos canaux. Attribuez en un clin d’œil la résolution d’anomalies en sachant qu’elle sera enregistrée au bon endroit.

Certaines équipes utilisent Slack pour déplacer automatiquement des demandes de modification dans un nouveau canal, tout en actualisant Trello ou Asana.

  • Création d’un canal pour chaque client

Il s’agit de canaux de test spécialement créées pour iOS, Android et Internet.

La commande barre oblique Jira dans Slack

Utilisation de Slack avec Jenkins

Beaucoup d’équipes utilisent Jenkins comme serveur d’intégration continue. Elles ont rapidement trouvé de nouvelles solutions pour intégrer Jenkins dans Slack afin d’automatiser toutes sortes de tâches de développement de routine.

Par exemple : l’intégration personnalisée à Slack par une équipe d’ingénierie logicielle permet de lancer un serveur Jenkins exécutant une imposante suite de tests dès qu’un développeur ouvre une pull request.

Une fois les tests terminés, des notifications vont s’afficher dans les canaux Slack correspondants. Si le code échoue au test, une notification sera envoyée au développeur.

Version

Slack permet de mettre en production du code en automatisant les procédures et les notifications.

Un envoi continu nécessite toujours beaucoup de nouvelles petites versions de code qui sont très fréquemment déployées. Slack permet aux équipes d’ingénierie de simplifier une partie de cette étape.

Par exemple : l’une de nos équipes d’ingénierie logicielle a conçu le code d’une appli, puis a utilisé Deploy Wizard qui s’intègre aux opérations en indiquant l’état du code dans le canal. Le déploiement commence par une étape intitulée « canary » (une toute petite version permettant de pallier tout échec soudain), puis s’étend à 10, 25, 75 et 100 % de la base d’utilisateurs.

Intégration de Deploy Wizard dans Slack qui publie des mises à jour sur les étapes

Deploy Wizard notifie les développeurs et les canaux correspondants dans Slack, au fur et à mesure de la progression du déploiement. Les responsables du déploiement en service (ingénieurs expérimentés travaillant par roulements de trois heures) gèrent l’ensemble de l’opération.

Si les développeurs souhaitent tester leur code dans l’environnement de simulation, ils doivent le préciser dans leur requête de fusion. Le déploiement s’arrêtera en phase de simulation jusqu’à ce qu’un développeur indique avoir testé le code dans le canal consacré aux déploiements.

Certaines équipes de développeurs utilisent des commandes barre oblique (comme /deployer_simulation_nomproduit) pour déclencher un déploiement directement depuis Slack. Des messages automatiques s’affichent dès que le déploiement a abouti, accompagné d’un lien pour que vous puissiez le vérifier (ou d’un bouton pour activer sa mise en production).

Opérations 

Les équipes de développeurs utilisent Slack pour trier les tickets de dépannage, s’affairer à la résolution d’anomalies et supprimer les bugs.

  • Toutes les anomalies sont recensées dans le canal #triage nom-produit

Il contient les rapports de l’assistance client (rédigés manuellement ou que les intégrations ont généré avec des outils, tels que Zendesk).

  • Les intégrations regroupent toutes les alertes dans un seul et même endroit

Les développeurs n’ont plus à surveiller leurs e-mails ou consulter des tableaux de bord, Slack centralise toutes les alertes et les adresse aux développeurs les plus compétents pour y répondre.

L’agrégation des événements PagerDuty ou des tickets Asana et leur publication dans les canaux appropriés réduisent les délais de résolution d’incidents et laissent une trace de triage. Les membres de l’équipe peuvent travailler ensemble sur le déclenchement, l’affichage, le signalement et la résolution d’incidents directement depuis Slack.

De même, Slack peut transférer toutes les alertes Web, de transactions, de serveurs et mobiles de New Relic vers un canal Slack pour obtenir une réponse rapide. Tous les membres peuvent consulter le canal pour savoir si un incident a été résolu. Ainsi les responsables n’ont plus à interrompre les membres de l’équipe travaillant sur la résolution d’un incident pour connaître l’état d’avancement de leur intervention. Tout est affiché à l’écran.

Les émojis et réactions émojis permettent de trier les anomalies et de déclencher des flux de travail

Les réactions émojis permettent d’identifier efficacement les réponses des membres d’une équipe, mais aussi de déclencher des flux de travail automatisés. Une appli les recueille pour les regrouper, leur attribuer un indicateur et les activer. Tout problème ouvert (affichant un émoji œil, mais aucune coche) s’affiche dans PagerDuty.

Canal #décisions automatique : certaines équipes utilisent l’émoji marteau pour indiquer la prise d’une décision. Puis, un bot transfère toutes ces décisions vers le canal #décisions, dans lequel les responsables peuvent consulter le flux de décisions et les membres d’équipe les rechercher.

Puis, nous avons créé un bot qui les recueille et les signale dans un canal dédié.

Avis des utilisateurs

Les ingénieurs logiciels sont très sollicités. Pour conserver vos talents, vous devez tout mettre en œuvre pour que leur expérience soit la meilleure possible.

Un logiciel de collaboration adapté peut considérablement améliorer leur expérience : renforcer la cohésion de l’équipe, favoriser la transparence, automatiser les tâches courantes et faciliter le travail entre les différentes équipes.

Discutez avec votre équipe d’ingénierie logicielle qui utilise Slack.

Demandez à ses membres comment ils utilisent les canaux, applis et intégrations.

Puis, demandez-leur s’ils pourraient s’en passer.

Intégration des nouveaux développeurs

Deux nouveaux développeurs rejoignent l’équipe. Comment les mettez-vous au diapason ?

Ancienne méthode : beaucoup de réunions d’intégration et d’innombrables de fils de discussion transférés par e-mail pour les informer des projets en cours. Il n’y a pas de temps à perdre.

Nouvelle méthode : invitez-les à consulter le canal #dév–nouveau–produit pour qu’ils consultent les messages épinglés, tels que :

  • Les caractéristiques du produit
  • Les caractéristiques techniques
  • Les conceptions

(S’il s’agit de fichiers Google Docs, DropBox ou OneDrive, ils seront toujours actualisés.)

Ils peuvent aussi consulter toutes les anciennes conversations et décisions prises précédemment, ainsi que les personnes concernées. Telle est désormais la méthode utilisée pour intégrer un nouveau développeur à une équipe.

Voilà comment les ingénieurs logiciels utilisent Slack

C’est ici que se termine notre présentation rapide de Slack. Nous avons vu comment il permet aux équipes d’ingénierie logicielle de simplifier, d’automatiser et d’accélérer leur travail. Nous avons évoqué ses principales caractéristiques :

  • Une solution inédite : une plateforme collaborative adaptive qui permet aux ingénieurs de travailler différemment et qui ne se limite pas à une simple appli de messagerie.
  • Très adaptable : elle permet à vos équipes de s’approprier leurs espaces de travail, leurs canaux, leurs applis et leurs intégrations afin de les adapter à leurs propres méthodes de travail.
  • Optimisation de vos logiciels existants : de GitHub et Bitbucket à Jenkins, Jira, PagerDuty, New Relic, Zendesk… quels que soient les logiciels qu’utilisent vos développeurs, commerciaux, techniciens d’assurance qualité et d’assistance, ces derniers pourront les optimiser en regroupant l’ensemble de leur travail dans Slack.
  • Création de valeur ajoutée à chaque étape du cycle de développement : de la planification et du développement, au test, à l’exploitation, au déploiement et à la suppression de bugs.
  • Incontournable chez les ingénieurs logiciels : ils adopteront la plateforme et développeront progressivement son utilisation (et généreront de la valeur ajoutée pour l’entreprise).

Nous avons ce que nous aimons appeler un "flux d’envoi de bout en bout" qui commence par le code source et va jusqu’à sa mise en production. Et maintenant, la puissance et la versatilité des flux de communication de Slack sont intégrées à chacune des étapes de ce processus.

Thomas LawlessIngénieur logiciel principal, IBM

Si vous souhaitez en savoir plus, demandez une démonstration ou à l’un de nos développeurs de vous montrer notre propre instance Slack. Nous serons ravis de vous la faire découvrir.

Notes de bas de page

  1. IDC research, The Business Value of Slack, 2017, sponsored by Slack

Cette ressource vous a-t-elle été utile ?

0/600

Parfait !

Merci beaucoup pour votre feedback !

Bien compris !

Merci pour vos commentaires.

Oups ! Nous rencontrons quelques difficultés. Veuillez réessayer plus tard.