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.