Méthode de développement

Aujourd’hui dans le groupement, deux types de méthodes sont appliqués, soit XP (eXtreme Programming), soit DSDM (Dynamic Software Developpement Method).

Les deux méthodes sont décrites ci-dessous.

Principes fondamentaux de la méthode DSDM appliquée au groupement

  • Les individus et leurs interactions avant les processus et les outils

Notre équipe de développeur travaille en équipe et en collaboration. Nous pensons qu’il est plus important d’avoir une bonne équipe unie que des personnes ultra compétences mais individualiste.
La puissance d’une chaîne est égale à la résistance de son maillon le plus faible

  • Des fonctionnalités opérationnelles avant la documentation

Nous préférons décrire un projet dans son ensemble. Selon les besoins, nous pouvons ensuite décrire une fonctionnalité de façon plus poussée.

  • Collaboration avec le client plutôt que contractualisation des relations.

Nous établissons un partenariat de confiance avec notre client. Nos clients savent que nous répondrons réellement à leurs attentes et non basé uniquement sur un contrat.

  • Acceptation du changement plutôt que conformité aux plans.

Le développement se fait en collaboration avec les utilisateurs pour correspondre à leurs attentes. Il est donc en constante évolution selon ses exigences.

Pour le projet de l’ENT Open Source Liberscol, la méthode DSDM est utilisée. Vous trouverez ci-dessous le descriptif de cette méthode pour ce projet important

  • Implication active des utilisateurs

Pour le projet ENT Bourgogne par exemple, l’ensemble des orientations de développements prise pour le produit proviennent de nos utilisateurs. En effet, ceux-ci ont une application importante dans le projet par les tests qu’ils peuvent effectuer sur des bases de pré-production ou leurs demandes de nouvelles fonctionnalités.
Pour cela, nous avons mis en place un outil de gestion de demande qui se nomme Redmine. Ce produit libre permet aux utilisateurs nommés dans l’établissement (Référence TICE, proviseur, Administrateur, CPE) de faire des demandes qui sont ouvertes et soumises à un vote.

Les utilisateurs sont acteurs à part entière de l’équipe.

  • Autonomie et pouvoir de décision des équipes

Nos équipes sont libres de développer les tickets présents dans cet outil de suivi tout en respectant le souhait du client.

  • Livraisons fréquentes

Dans le projet, voici le rythme de nos évolutions :

Délai Evolution
Toutes les semaines Bug, Correction mineure
Tous les mois Amélioration
Tous les 2 mois Nouvelles fonctionnalités

Ce rythme nous permet d’avoir des tests et retour clients pertinents afin d’obtenir le résultat souhaité dans le temps imparti

  • Adéquation aux besoins des clients comme seul critère d’acceptation du produit

Redmine permet de répondre à ce principe fondamental

  • Développement itératif et incrémental.

Le rythme décrit dans « Livraisons fréquentes » nous permet d’avoir des tests et retour clients pertinents afin d’obtenir le résultat souhaité dans le temps imparti. Nous ne sommes pas obligés de livrer totalement la fonctionnalité mais nous la livrons brique par brique. L’avantage est que nous pouvons développer les autres briques en fonction des premiers retours. La fonctionnalité ainsi développée permet de correspondre aux besoins du client.

  • Modifications réversibles

L’ensemble de notre code est évolutif ou réversible. Ce qui est important dans notre démarche est de ne pas perdre ce que l’utilisateur aurait saisi. Nous pouvons repartir en arrière ou repartir de zéro mais nous gardons l’existant.

  • Définition globale macroscopique des besoins.

Dans ce genre de projet, nous avons une vue d’ensemble de l’ensemble des fonctionnalités à développer. Cela est affiné par la suite avec les utilisateurs et l’équipe de développement.

  • Intégration des tests dans tout le cycle de vie.

Chaque développement est testé sur une base de pré-production similaire à la base de production. Celui-ci est également mis à la disposition d’un comité utilisateur afin de savoir s’il correspond aux attentes.

  • Collaboration et coopération entre toutes les parties prenantes.

L’ensemble de notre démarche est basée sur la collaboration de tous. En effet, nous collaborons avec le client sur les orientations, les utilisateurs, en interne pour l’équipe de développement.