Laissez les utilisateurs prendre le volant : comment les clients ont corrigé notre dernière fonctionnalité
Une étude de cas sur la résolution préventive des problèmes des clients par leur comportement
Une fonctionnalité qui a récemment fait son chemin sur notre feuille de route de produit chez Visibuild était la possibilité d' exporter plusieurs fichiers PDF pour Visis via n'importe quelle page d'emplacement de projet , bien nommée Exportations PDF en masse. Compte tenu de nos mises à jour précédentes qui permettaient aux utilisateurs de filtrer Visis en fonction d'un emplacement choisi, la prochaine étape logique consistait à permettre aux utilisateurs d'exporter ces données.
Remarque : Une Visi est le terme général que nous utilisons pour décrire les tâches, les inspections ou les problèmes au sein du produit. »
Travailler dans une startup pose des défis intéressants pour ceux qui travaillent dans le développement de produits, et lancer un nouveau projet nécessite que notre équipe se rassemble et se réaligne sur la fonctionnalité et sa place sur notre liste de priorités, en particulier compte tenu de la petite taille de notre équipe produit !
Entrer rapidement sur le marché et amener votre produit à la parité des fonctionnalités concurrentielles et construire le fossé « pourquoi nous sommes différents » nécessite une hiérarchisation impitoyable ainsi que des délais de sortie créatifs et courts avec une volonté d'avancer ou de pivoter à court terme. avis.
Entrer rapidement sur le marché et amener votre produit à la parité des fonctionnalités compétitives et construire le fossé « pourquoi nous sommes différents » nécessite une hiérarchisation impitoyable.
Pour chaque fonctionnalité de produit que nous lançons, nous, en tant qu'équipe, effectuons des estimations au mieux autour de quelques compromis clés :
- Délai de mise sur le marché.
- Validation des fonctionnalités.
- Cycles de rétroaction de l'utilisateur final.
Chez Visibuild, nous travaillons en étroite collaboration avec nos clients et restons transparents afin que notre doigt soit à l'écoute et que nous puissions prioriser ce qui doit être fait le plus efficacement possible. Une fois ces décisions prises, l'équipe interne travaille ensemble pour élaborer la vision de la fonctionnalité et travaille à rebours pour découper l'objectif final en éléments exploitables qui aident à apporter de la valeur au client dès que possible. Une partie de ce processus comprend nos efforts pour prédire les choses qui pourraient mal tourner, comment nous pouvons suivre de manière préventive ces résultats et aussi comment nous pouvons avancer dans le cas où le problème est considéré comme un « briseur d'accord » sur la promesse faite par la fonctionnalité.
Une fonctionnalité que j'ai récemment développée était la possibilité pour les clients d' exporter en masse des fichiers PDF de nos clients "Visis" (un terme générique universel qui couvre les inspections, les problèmes, les tâches et les rapports de non-conformité du projet).
Cette fonctionnalité était fortement demandée et nous voulions diviser le résultat final en itérations qui nous permettaient de proposer la fonctionnalité aux utilisateurs plus rapidement.
Nous avons divisé les itérations de cette fonctionnalité en deux parties :
- La première itération introduirait l'interface utilisateur orientée client sur l'application Web et utiliserait le flux principal que nous avions déjà pour envoyer par e-mail les exportations PDF pour un seul Visi en tant que pièce jointe.
- La deuxième itération se concentrerait sur le remplacement des fichiers zip envoyés par e-mail par les fichiers PDF, le stockage de ces fichiers zip à distance et le remplacement de la pièce jointe par e-mail par un lien vers les téléchargements.
Au fur et à mesure que les utilisateurs commencent à utiliser davantage notre fonctionnalité, la probabilité de rencontrer ce problème augmente considérablement. Certains des facteurs qui entrent en ligne de compte (que nous avons pu identifier) incluraient le nombre de pièces jointes pour un Visi, ainsi que la quantité de Visis demandée pour l'exportation.
Compte tenu de cette hypothèse connue lors de la définition de notre première itération, nous avons plafonné les exportations en bloc pour avoir un maximum de cinquante Visis pouvant être demandées pour l'exportation en même temps. Ce plafond n'a pas été conçu pour imposer un plafond à nos clients, mais nous savions que mesurer cela et appliquer la limite nous donnerait la possibilité de publier la fonctionnalité plus tôt et de collecter des statistiques d'utilisation pour nous aider à prendre une décision éclairée sur la deuxième itération à déplacer. vers les liens de téléchargement. Le plafond n'empêcherait pas la possibilité d'un échec en raison de la grande taille de la pièce jointe, mais étant donné la nature arbitraire de la taille de la pièce jointe PDF, nous avons pensé que cela aiderait certainement à atténuer le risque d'un trop grand nombre d'exportations défaillantes.
La décision du plafond a donné à notre équipe produit un peu de répit, ce qui nous a donné la possibilité de développer la solution pour la deuxième itération consistant à remplacer les PDF compressés tout en offrant plus rapidement de la valeur aux clients.
Statistiques de l'adoption précoce
Chez Visibuild, notre objectif est de laisser les commentaires des clients et les actions suivies guider l'orientation de nos produits.
Compte tenu des limites convenues de la pièce jointe à l'e-mail pour la première itération, un suivi a été ajouté pour voir quels projets utilisaient la nouvelle fonctionnalité, combien de Visis ils tentaient d'exporter dans le cadre de la demande et un moyen de capturer les erreurs si les exportations est devenu trop volumineux pour les pièces jointes aux e-mails.
Il s'avère que même au cours de la première semaine , les exportations en vrac ont été utilisées pour exporter des lots plus importants que prévu initialement.
Le graphique ci-dessus affiche le nombre de Visis demandés pour la génération de PDF par demande. Au cours de la première semaine, certains signes précurseurs ont montré que les utilisateurs avaient besoin de l'intégralité de la limite d'exportation plafonnée de la nouvelle fonctionnalité.
Au cours de la première semaine, certains signes précurseurs ont montré que les utilisateurs avaient besoin de l'intégralité de la limite d'exportation plafonnée de la nouvelle fonctionnalité.
Une demande a même réussi à se heurter au scénario exact que nous voulions éviter : échec de l'envoi d'un e-mail en raison de la taille limite de la pièce jointe ZIP.
Notre équipe d'assistance s'est efforcée de s'assurer que l'exportation ayant échoué était fournie à l'utilisateur qui en avait fait la demande, mais nous avons également identifié et compris avant la publication que des problèmes tels que celui-ci seraient coûteux pour notre équipe d'assistance s'ils continuaient à se produire, en particulier en tant que fonctionnalité l'adoption ne ferait qu'augmenter de façon exponentielle .
Au final, nous n'avons eu qu'un seul échec sur les cent premières requêtes. Notre décision de publier la première itération a tout de même joué en notre faveur. Nous avions apporté de la valeur aux clients pour 99 % des demandes . Cela étant dit, cette utilisation précoce, les commentaires directs des clients et le premier incident ont tous été des références qui ont éclairé notre décision d'avancer la prochaine itération d'utilisation des liens de téléchargement sur les pièces jointes dans la liste des priorités.
L'utilisation précoce, les commentaires directs des clients et le premier incident ont tous été des références qui ont éclairé notre décision de proposer la prochaine itération.
Passer à la deuxième itération
À la fin de la première itération, le workflow d'exportation de plusieurs Visis pourrait être simplifié dans le diagramme d'état suivant :
La solution technique convenue pour faire avancer cela à la prochaine itération signifiait que les modifications suivantes devaient être apportées :
- Introduire un moyen de suivre l' état d'une tâche d'exportation en masse, c'est-à-dire si la tâche est en attente, en cours, exécutée ou rejetée ?
- Assurez-vous que les notifications se produisent pour les tâches réussies et non réussies afin de tenir l'utilisateur final informé.
- Créez un mécanisme sécurisé pour stocker et accéder aux fichiers ZIP exportés.
Cette solution signifiait que nous résoudrions le problème lié à la taille des pièces jointes et que nous serions plus proactifs pour informer les clients si un problème survenait au cours du processus d'exportation en masse.
La solution finale
Après avoir travaillé avec le reste de l'équipe produit pour définir la prochaine itération de l'expérience utilisateur, nous avons mis en place un ensemble mis à jour de flux de messagerie pour tenir l'utilisateur informé. Nous avons également défini, mis en œuvre et suivi un ensemble d'états dans lesquels le travail pourrait se trouver et comment nous pourrions le refléter au mieux via l'interface utilisateur sur notre page de téléchargement d'exportation pour nous assurer que tout autre problème serait à l'esprit et résolu par notre équipe produit.
Le nouveau flux commencerait avec l'utilisateur demandant une nouvelle exportation et la notification de réussite positionnerait le délai d'exportation pour donner à l'utilisateur une meilleure idée de la durée des exportations.
Une fois l'exportation terminée avec succès et prête à être téléchargée, un e-mail mis à jour fournirait désormais le lien plutôt qu'une pièce jointe. Cela résout notre problème sur le problème de dimensionnement des pièces jointes que nous avons rencontré. Le lien dirigerait un utilisateur vers notre nouvelle page de téléchargement d'exportations qui lui donnerait des informations sur l'état actuel de l'exportation et un lien pour télécharger l'exportation au cas où elle serait prête (et non expirée).
Cliquer sur le lien de téléchargement fournirait la page de téléchargement permettant à l'utilisateur de télécharger le PDF.
En plus du lien de téléchargement, nous incluons le temps jusqu'à ce que le lien expire. La décision a été prise de veiller à ce que nous définissions le lien sur "expiré" après 14 jours, étant donné que les PDF exportés passent généralement à un état périmé peu de temps après l'exportation.
Cette nouvelle approche avec l'expiration intégrée nous a permis d'anticiper les coûts d'hébergement de ces demandes d'exportation PDF sous forme de fichiers ZIP distants. Cela nous a aidés à budgétiser la nouvelle fonctionnalité à grande échelle, avec notre backend configuré pour supprimer automatiquement ces fichiers ZIP obsolètes et économiser sur les coûts des données qui ne seraient plus utilisées.
Cette nouvelle approche avec l'expiration intégrée nous a permis d'anticiper les coûts d'hébergement de ces demandes d'exportation PDF sous forme de fichiers ZIP distants. Cela nous a aidés à budgétiser la nouvelle fonctionnalité à grande échelle.
En cas d'échec, nous avons également envoyé un e-mail pour informer l'utilisateur qu'un problème s'est produit afin de résoudre le problème des échecs « silencieux » amenant les clients à nous contacter à propos des problèmes. Cela nous a permis d'être transparents de manière proactive avec un client, ainsi que de lui donner la possibilité de nous contacter pour plus d'informations s'il le souhaite.
La dernière pièce du puzzle consistait à garder l'interface utilisateur de notre page de téléchargement d'exportation informative avec les différents états de travail dans lesquels elle pouvait se trouver. Pour nous, cela signifiait s'assurer que l'utilisateur était informé si un travail était en file d'attente, en cours, échoué, expiré ou dans un état d'erreur inattendu.
Certains de ces états étaient représentés dans l'interface utilisateur comme suit :
Grâce à l'interface utilisateur mise à jour, nous avons pu nous assurer que les utilisateurs étaient habilités à vérifier la progression de toute demande d'exportation donnée et à comprendre où se situe cette demande à n'importe quelle étape du cycle de vie du travail.
Le cycle de vie mis à jour de notre nouveau flux au fil du temps pourrait être simplifié et résumé comme suit :
Ce flux donne un aperçu du cycle de vie de toutes nos exportations PDF telles qu'elles se produisent pour les exportations PDF uniques, les exportations PDF en masse (plus d'une exportation PDF dans une demande) et le flux d'échec pour les exportations PDF uniques et en masse pendant l'exécution de ces flux heures supplémentaires.
Recomptage, dénouement et résultats
Au moment de la rédaction, notre itération sur la fonctionnalité a été expédiée et nous avons surveillé de près les résultats et les résultats.
Pour résumer, nous avons commencé par la première itération qui visait à fournir la capacité aux clients tout en gardant à l'esprit la fin afin de comprendre les prochaines étapes tout en gardant la feuille de route suffisamment fluide pour mettre en œuvre ces étapes au moment opportun. Après avoir pris en compte les analyses d'utilisation et les commentaires des clients, nous avons promu la mise en œuvre de notre deuxième itération dans la feuille de route.
Cette deuxième itération avait pour objectif final de résoudre et de contourner le problème de la taille des pièces jointes et de travailler à débloquer la limite d'exportation visi stricte que nous avons définie pour les clients . Pour ce faire, nous avons migré notre approche précédente consistant à joindre directement les fichiers ZIP exportés aux e-mails en tant que pièces jointes et avons plutôt choisi d'utiliser une solution de stockage provisoire et des liens de téléchargement.
Grâce à cette dernière itération, nous avons réussi à atténuer ces problèmes et aucune autre demande n'est arrivée concernant des exportations échouées en raison de la taille de la pièce jointe.
Depuis la sortie de cette nouvelle itération, l'adoption de la fonctionnalité a augmenté de plus de 370 % . Notre décision d'avancer l'itération sur la feuille de route a probablement évité quelques maux de tête et des conversations difficiles avec nos clients.
Ce projet a montré la mentalité collaborative que nous partageons dans l'entreprise. En gardant la fin à l'esprit, nous reconnaissons de manière préventive les pièges potentiels dans les premières itérations, ainsi que renforçons la valeur de notre entreprise pour pivoter et résoudre tous les problèmes à haut risque et problématiques s'ils surviennent plus tôt que prévu.
En gardant la fin à l'esprit, nous reconnaissons de manière préventive les pièges potentiels dans les premières itérations, ainsi que renforçons la valeur de notre entreprise pour pivoter et résoudre tous les problèmes à haut risque et problématiques s'ils surviennent plus tôt que prévu.
Les deux itérations de la fonction d'exportation de PDF en bloc qui ont été couvertes dans ce recomptage démontrent l'importance d'expédier la valeur au plus tôt et de prendre des décisions en fonction de l'utilisation du client.
Se heurter au problème des utilisateurs souhaitant tirer le meilleur parti d'une fonctionnalité est un bon problème à avoir. Comme on le dit souvent dans nos bureaux d'équipe, "Expédier pour apprendre".