Actualité

Comment réduire vos budgets de développement web ?

Découvrez nos astuces pour rendre votre équipe plus efficace et productive au quotidien sur l'ensemble de vos projets tout en améliorant son engagement. Mettez-en pratique ces 10 points-clés et partagez-nous vos résultats !

May 25, 2021 ● 11mn ● #reduction-cout#productivite#qualite#engagement
10 manières de réduire vos coûts de développement web !
Retourner sur la liste

Découvrez nos astuces pour rendre votre équipe plus efficace et productive au quotidien sur l'ensemble de vos projets tout en améliorant son engagement. Mettez-en pratique ces 10 points-clés et partagez-nous vos résultats !

Introduction

Beaucoup de nos clients nous partagent leurs problématiques concernant les coûts et délais de réalisation de leurs développements. Ils se sentent la plupart du temps démunis face à des dates de livraison non tenues, des demandes à moitié réalisés ou des budgets à la dérive...

En tant que membre de l'équipe projet, il est important de réaliser que vous êtes pleinement acteurs de cette situation dans le sens où vous pouvez réellement améliorer les choses et inverser la tendance grâce à des méthodes simples mais terriblement efficaces.

Aujourd'hui, nous vous partageons une liste de principes à connaitre qui pourront vous aider à améliorer la productivité et la qualité des livrables de vos projets.

Note : Si vous n'êtes pas convaincus par l'un de ces points, essayez quand même de le mettre en pratique et parlons-en après quelques semaines pour évaluer vos résultats...

1 - Gérer vos priorités

La première règle pour être efficace est de définir clairement vos priorités. De nos jours, les méthodes agiles ont le vent en poupe mais agile ne veut pas dire "je change d'avis tous les jours" !

Il est vital de définir clairement les axes prioritaires et les objectifs à atteindre avant de passer à autre chose.

Cela permettra à votre équipe de se projeter correctement dans leur travail et de comprendre votre point de vue. Elle sera plus concentrée, ce qui vous donnera une meilleure productivité tout en étant capable de vous faire des propositions plus pertinentes.

Notes : Il n'est pas nécessaire non plus de partager les demandes à réaliser de manière précise pour les 3 prochaines années.
Partagez les objectifs globaux (la destination souhaitée) et construisez le chemin à parcourir à chaque sprint.

2 - Partager vos objectifs, pas seulement la solution

Vos développeurs ont une expérience qui peut vous être utile !

Que ce soit pour des outils ou des problématiques qu'ils ont déjà solutionnés sur d'autres projets ou parce qu'ils utilisent des logiciels que vous ne maitrisez pas, ils peuvent vous apporter des solutions auxquelles vous n'auriez pas pensé seul.

Lorsque vous faites une demande, partager d'abord l'objectif ou la problématique à résoudre avant de décrire la solution que vous envisagez.

Par exemple, vous pourriez faire la demande suivante :

Lorsque nous recevons une demande de support, envoyer un email à la personne qui a fait la demande pour lui demander la version de l'application ainsi que l'écran où a lieu le problème.

Vous pourriez également formaliser votre demande de la manière suivante :

Problématique

Lorsque nous recevons une demande de support, nous devons systématiquement envoyer un email à la personne pour lui demander la version de l'application ainsi que l'écran où a lieu le problème.
Cela nous fait perdre du temps et la personne ne nous répond pas toujours.

Solution envisagée

Lorsque nous recevons une demande de support, envoyer un email à la personne qui a fait la demande pour lui demander la version de l'application ainsi que l'écran où a lieu le problème.

Grâce à ce contexte, votre développeur pourrait vous suggérer de mettre en place la récupération de ces informations directement dans le formulaire de création de demande de support ce qui serait beaucoup plus efficace.

Ainsi la demande mise à jour serait :

Solution

Lors de la validation d'une demande de support depuis l'application, enregistrer la version de l'application ainsi que l'écran courant et ajouter ces informations dans le ticket correspondant.

3 - Formaliser les étapes à réaliser avec des checklists

Pour que vos développeurs soient dans les meilleures conditions possibles pour réaliser la nouvelle fonctionnalité demandée, vous leur avez rédigé un document détaillant le contexte, les problématiques actuelles, les attentes de vos utilisateurs et les modifications de l'application en détail.

Afin de pouvoir gérer l'avancement et partager simplement cette information, nous vous conseillons de synthétiser les différentes étapes à suivre sous forme de checklist. Grâce à cela vous pourrez visualiser la progression en un coup d'oeil !

