Organisation

Références

L'actualité

Librairie

L'information

BDD (Behavior-Driven Development)

Le Behavior-Driven Development (ou BDD) est une méthode agile qui encourage la collaboration entre les développeurs, les responsables qualités, les intervenants non-techniques et les entreprises participant à un projet de logiciel. Il a été conçu en 2003 par Dan North comme une réponse au Test Driven Development.

Le processus BDD met en avant le langage naturel et les interactions dans le processus de développement logiciel.
Les développeurs utilisant le BDD utilisent un langage naturel en combinaison avec le langage du DDD (Domaine Domain Driven) Design pour décrire l'objectif et le bénéfice de leur code.

Cela permet aux développeurs de se concentrer sur les raisons pour lesquelles le code doit être créé, plutôt que les détails techniques, et minimise la traduction entre le langage technique dans lequel le code est écrit et le domaine de la langue parlée par les entreprises, les utilisateurs, les intervenants, la gestion de projet...

Les pratiques de BDD comprennent :

  • La participation des parties prenantes dans le processus par le biais de l'extérieur dans le développement de logiciels outside-in software development
  • L'utilisation d'exemples pour décrire le comportement de la demande, ou d'unités de code
  • Automatisation de ces exemples pour fournir rapidement des commentaires et des tests de non-régression
  • Dans le test logiciel, l'utilisation du mot "devrait" contribue à clarifier la responsabilité et permet la remise en cause de la fonctionnalité du logiciel
  • L'utilisation de "vérifier que" permet de différencier les résultats obtenus dans le champ d'application du code en question en provenance des effets secondaires d'autres éléments du code.
  • Enfin, l'utilisation de "mocks" en remplacement des modules de code qui n'ont pas encore été écrits


TDD (Test Driven Development)

Le Test-Driven Development (TDD) ou en français développement piloté par les tests est une technique de développement de logiciel qui préconise d'écrire les tests unitaires avant d'écrire le code source d'un logiciel.

Le cycle préconisé par TDD comporte cinq étapes :

  • Écrire un premier test ;
  • Vérifier qu'il échoue (car le code qu'il teste n'existe pas), afin de vérifier que le test est valide ;
  • Écrire juste le code suffisant pour passer le test ;
  • Vérifier que le test passe ;
  • Réusiner le code, c'est-à-dire l'améliorer tout en gardant les mêmes fonctionnalités.


Agile

Les méthodes agiles sont des groupes de pratiques de pilotage et de réalisation de projets.
Elles ont pour origine le manifeste Agile, rédigé en 2001, qui consacre le terme d'agile pour référencer de multiples méthodes existantes.

Les méthodes agiles se veulent plus pragmatiques que les méthodes traditionnelles, impliquent au maximum le demandeur (client) et permettent une grande réactivité à ses demandes.

Elles reposent sur un cycle de développement itératif, incrémental et adaptatif et doivent respecter quatre valeurs fondamentales déclinées en douze principes desquels découlent une base de pratiques, soit communes, soit complémentaires.


Scrum

Scrum est un schéma d'organisation de développement de produits complexes. Il est défini par ses créateurs comme un cadre de travail holistique itératif qui se concentre sur les buts communs en livrant de manière productive et créative des produits de la plus grande valeur possible.

Scrum est considéré comme un groupe de pratiques répondant pour la plupart aux préconisations du Manifeste Agile.

Le framework s'appuie sur le découpage d'un projet en boîtes de temps, nommées sprints.

Les sprints peuvent durer entre quelques heures et un mois (avec une préférence pour deux semaines). Chaque sprint commence par une estimation suivie d'une planification opérationnelle. Le sprint se termine par une démonstration de ce qui a été achevé.

Avant de démarrer un nouveau sprint, l'équipe réalise une rétrospective. Cette technique analyse le déroulement du sprint achevé, afin d'améliorer ses pratiques. Le flot de travail de l'équipe de développement est facilité par son auto-organisation, il n'y aura donc pas de gestionnaire de projet.



Cycle en V

Le modèle du cycle en V (par comparaison avec les méthodes dites agiles) est un modèle conceptuel de gestion de projet imaginé à la suite du problème de réactivité du modèle en cascade.

Il permet, en cas d'anomalie, de limiter un retour aux étapes précédentes. Les phases de la partie montante doivent renvoyer de l'information sur les phases en vis-à-vis lorsque des défauts sont détectés, afin d'améliorer le logiciel.

Issu du monde de l'industrie, le cycle en V est devenu un standard de l'industrie logicielle depuis les années 1980. Depuis, avec l'apparition de l'ingénierie des systèmes, c'est devenu un standard conceptuel dans tous les domaines de l'Industrie. Le monde du logiciel ayant de fait pris un peu d'avance en termes de maturité, on trouvera souvent dans la bibliographie courante des références au monde du logiciel qui pourront s'appliquer au système.



Modèle en spirale

Le modèle en spirale (spiral model) est un modèle de cycle de développement logiciel qui reprend les différentes étapes du cycle en V. Par l'implémentation de versions successives, le cycle recommence en proposant un produit de plus en plus complet et dur. Le cycle en spirale met cependant plus l'accent sur la gestion des risques que le cycle en V.

Le modèle en spirale a été défini par Barry Boehm en 1988 dans son article "A Spiral Model of Software Development and Enhancement".