eXtreme Programming

Comme toute méthode de développement, l'eXtreme Programming (XP) propose un cadre pour l'ensemble des aspects du projet logiciel, depuis l'analyse des besoins jusqu'aux tests, en passant par la conception. Mais à la différence de processus prédictifs, recourant généralement à UML, XP ne se fonde pas sur la définition exhaustive et précoce des besoins ; elle mise plutôt, à partir d'un ensemble de règles strictes, sur la souplesse et la mise en valeur du "capital humain"

  • Permet d’éviter :


Les spécifications Complètes et immuables
- Le client a le droit de changer d’avis !

L’effet tunnel
- Interaction du client final et équipe de développement interagissent
- permettant une visibilité pendant toute la durée du développement.

Développement compartimenté
- Découpage limité par l’interaction des développeurs

Paralysie progressive
- Maintient la qualité interne au niveau le d’externe

  • Les principes :


Conception simple
- Le plus simple qui puisse fonctionner / Une et une seule fois
- Simple ne signifie pas "simpliste"

Refactoring
- Garder un code propre / élimination de l’obsolète et remise à niveau

Développement piloté par les tests unitaires
- Les tests sont directement décrits au moment du codage

Scénarios et tests décrits par le client
- Permet de vérifier à la source que ce qui est implémenté correspond à la demande

  • La collaboration :

Rôle du Coach
- Expert technique / Programmeur chevronné / Architecte / XP
- Bon communicateur et modérateur, directeur de la curiosité
- Esprit « Business Think »

Programmation en binôme
- Résolution des problèmes facilité et créativité accrue
- Code reviewing automatique
- Polyvalence des développeurs dans le projet

Responsabilité collective
- Chaque développeur peut intervenir sur n’importe quelle partie du projet

Règles de codage
- Homogénéité garantie par des règles définies avec l’équipe

Métaphore
- Facilite la communication et la compréhension interne et / ou externe

Intégration continue
- Synchronisation fréquente des développements pour éviter les régressions importantes

La gestion du projet :

Livraisons fréquentes
- Permet de s’assurer périodiquement que le produit correspond aux attentes

Planification itérative
- Planification régulière et conjointe entre le client et l’équipe

Client sur site
- Définition plus précise des besoins et feedback immédiat

Rythme durable
- Conserver un rythme raisonnable tout au long du projet pour en assurer la qualité

  • Les valeurs requises :

Excellente communication
- Accent sur la communication directe et le contact humain
- Feed Back constant permettant la réduction des risques

Simplicité de la mise en oeuvre
- Faire simple pour pouvoir y revenir facilement si le besoin change garanti une
excellente productivité

Courage
- Démarrer un projet sans avoir tout spécifié dans le détail au préalable.
- Accepter de recommencer une partie si les besoins changent.
- Transparence complète de la communication, même si négatif.
- Accepter ses propres limites lors du travail en binôme.