Exemple :

  • Ajout du menu blog dans la navigation principale
  • Ajout du bloc dans la homepage
  • Connexion à ContentFull pour récupérer les articles
  • Liste des articles
  • Détail d'un article
Astuce : Vous pouvez faire de même pour les étapes de validation ce qui vous donnera une vision complète jusqu'au déploiement de la fonctionnalité.

Résultat : Lors de vos points projets, vous n'aurez qu'à ouvrir la checklist pour visualiser l'avancement et économiserez de précieuses minutes de tour de table où chacun se remémore ce qu'il a fait depuis une semaine...

4 - Rendez-vous disponible pour valider l'avancement

Lorsque vos développeurs vous livrent le résultat de leur travail, il est important que vous soyez réactif pour le tester pour deux raisons.

Raison 1 : la motivation

En effet, c'est à ce moment-là que votre équipe est la plus concentrée sur le sujet en question et sera la plus réactive. Si vous laissez passer des jours voire des semaines avant de leur faire un retour, vos développeurs seront passés sur d'autres sujets et il leur faudra du temps pour se remettre dans le sujet.

Ce point est essentiel pour conserver la motivation de votre équipe. En effet, si vous êtes réactif lors d'une livraison, cela prouve à votre équipe que leur travail compte et ils auront naturellement tendance à vous renvoyer la même dose de réactivité.

Si vous mettez des jours à réagir lorsqu'il vous sollicite comment pouvez-vous exiger d'eux qu'ils soient plus réactifs dans l'autre sens ?

Raison 2 : la valeur acquise

Lorsqu'une demande reste dans un état "non terminé" (codée mais non validée), il est impossible de mesurer la quantité de travail restant et les éventuels impacts sur les autres développements. En effet, imaginons que vous laissiez en attente de validation 3 fonctionnalités.

  1. le développeur code la fonctionnalité A sur la base d'un code validé et vous la livre en recette pour validation
  2. il enchaine sur la fonctionnalité B et vous la livre en recette
  3. idem pour une fonctionnalité C
  4. vous commencez à tester la fonctionnalité A et vous lui faite un retour qui impacte les fonctionnalités B ou C
  5. votre développeur doit corriger A et gérer des impacts sur B ou C qui ne seraient pas produits si vous aviez validé A plus tôt.

C'est en quelque sorte l'effet Domino et cela peut représenter des dizaines d'heures de travail perdues !

5 - Définissez la manière de valider vos demandes dès le départ

Votre objectif lorsque vous demandez un nouveau développement est que celui-ci soit déployé le plus rapidement possible.

Nous avons bien dit "Déployé" afin de pouvoir être utilisé, le développement n'est qu'une partie de ce temps.

Si vous vous posez la question du mode de validation lorsque le développement est disponible en recette, vous n'avez pas compris ce principe essentiel et vous vous exposez au problème suivant :

  • puisque vous n'avez pas expliqué cette étape essentielle à votre développeur, il a mis au point son code avec les données tata, titi et toto qui ne correspondent pas à la réalité
  • vous pouvez vous rendre compte que vous avez oublié certaines règles dans votre demande -> aller/retour supplémentaires
  • pendant que vous vous posez cette question et créez potentiellement des jeux de tests, votre développeur part sur un autre sujet et le temps tourne...
Important : Minimiser le nombre d'aller-retour est un axe d'amélioration prioritaire !

6 - Spécifier les cas d'erreurs

Trop souvent, les demandes ne contiennent que le cas d'utilisation normal d'une fonctionnalité mais dans la majorité des cas, les difficultés consistent à gérer les actions qui ne sont pas dans ce cadre.

Lorsque nous développons une fonctionnalité, il est nécessaire de prévoir tous les cas d'utilisation possibles pour ne pas aboutir au célèbre écran d'erreur système ou à un message d'erreur incompréhensible par l'utilisateur qui vous fera perdre de nombreuses heures de support.

Nous vous conseillons donc de spécifier dès le départ les différents cas d'erreur possibles ainsi que les messages et/ou blocages à implémenter.

Cela concerne :

  • les bornes et formats des champs de formulaire
  • les actions des pages (suppression, archivage, achat, activation ...)
  • la validation des données lors d'un import
  • ...

7 - Créer des jeux d'exemples réalistes

