La seule chose plus difficile que de construire un logiciel pour un client, c’est d’expliquer comment le logiciel est construit à un client.
Je vais essayer d’expliquer ce concept incroyablement compliqué de la seule manière que nous connaissions : avec des images et avec des voitures.
Méthodes de développement logiciel expliquées avec des voitures
L’un des plus grands problèmes persistants est le fossé entre la manière dont les clients perçoivent le développement logiciel et la façon dont le développement fonctionne en pratique. Les négociations interminables sur les budgets sont peut-être le symptôme le plus évident ici, mais le fossé est plus large que cela.
Développement agile – où s’arrête l’implication du client ?
Le modèle en cascade, où le développement suit un chemin linéaire allant de la définition des exigences à la livraison et à la maintenance, semble avoir disparu de nos jours. À moins de travailler sur des projets particulièrement grands, il est préférable de suivre une méthodologie de développement agile.
L’état d’esprit agile repose sur le fait que les clients ne savent souvent pas exactement ce qu’ils veulent d’un logiciel. Les équipes agiles travaillent de manière transparente et impliquent le client dans le processus de développement pour s’assurer que le résultat final correspond le plus possible à leurs besoins réels.
C’est comme acheter un costume dans un magasin plutôt qu’en ligne : vous ne saurez jamais s’il vous va ou comment il vous va jusqu’à ce que vous l’essayiez. Idéalement, vous auriez un tailleur pour l’adapter à votre morphologie.
Acheter un logiciel à une équipe agile, c’est comme obtenir un costume sur mesure.
Sauf que le client veut payer pour un costume prêt-à-porter et que si quelque chose doit être ajusté, il veut tenir le fil pendant que vous piquez.
Comment protéger votre temps de développement
Bien que le développement agile concerne la transparence et la coopération, vous devez tout de même protéger votre temps. Voici quelques choses que vous avez peut-être entendues dire par des clients :
« Puis-je m’asseoir avec vous pour que nous puissions travailler dessus ensemble ? »
« Pouvons-nous ajouter (cette énorme fonctionnalité) rapidement, c’est très petit et ça ne devrait pas être très difficile. »
« J’ai un ami qui pourrait faire ça en un jour, pourrions-nous le faire à moitié prix ? »
« Pouvons-nous revenir à la première version ? De plus, nous ne devrions pas payer pour cela si nous n’allons pas utiliser le code. »
Ces scénarios peuvent vous coûter beaucoup de temps et d’argent si vous ne tenez pas bon. Votre première ligne de défense est un bon système de gestion de projet.
Si vous devez pouvoir répondre à des problèmes inattendus ou à des tâches de maintenance, utilisez un tableau Kanban. Un tableau Kanban est essentiellement une liste de choses à faire qui impose une limite stricte au nombre d’éléments de travail pouvant être en cours à un moment donné. C’est un excellent système pour empêcher votre équipe d’être submergée par les interruptions : si un problème inattendu se produit, vous pouvez le prioriser, mais sinon, il va dans la file d’attente.
Si vous n’avez pas à vous soucier de la maintenance ou si le projet n’est pas constitué de nombreuses parties interconnectées, vous pouvez utiliser un système Scrum. Scrum limite une équipe à travailler sur un objectif hautement spécifique par sprints d’une durée typique de 2 à 4 semaines. Son idée principale est de garder l’équipe entièrement concentrée sur son objectif.
À la fois Scrum et Kanban reposent sur la discipline pour fonctionner, alors assurez-vous que votre client sait que vous n’utilisez pas l’un ou l’autre juste pour les ennuyer.
Faites un bon Time Tracking
Le suivi du temps (time tracking) peut transformer votre façon de travailler. Suivez le temps, obtenez et partagez des rapports perspicaces et arrêtez de vous demander où est passé votre jour. Commencez à suivre le temps de développement.
Comment protéger votre budget
Protéger votre temps est une chose – s’assurer que vous êtes payé pour cela en est une autre.
L’une des façons de rester rentable est de mettre une grande étiquette de prix rouge sur votre temps. La fameuse caisse enregistreuse.
Il y a quelques avantages à suivre votre temps de développement , mais les deux principaux avantages se résument à la Business Intelligence et à la transparence.
En termes simples, cela vous donne la possibilité de faire des plans éclairés et de montrer à vos clients combien « de petits changements » coûtent vraiment en temps de développement.
Le suivi du temps fonctionne en raison de la manière dont notre cerveau fonctionne : nous n’avons pas vraiment une notion précise du temps, mais plutôt une perception assez médiocre de celui-ci. Par conséquent, deviner combien de temps un projet pourrait prendre – en particulier ces projets agiles en constante évolution – n’est pas beaucoup plus précis que de prédire la météo avec une boule magique.
C’est vrai, cela pourrait ne pas fonctionner avec des clients trop enthousiastes qui insistent pour surveiller vos programmeurs/designers, mais c’est beaucoup, beaucoup mieux que d’entrer dans un projet sans préparation.