Ce chapitre donne un aperçu de l’Extreme Programming.
qu’est-Ce que Agile?
Le mot « agile » signifie −
-
en Mesure de déplacer votre corps rapidement et facilement.
-
Capable de penser rapidement et clairement.,
en entreprise, « agile » est utilisé pour décrire les façons de planifier et de faire le travail, dans lequel il est entendu que les changements nécessaires sont une partie importante du travail. Business’agililty ‘ signifie qu’une entreprise est toujours en mesure de tenir compte des évolutions du marché.
Réf: Dictionnaires Cambridge en ligne.
dans le développement de logiciels, le terme « agile » est adapté pour signifier » la capacité de répondre aux changements − les changements des exigences, de la technologie et des personnes.,’
Manifeste Agile
Une équipe de développeurs de logiciels a publié le Manifeste Agile en 2001, soulignant l’importance de l’équipe de développement, s’adaptant aux exigences changeantes et à la participation des clients.
Le Manifeste Agile indique que −
Nous découvrons de meilleures façons de développer des logiciels en le faisant et en aidant les autres à le faire. Grâce à ce travail, nous en sommes venus à valoriser −
-
Les individus et les interactions au-dessus des processus et des outils.
-
le logiciel de Travail sur une documentation exhaustive.,
-
collaboration client sur la négociation de contrat.
-
répondre au changement plutôt que de suivre un plan.
c’est-à-dire que, bien qu’il y ait de la valeur dans les éléments de droite, nous valorisons davantage les éléments de gauche.
caractéristiques de L’agilité
Voici les caractéristiques de L’agilité −
-
L’agilité dans le développement logiciel Agile se concentre sur la culture de l’ensemble de l’équipe avec des équipes multidisciplinaires et interfonctionnelles qui sont autonomes et auto-organisatrices.
-
il favorise la responsabilité partagée et la responsabilisation.,
-
facilite la communication efficace et la collaboration continue.
-
l’ensemble de L’équipe approche évite les retards et les délais d’attente.
-
des livraisons fréquentes et continues garantissent un retour rapide qui permet à l’équipe de s’aligner sur les exigences.
-
la Collaboration facilite la combinaison de différentes perspectives en temps opportun dans la mise en œuvre, la correction des défauts et l’adaptation aux changements.
-
Les progrès sont constants, durables et prévisibles en mettant l’accent sur la transparence.,
tendances en génie logiciel
Les tendances suivantes sont observées en génie logiciel −
-
rassembler les exigences avant le début du développement. Cependant, si les exigences doivent être modifiées plus tard, alors on remarque généralement-
-
résistance aux changements à un stade ultérieur de développement.
-
Il y a une exigence d’un processus de changement rigoureux qui implique une carte de contrôle des modifications qui peut même pousser les modifications à des versions ultérieures.,
-
la livraison d’un produit avec des exigences obsolètes, ne répondant pas aux attentes du client.
-
incapacité à tenir compte des changements inévitables de domaine et des changements technologiques dans le budget.
-
-
trouvez et éliminez les défauts tôt dans le cycle de vie de développement afin de réduire les coûts de défaut-correction.
-
Les tests ne commencent qu’une fois le codage terminé et les tests sont considérés comme une responsabilité du testeur bien que le testeur ne soit pas impliqué dans le développement.
-
mesurez et suivez le processus lui-même., Cela devient coûteux en raison de –
-
Surveillance et suivi au niveau de la tâche et au niveau des ressources.
-
définir des mesures pour guider le développement et mesurer chaque activité dans le développement.
-
Gestion de l’intervention.
-
-
d’Élaborer, d’analyser et de vérifier les modèles avant de développement.
-
un modèle est censé être utilisé comme cadre. Cependant, se concentrer sur le modèle et non sur le développement qui est crucial ne donnera pas les résultats escomptés.,
-
-
Codage, qui est au cœur du développement n’est pas accordé suffisamment d’importance. Les raisons étant −
-
Les développeurs, qui sont responsables de la production, ne sont généralement pas en communication constante avec les clients.
-
le codage est considéré comme une traduction de la conception et l’implémentation efficace dans le code n’est presque jamais bouclée dans la conception.
-
le Test est considéré comme la passerelle pour vérifier les défauts avant la livraison.,
-
les dépassements de calendrier des premiers stades de développement sont compensés en négligeant les exigences de test pour assurer des livraisons en temps opportun.
-
Il en résulte des dépassements de coûts qui corrigent les défauts après la livraison.
-
Les testeurs sont tenus responsables de la qualité du produit bien qu’ils n’aient pas été impliqués pendant tout le développement.
la Limitation des ressources (principalement de l’équipe) pour accueillir le budget conduit à l’
-
Ressource d’allocation
-
l’Équipe de l’épuisement professionnel.,
-
la Perte de l’utilisation efficace des compétences de l’équipe.
-
l’Attrition.
la Programmation Extrême − Une façon de gérer la commune lacunes
l’Ingénierie Logicielle implique −
-
Créativité
-
Apprendre et de s’améliorer grâce à des essais et des erreurs
-
Itérations
La Programmation s’appuie sur ces activités et de codage. C’est l’activité de conception détaillée (et non la seule) avec de multiples boucles de rétroaction serrées grâce à une mise en œuvre, des tests et une refactorisation efficaces en continu.,
l’Extreme Programming est basée sur les valeurs suivantes:
-
Communication
-
Simplicité
-
Commentaires
-
Courage
-
Respect
qu’est-Ce que l’Extreme Programming?
XP est un moyen léger, efficace, à faible risque, flexible, prévisible, scientifique et amusant de développer un logiciel.
eXtreme Programming (XP) a été conçu et développé pour répondre aux besoins spécifiques du développement logiciel par de petites équipes face à des exigences vagues et changeantes.,
Extreme Programming est l’une des méthodologies de développement logiciel Agile. Il fournit des valeurs et des principes pour guider le comportement de l’équipe. L’équipe devrait s’auto-organiser. Extreme Programming fournit des pratiques de base spécifiques où-
-
chaque pratique est simple et auto-complète.
-
la combinaison de pratiques produit un comportement plus complexe et émergent.
Embrace Change
une hypothèse clé de la programmation extrême est que le coût de la modification d’un programme peut être maintenu principalement constant dans le temps.,>Cela peut être réalisé avec −
-
L’accent mis sur la rétroaction continue du client
-
des itérations courtes
-
la conception et la refonte
-
le codage et les tests fréquents
-
L’élimination précoce des défauts, réduisant ainsi les coûts
-
livrer un produit fonctionnel au client
la programmation extrême en un mot
la programmation extrême implique −
-
écrire des tests unitaires avant la programmation et garder tous les tests en cours d’exécution à tout moment., Les tests unitaires sont automatisés et éliminent les défauts tôt, réduisant ainsi les coûts.
-
commencer par une conception simple juste assez pour coder les fonctionnalités à portée de main et redessiner si nécessaire.
-
programmation par paires (appelée programmation par paires), avec deux programmeurs sur un écran, à tour de rôle pour utiliser le clavier. Alors que l’un d’eux est au clavier, l’autre examine constamment et fournit des entrées.
-
intégrer et tester l’ensemble du système plusieurs fois par jour.,
-
mettre rapidement un système de travail minimal dans la production et le mettre à niveau chaque fois que nécessaire.
-
garder le client impliqué tout le temps et obtenir un retour constant.
L’itération facilite les modifications à mesure que le logiciel évolue avec les exigences changeantes.
Pourquoi est-il appelé « Extrême? »
La programmation extrême amène les principes et pratiques efficaces à des niveaux extrêmes.
-
Les examens de Code sont efficaces car le code est examiné tout le temps.,
-
Les tests sont efficaces car il y a une régression et des tests continus.
-
la conception est efficace car tout le monde doit faire du refactoring quotidiennement.
-
Les tests D’intégration sont importants car intégrer et tester plusieurs fois par jour.
-
les itérations courtes sont efficaces comme jeu de planification pour la planification des versions et la planification des itérations.
Histoire de la programmation extrême
Kent Beck, Ward Cunningham et Ron Jeffries ont formulé la programmation extrême en 1999. Les autres contributeurs sont Robert Martin et Martin Fowler.,
Au milieu des années 80, Kent Beck et Ward Cunningham ont lancé la programmation en paire chez Tektronix. Dans les années 80 et 90, la Culture Smalltalk a produit du Refactoring, une intégration continue, des tests constants et une implication étroite des clients. Cette culture a ensuite été généralisée aux autres environnements.
Au début des années 90, des valeurs fondamentales ont été développées au sein de la communauté Patterns, Hillside Group. En 1995, Kent les a résumées dans Smalltalk Best Practices, et en 1996, Ward les a résumées dans des épisodes.
en 1996, Kent a ajouté les tests unitaires et la métaphore chez Hewitt., En 1996, Kent avait pris le projet Chrysler C3, auquel Ron Jeffries a été ajouté en tant qu’entraîneur. Les pratiques ont été affinées sur C3 et publiées sur Wiki.
Les pratiques Scrum ont été incorporées et adaptées en tant que jeu de planification. En 1999, Kent a publié son livre, « Extreme Programming Explained ». Dans la même année, Fowler a publié son livre, Refactoring.
la programmation extrême a évolué depuis lors, et l’évolution se poursuit jusqu’à aujourd’hui.
succès dans L’industrie
le succès des projets, qui suivent des pratiques de programmation extrêmes, est dû à −
-
développement rapide.,
-
réactivité immédiate aux exigences changeantes du client.
-
concentrez-vous sur les faibles taux de défauts.
-
Système renvoyant une valeur constante et cohérente au client.
-
niveau Élevé de satisfaction client.
-
la Réduction des coûts.
-
cohésion D’équipe et satisfaction des employés.
Extreme Programming Advantages
Extreme Programming résout les problèmes suivants souvent rencontrés dans les projets de développement de logiciels −
-
horaires glissés − et les cycles de développement réalisables garantissent des livraisons en temps opportun.,
-
projets annulés − L’accent mis sur la participation continue du client garantit la transparence avec le client et la résolution immédiate de tout problème.
-
coûts engagés dans les modifications − des tests approfondis et continus garantissent que les modifications ne cassent pas la fonctionnalité existante. Un système de travail en cours d’exécution garantit toujours suffisamment de temps pour s’adapter aux modifications de sorte que les opérations en cours ne soient pas affectées.
-
défauts de Production et de post-livraison: L’accent est mis sur les tests unitaires pour détecter et corriger les défauts tôt.,
-
méconnaître l’entreprise et / ou le domaine − Faire du client une partie de l’équipe assure une communication et des clarifications constantes.
-
changements opérationnels − les changements sont considérés comme inévitables et sont pris en compte à tout moment.
-
la collaboration Intensive du personnel garantit l’enthousiasme et la bonne volonté. La cohésion des disciplines favorise l’esprit d’équipe.