Dans les entreprises du digital, il y a souvent deux points de vue. Pour les équipes commerciales et marketing, ce qui compte c’est de faire ce que le client souhaite et ce pour quoi il est prêt à payer. De l’autre coté, nous avons les développeurs qui peuvent aussi avoir d’excellentes idées à considérer.

Concilier les deux mondes est souvent un peu compliqué et le challenge du management est de les aligner sur un même objectif.

A mon humble avis, pour faire les choses correctement il faut intégrer ces deux domaines de compétences dans un processus global afin de concevoir un bon produit final. Peu importe que ce soit l’équipe de marketing, de vente, les fondateurs, les managers, les actionnaires ou même les clients. Ils sont tous dans le même bateau avec pour destination : « créer un produit qui correspond à la demande et pour lequel les clients sont prêt à payer ».

Analysons de manière simplifiée ma vision de ce processus avec un outil de très haute technologie : Les Post-IT J

 

La génération des idées

Généralement, un projet est issu d’une première idée venue directement d’un des fondateurs, qui aura pu constater une peine ou un axe d’amélioration dans la vie du consommateur.

Au départ, tout est très simple puisque le projet est conçu et décrit par un nombre limité de personnes. Seulement après un certain temps, c’est un véritable processus d’amélioration continue qui doit se mettre en place. Les choses vont se complexifier un peu, puisque le projet sera influencé par l’ensemble des idées des managers, des fondateurs, des actionnaires mais aussi des développeurs qui peuvent avoir de bonnes idées d’amélioration de l’interface par exemple.  Mais les meilleures sources d’idées à considérer seront : «  Les clients » qui vont fournir aux équipes technique, marketing et au management un nombre d’informations inestimable.

[French] Managment

Priorisation

Je crois sincèrement que la priorisation est une des clés du succès. Définir quelles fonctionnalités réaliser en premier, déterminer laquelle va générer suffisamment de valeur et d’attractivité pour votre clients est un des meilleurs indicateurs pour vous aider à prendre de bonnes décisions. Mais pour être encore plus précis et pertinent dans votre pris de décision, je ne saurai que vous recommander d’exploiter les données mesurées auprès de vos clients. Avoir des statistiques d’utilisation, quelles fonctionnalités ils utilisent le plus ou le moins, vont vous permettre d’avoir une meilleure compréhension de votre client et de ce qu’il aime ou le dérange. Une entreprise qui prospère, c’est une entreprise qui connait et comprend son client.

[French] management2 (8)

Définition de la feuille de route

L’erreur la plus courante que les entrepreneurs commettent, c’est de vouloir faire trop de choses à la fois. C’est justement tout là l’intérêt de la priorisation et la planification. Être capable de découper un projet en plus petits lots permet un meilleur contrôle, développement et également de nombreuses améliorations d’une version à l’autre avec un réajustement possible des priorités. Chaque petit lot va  donc pouvoir se décliner en numéro de version. Avec la méthodologie Agile Scrum, il est possible de livrer une nouvelle version à chaque sprint, même si l’ensemble des fonctionnalités attendu n’a pas eu le temps d’y être intégré. Le processus de priorisation lors de la réunion de planification redéfinira si nécessaires les fonctionnalités prioritaires à intégrer dans la prochaine version.

[French] management2 (5)

Le processus de développement

Un bon développeur est un développeur qui s’en tient à ce qui est sur le plan de route. Il est très fréquent de voir un développeur décider de développer une fonctionnalité complémentaire simplement parce qu’il en a envie et « parce que ça ne devrait normalement pas prendre longtemps ». Comme précisé précédemment, les développeurs sont d’excellentes sources d’idées, mais même si ils ont d’excellentes petites idées, elles devraient être notées et partagées avec les managers avant d’être réalisées au détriment d’une fonctionnalité planifiée. Et pour cela il existe le bac à sable « sandbox » ou plutôt le bac à idées, qui est l’endroit de prédilection pour rassembler l’ensemble des idées de toutes les équipes confondues. De manière régulière, les managers devraient définir quelles idées devraient être développées, reportées ou à éliminer. Ce processus est la manière la plus recommandée pour être pertinent dans la priorisation des fonctionnalités.

[French] management2 (6)

Livraison et correction des bugs

Pour simplifier, il y a deux listes de tâches sur le développement d’un produit digital :

  • « Bugs critiques à corriger d’urgence » : développements qui n’attendront pas la prochaine version pour passer en production.
  • « Bugs mineurs et évolutions » : corrections et évolutions qui seront intégrées dans la prochaine version.

 

Bien heureusement, les développeurs passeront la plus grande partie de leur temps sur la deuxième liste et ne travailleront sur la première qu’en cas d’urgence. Seulement à chaque fois qu’un bug critique est à corriger, cela génère également du travail de validation et de mise en production. Et c’est justement là que sont situés les deux problèmes courants des startups :

  • Comme les développements doivent aller très vite, cela engendre un grand nombre de corrections et au final les développeurs passent beaucoup trop de temps à développer, tester et mettre en production les corrections.
  • Les développeurs passant beaucoup de temps à corriger, il prennent le risque de faire des mises en production sans pour autant suffisamment tester leurs développement.

Mesurer le temps passé à développer et à corriger est un excellent indicateur de la performance de votre équipe et de votre produit.

[French] management2 (7)

Gestion de la production

 

Derrière la gestion des versions du code source d’une application, vous avez nécessairement un dépôt/référentiel des codes source qui sera généralement organisé en branches. Sans pour autant aller dans les détails, il y a un point extrêmement important à retenir et appliquer. A n’importe quel moment, vous devriez être capable de déployer ou redéployer un ancienne ou un nouvelle version de votre logiciel par un simple clic ou une ligne de commande. J’ai vu beaucoup d’entrepreneurs perdre beaucoup trop de temps à gérer leurs déploiements. S’il devait n’y avoir qu’un seul script à réaliser, c’est celui du déploiement. Un même script permet de simplifier la mise en production mais aussi les tests, puisqu’il vous permet aussi de déployer vos versions logicielles sur un environnement de test.

[French] management3 (2)

 

Les tests logiciels

Si vous voulez un bon produit ou service, vous devez définir un bon processus de test en plus des bonnes pratiques et des règles de développements.

 

Beaucoup de tests permettent aux entreprises de valider leurs logiciels avant de les publier en production. Pour les startups, je recommande le plus souvent de déléguer les tests par un processus de test simple qui pourra être décrit dans un document Word à l’aide de captures d’écran. Il y a plein de manières d’embaucher quelqu’un pour quelques heures pour dérouler un plan de test critique sur votre future version. Pour en savoir plus sur le test logiciel, vous pouvez trouver mon précédent article : http://outoftech.com/fr/le-test-logiciel-le-meilleur-moyen-dameliorer-la-qualite/

[French] management2 (8)

Un processus complet

Voici le schéma Post-It du processus que vous pouvez trouver dans de nombreuses entreprises de développement. Il s’agit ici de quelques principes que j’ai trouvé pratique de simplifier. La plupart de ces pratiques sont issues des méthodologies CMMI, ITIL ou Agile, qui sont très connues dans le domaine.

 

[French] management3