Recherche de conseils et bonnes pratiques pour mener une beta

Bonjour à tous,

Je vais bientôt rentrer en phase de beta privé pour mon projet (site web de formation au code) et je suis à la recherche de bonnes pratiques et de conseils.

Avez vous des ressources qualitatives (blog post, how to, best practices, exemples concrets, liens sur le sujet) qui permettent de mieux mener cette phase importante du développpement ?

Si vous avez déjà participé à une beta en tant que beta testeurs, quels sont les points qui vous semblent important à ne pas négliger ? Quelles sont les erreurs à éviter ?

Si vous avez déjà mené une phase de beta d’un site web, je serais reconnaissant de pouvoir apprendre de votre expérience et de vos retours autour d’un café ou sur skype.

Merci d’avance pour vos réponses.

Bonsoir @RomainP,

Le développement logiciel ou ingénierie logiciel est quelque chose de compliqué par essence, puisque c’est une tâche qui reste encore très artisanale. La conception et la réalisation d’un site Internet reste de l’ingénierie logiciel. Et aujourd’hui les choses sont encore plus complexe que par le passé, car on intègre beaucoup de brique externe avec tout les aléas que cela peu entraîner.

Issu de la main de l’homme et comme j’aime à le dire l’homme n’étant pas infaillible aucun logiciel ne pourra être parfait.

Sans tout dévoiler, ce que je peux dire de façon générale sur la qualité puisque, les phases de tests font parties des problématiques de qualité. C’est que en premier lieux on ne peut-être juge et partie, il faut donc que les équipes de tests soient hiérarchiquement non dépendante des équipes R&D, cela va de soit. On fera donc dépendre les différentes équipes dont la qualité de la direction générale, sans interdépendance.

Dans le domaine du test et de la recette, thématique à part entière de l’ingénierie logiciel il y a plusieurs phases (tests de développement réalisé par la R&D, recettes, bêta, performance, …) qui doivent un maximum documenter et préparer… à l’avance.
Les tests s’appuient sur la documentation fonctionnelle et technique du logiciel. Celui qui sera peu documenter tant d’un point de vu fonctionnel que technique, aura du mal à être testé correctement.

Savoir écrire du code est en soit assez facile finalement, en fonction du langage utilisé et/ou des technologies employées.

La qualité de la documentation destinée à la fois aux équipes R&D, au tests et à la qualité ainsi que l’intégration de briques techniques (frameworks, bases de données, systèmes tiers, …) influenceront grandement les délais, la qualité, …

Les développeurs sont souvent enclin à refaire ce qui existe déjà…

Les développeurs sont souvent affirmatifs quand à la qualité de leur réalisation…

Certains développeurs sont très forts pour écrire… du code…

On pourrais écrire des pages entière sur la problématique de qualité mais, c’est avant tout une problématique de management et donc organisationnelle et humaine. Il faut donc accepter le fait que l’on n’est pas infaillible, que rien ne peut-être parfait mais, être pragmatique (pour ne pas dire « pragmatic »).

Il existe des outils depuis 1 à 2 décennies qui permettent d’automatiser les tests et de façon générale d’outiller le processus R&D logiciel. Il ne faut pas se priver de les utiliser quand on peu, car ils peuvent vraiment êtres utiles et faire économiser de l’argent finalement, même si l’investissement peu s’avérer très lourd.
Les outils de conception et autres référentiel sont devenues nécessaires dans bien des cas, car ils participe à cette problématique de recherche de qualité.

Finalement la phase de bêta-tests importante en soit, qui doit être intégrée dans un processus itératif du développement doit être préparé, piloté et analysé. Il faut en effet, suivre les anomalies remontées, les corriger cela va de soit mais, aussi en garder une trace. Car la régression guette le développeur inattentif.

1 « J'aime »

Merci @flibaud pour tous ces conseils.

Si d’autres pragmatiques entrepreneurs ont des expériences de beta à partager, n’hésitez pas !

