E-book

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 (MMORPG) appelé Glitch.

Nous avons commencé à utiliser l’Internet Relay Chat (vous vous souvenez d’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é à modifier et reprogrammer tout cela pour accélérer l’exécution des tâches.

Mais suite à l’échec de cette initiative, nous avons décidé de privilégier cette nouvelle collaboration que nous avions développée.

Suite à cette décision judicieuse, Slack a alors vu le jour, et a immédiatement rencontré son public. Des équipes qui voulaient collaborer efficacement.

L’une des raisons de notre succès est que nous n’avons pas inventé un produit pour répondre à un besoin marché. Nous l’avons créé pour répondre à nos besoins complexes de gestion de projet. Nous étions nous-mêmes utilisateurs.

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 entreprises et fonctions utilisent Slack, mais les ingénieurs en informatique ont été les premiers à nous adopter. L’engouement dont ils et elles font preuve reste pour nous une grande source de motivation.

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 vous présente 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é à améliorer l’efficacité de tous types de tâches et communications.

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 partout dans le monde du travail d’aujourd’hui. 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 ne permettent pas de gérer. 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 application 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, à leurs logiciels existants... et aux changements permanents du monde du travail d’aujourd’hui.

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

  • Des échanges consolidés dans des canaux de conversations

Permet aux équipes de créer des canaux consacrés à des tâches, à des projets ou à des problèmes spécifiques, comme un canal #devel-nouveau-site où tous les développeurs se retrouvent pour collaborer sur un nouveau site Web. Les canaux permettent de travailler beaucoup plus efficacement que les messages individuels ou les fils de discussion par e-mails fermées.

Vous pouvez inclure dans n’importe quelle conversation les bonnes personnes dès que vous avez besoin de leur participation. Et elles voient tout le contexte de façon claire.

  • Une vraie base de connaissances collective

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

Les pièces jointes aux e-mails disparaissent généralement dans les flots de messages, sauf pour les personnes mises en copie. Le savoir n’est pourtant utile que s’il est accessible.

  • Une couche d’intégration

Grâce à laquelle les logiciels que vos collaborateurs utilisent le plus (comme GitHub, Jira, Jenkins et Trello) sont directement liés avec les conversations professionnelles du quotidien.

Cette approche évite les trop fréquents changements d’environnement de travail et d’interface, qui créent une perte de productivité. Au lieu de forcer vos équipes à accéder à de nombreuses applications séparées, mettez-les à leur disposition dans un seul et même endroit.

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 réunis.

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 code, déploiement plus rapide ; 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 aller plus vite et plus loin.

Comment Slack simplifie l’ensemble du processus de développement logiciel

Nous sommes parmi les utilisateurs les plus aguerris de Slack pour le développement logiciel. Nos développeurs y passent le plus clair de leur temps. Mais tous les jours, nous entendons nos clients parler de nouveaux cas d’utilisation, et d’applications et d’intégrations intéressantes.

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.

Planifier

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

  • 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.

Vous avez maintenant un endroit centralisé pour déterminer les enjeux d’un projet, regrouper les besoins fonctionnels, les différentes options et prendre des décisions sur les caractéristiques et l’expérience utilisateur.

  • Partagez tous les documents et profitez d’un puissant moteur de recherche

Très pratique pour les contributeurs, quel que soit le stade auquel ils rejoignent le projet. Slack s’intègre parfaitement à Google Docs et à d’autres solutions du marché, tous les documents étant ainsi à portée de clic.

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

Lancez une discussion et trouvez des réponses que chacun pourra consulter car elle sera alors disponible en permanence.

Code

Slack permet aux développeurs d’organiser les nombreux éléments d’une grande base de code. Qualité et vitesse sont ainsi au rendez-vous.

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

  • Le canal #dev-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 journaliers, 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.

  • Faire le point différemment

Les réunions debout font partie intégrante du développement flexible, mais elles ne doivent pas nécessairement être individuelles. Les réunions font partie intégrante du développement agile, mais elles ne doivent pas nécessairement se tenir en face-à-face. Les équipes de développeurs utilisent Slack pour ces points réguliers, qu’ils soient quotidiens ou hebdomadaires. Slack permet aussi d’organiser des réunions en direct si vraiment nécessaire (chacun sait que les développeurs adorent voir une réunion annulée).

Les intégrations avec des logiciels tels que Standuply transfèrent automatiquement les statuts de projets dans Slack. Vos équipes peuvent ainsi visualiser les objectifs, les tâches, suivre les indicateurs de performance, publier leurs notes... et vous pouvez voir leurs progrès et leurs succès !

Promouvoir la réutilisation de code : la réutilisation de code est un principe de base qu’appliquent toutes les équipes 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 en un seul endroit tous les canaux Slack pour voir si quelqu’un a déjà créé un code similaire. Ils peuvent demander dans les canaux correspondants « Quelqu’un a déjà codé un sélectionneur de date ? » Inutile de recoder la roue.

Créer et partager du code à l’aide d’extraits : les extraits permettent de partager facilement 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

Nativement extensible

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.

Slack regroupe l’ensemble de ces différentes applications, 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 applications 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 de développeurs et d’ingénieurs logiciel.

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é

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

  • L’intégration Jira automatise les flux de travail tests

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éés pour iOS, Android et Internet.

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 Slack personnalisée d’une équipe d’ingénierie logicielle lance 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 flux de travail 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 rédigé le code d’une application, 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.

Deploy Wizard notifie les développeurs et canaux correspondants dans Slack et 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

Elle 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

Au lieu que les développeurs surveillent leurs e-mails ou consultent 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 application 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 robot 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 robot 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, applications 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 application de messagerie.
  • Très adaptable Elle permet à vos équipes de s’approprier leurs espaces de travail, leurs canaux, leurs applications 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. Étude IDC, La valeur commerciale de Slack, 2017, commandée par 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.