Agilité

Ects : 3
Compétence à acquérir :
Découvrir, comprendre et appliquer les principes et les pratiques agiles les plus efficaces.

Collaborer en équipe pour atteindre rapidement un objectif fonctionnel ou technique.

Renforcer les compétences de spécification, conception, planification, communication, développement et tests automatisés.

Fournir des résultats tangibles et fréquents, avec le sourire

Description du contenu de l'enseignement :
La nouvelle économie met à rude épreuve les équipes des projets informatiques. L'instabilité notoire des spécifications et le raccourcissement des délais de livraison imposent une amélioration drastique de la réactivité et de la productivité du développement, sans tolérer pour autant une quelconque négligence en matière de stabilité et d'évolutivité des applications déployées. Les méthodologies dites "agiles" tentent de répondre à ces exigences, en adoptant un investissement minimaliste et prônant des résultats tangibles et fréquents, par opposition aux méthodologies classiques qui - tout en imposant des organisations coûteuses - n'arrivent plus à prouver leur efficacité dans ces conditions extrêmement dynamiques. Ce cours propose un panorama des méthodes et techniques efficaces applicables dès les projets de petite taille, y compris pour assurer la traçabilité complète entre les besoins et les composants techniques en continue évolution. Les étudiants pourront les mettre en œuvre avantageusement, preuve comprise, aussi bien pour leurs projets pédagogiques qu'industriels, une fois dans l'entreprise.


Introduction. Evolution des modèles du cycle de vie des projets. Manifeste agile: valeurs et principes.
Offre des méthodologies agiles : XP, Scrum, FDD, Kanban, Lean, etc.
eXtremeProgramming : cycle de négociation, métaphore & storytelling, développement piloté par les tests, refactoring permanent, etc.
Gestion des exigences et de configuration logicielles. CMMi vs agile.
Zoom sur le testing automatique fonctionnel : Behaviour Driven Developement en Gherkin avec Cucumber.
Modélisation, patterns agiles, stratégies et styles architecturaux agiles: Design Patterns, Analysis Patterns, Metapatterns, Hexagonal, CQRS, DDD.
Techniques encourageant l'agilité : RAD, AOP, Assemblage de composants, MDA, métriques & audits, EventModeling, Impact et StoryMapping.
Illustrations en Java, tout au long du cours.