Je ne partage pas l’avis précédent sur le coté artisanal de la conception logiciel.

Depuis plus de 30 ans il existe des modèles de maturité en industrialisation logicielle, CMMI est le plus connu. Et la réingénierie logicielle est normalement enseigné à bac+4/5… tout développeur devrait en avoir fait.

Le prototypage, maquettage ou beta versionning est très bien maitrisé par les grands groupes (j’ai travaillé à la mise en place d’un module SAP pilotant plus de 200 lignes de production… et il y avait de la maitrise à très très haut niveau).

Pour que ça fonctionne, il faut 2 approches à utiliser alternativement:

  • une approche prédictive et planifiée
  • une approche agile ou holistique (on emploie aussi le terme approche systémique) suivant le contexte

On va évacuer tout de suite l’approche holistique:
Vu le projet, l’approche holistique ne sera pas employé: si le nombre de parties prenantes est important (les utilisateurs), le nombre de parties prenantes décisionnaires ou en capacité de tuer le projet est limité aux concepteurs.
Le contexte « politique » semble être simple et votre conception ne semble pas entrer dans le domaine des projets « complexes » (compliqué surement, mais pas complexe dans sa définition).

Je pars de l’hypothèse que rien n’existe.
Etape 1: l’approche planifiée

  1. Il vous faut un panel de key users avec lesquels vous allez pouvoir brainstormer sur un MVP
    Vous devez garder contact avec ces key users tout au long de cette étape.
  2. Vous construisez votre maquette selon les méthodes dites prédictives en gestion de projet
    Si votre projet est piloté par les tests unitaires, intégrer ceci dès le départ
  3. Vous testez la maquette d’un point de vue technique et fonctionnel et relevez les bugs
  4. Vous présentez la maquette aux key users:
  • 1ere tour de table sur le MVP: répond il aux attentes des 1ère rencontres, rencontrent ils des bugs?
  • 2ème tour de table: comment le rendre meilleurs, feature à ajouter, etc. (il ne s’agit pas de tout prendre en compte mais de voir ce qu’attend la cible pour vous conforter ou non sur des idées que vous aviez déjà).

Votre version beta est prête (je sais, dis comme ça… ça a l’air simple, mais ça l’est)

Mais bien évidement, votre beta va être buggé malgré les tests unitaires (vous n’aurez pas pensé à tout).
En plus, certaines caractéristiques demandées lors du 1er brainstorming ne seront pas implémentés (trop long, pb technique, trop cher, etc.

A ce moment là on passe à l’étape 2, l’approche agile:

  • On transforme les problèmes, les demandes non réalisées, etc en backlog.
  • Vous implémenter en sprint suivant votre vélocité
    Vous réduisez le nombre de key users à 4/5 max, ils deviendront le product owner (+ une personne de l’équipe projet… oui car vous êtes aussi product owner, au moins pour le back et middle front).
    Au cours de vos sprint, vous faites intervenir régulièrement les product owner (1 à 2 fois par semaine).
    … bref vous faites du scrum.

Pour arriver à une beta finalisée et exempt de bug.

Ensuite, pour l’évolution future, continuer en mode scrum… car finalement ce ne sera que du lean.

forcement en quelques lignes de gros raccourcis sont pris, il n’est pas possible de tout expliquer.
Mais il y a déjà de grandes lignes à exploiter.

Ca demande juste de maitriser la gestion de projet.
Vous n’avez pas forcement le besoin de vous pencher sur CMMI qui intègre la gestion de projet mais aussi l’industrialisation (vous n’êtes pas, je suppose, amené à reproduire le projet).
Le Xprogramming peut vous aider dans la 1ère phase, mais je ne connais pas plus que ça cette approche classée plutôt dans les méthodes agiles

1 « J'aime »

Merci @Aka74 pour ces conseils. Pas mal de notions sur lesquels je vais pouvoir me focaliser pour mener a bien cette beta.