Un logiciel n'a de sens que pour gérer des données. Ces données correspondent à votre contexte métier et votre logiciel doit vous permettre de les manipuler de manière efficace.

Il est important de connaitre dès le départ le type de données que vous allez devoir gérer afin de réaliser les développements dans les meilleures conditions. (ce jeu de données vous permettra également d'être plus efficaces dans la description du point précédent)

Voilà une liste d'erreur courante lorsque l'équipe de production n'a pas de jeu de données réel en entrée :

  • problématique d'affichage : pas assez de place ou trop de place, mauvaise prise en compte des caractères spéciaux
  • mauvais contrôle des formats dans les champs de formulaire
  • certains cas d'usage ne sont pas gérés
  • problématique de performance sur certaines pages ou sur l'ensemble de l'application
  • ...

8 - Ne réinventez pas la roue

Avant de partir directement dans le développement d'une nouvelle fonctionnalité ou d'une nouvelle brique de votre système, posez-vous la question : "Est-ce qu'une solution existe pour résoudre mon problème ?".

Il existe une multitude de solutions Saas, de logiciel open-source et même de standards en place construits par des personnes passionnées qui ont passé un temps considérable à les mettre au point. En utilisant des solutions éprouvées par des centaines d'entreprises vous économiserez du temps et gagnez en qualité.

Exemples :

  • mettre en place un système de paiement avec Stripe
  • mettre en place un système de connexion avec OAuth
  • utiliser Prestashop plutôt que de développer une solution ecommerce
  • utiliser sendinblue plutôt que de configurer votre serveur SMTP
  • ...
Important : bien sûr il est important d'utiliser ces briques pour leurs points forts. Une erreur courante est d'essayer de faire passer tous vos besoins dans un seul outil simplement parce que vous le connaissez bien !

Si jamais ce développement vous procure un avantage concurrentiel, allez-y mais gagnez du temps en étudiant comment vos concurrents ont résolu les problématiques annexes communes pour vous concentrer sur les points ayant une réelle valeur ajoutée.

9 - Travailler avec une équipe qui comprend votre métier et vos problématiques

Si vous devez choisir une équipe de développement, ne basez pas votre choix uniquement sur leur qualité technique.

Lors de la réalisation d'une application, la connaissance de votre contexte est un aspect important surtout dans les métiers nécessitant des compétences avancées. En effet, votre métier comporte des codes, un vocabulaire, une culture qu'il est essentiel d'appréhender lors de la conception et la réalisation de votre outil.

Est-ce judicieux de réaliser un jeu vidéo avec un prestataire spécialisé dans les outils comptables ? Ou une application Facebook avec une équipe qui n'utilise pas les réseaux sociaux au quotidien ?

Vous arriverez à sortir quelque chose mais cela vous prendra plus de temps et le résultat sera simplement dans la moyenne !

Ce point explique par exemple pourquoi beaucoup de sociétés abandonnent la réalisation de projets en offshore même si les coûts de réalisation sont bien inférieurs.

10 - Donner du rythme à votre équipe

Le rythme est un aspect essentiel pour aboutir à une bonne productivité tout en maintenant l'engagement de votre équipe projet. Cela apporte également un cadre de travail qui permet aux différents membres d'interagir plus efficacement.

Par exemple, chez SmartBooster nous avons un daily meeting quotidien le matin qui nous permet de lancer la journée en prenant en compte les besoins de chacun et les interactions nécessaires pour réaliser nos tâches.

Par exemple :

  • Louis : Je suis sur le développement de l'interface d'administration des examens. Je pense avoir fini vers 11h.
  • Mathieu : Ok appelle moi quand tu as fini pour faire la revue de ton code.
  • Nicolas : Ok je me cale un moment à 14h pour valider en recette et par sécurité nous déploierons demain matin.

En complément, nous avons un point projet chaque semaine pour partager le détail de l'avancement avec nos clients.

Chacun sait que ces moments privilégiés sont importants et s'organise pour que nous puissions acter les choses ensemble.

Conclusion

Vous avez à présent entre vos mains 10 principes qui peuvent vous permettre d'accroitre grandement la productivité de vos projets. Suivant votre niveau de maturité, certains d'entre eux vous sembleront peut-être évidents mais nous vous conseillons de les partager avec votre équipe pour savoir si tout le monde est au même niveau.

Nous espérons que cet article vous sera utile et vous souhaitons le meilleur pour le développement de votre entreprise.