Prochaines sessions

Objectifs
- Comprendre le cadre de travail Scrum : ses acteurs, ses cérémonies et ses livrables
- Adopter les réflexes d’un bon développeur Scrum grâce à une première expérience réelle
- Mettre en place une politique de Test Agile pour augmenter la qualité du produit
- Elaborer une stratégie d’Intégration Continue pour limiter les risques du projet
- Comprendre la Conception Agile pour limiter la dette technique d’une application
Pré requis
- Avoir participé à un projet informatique et avoir lu un ouvrage sur l’Agilité/Scrum ou avoir suivi la journée de formation « Découverte de l’Agilité »
Modalités et délais d’accès
Bulletin d'inscription à retourner complété
Public visé
Pré-inscription
Tout public
Programmes de Scrum Developer
Introduction
- Présentation du programme de 5 jours
- Le Manifeste Agile et ses pratiques
Le fonctionnement de Scrum
- La progression par Sprint : pourquoi, comment ?
- Caractéristiques d’un Backlog de Produit
- Caractéristiques d’un Backlog de Sprint
Les cérémonies du Sprint
- La planification : Sprint Planning
- Le point quotidien : Daily Scrum
- La revue : Sprint Review
- L’amélioration continue : Retrospective
Les rôles Scrum
- Product Owner : rôle et responsabilités du responsable de produit
- ScrumMaster : rôle et responsabilités du facilitateur
- L’équipe : rôle et responsabilités des membres de l’équipe de développement
- Les rôles et responsabilités des intervenants extérieurs
- L’optimisation des relations et des échanges entre intervenants
Planifier un projet et visualiser son avancée
- Les outils visuels indispensables : ScrumBoard, Burdown chart
- Calcul de la Vélocité, Estimation et Planification des Sprints et des Releases
- Le Planning Poker : un outil d’estimation collaboratif pour l’équipe
Lancement de la journée
- Le but : vivre les phases d’un projet Scrum sur une journée dans la peau d’un développeur
- Contenu de la journée, élaboration d’un agenda et répartition des rôles
- Présentation du contexte du projet et de l’application fil rouge
- Rappels techniques Java/JEE
Déroulement des Sprints
- Planification : Sprint Planning et Planning Poker
- Développement Java/JEE
- Point quotidien : Daily Scrum, mise à jour du ScrumBoard et reste à faire
- Revue : Sprint Review, démonstration et validation des développements
- Amélioration continue : Retrospective
Test Driven Development
- Description de l’approche TDD et de ses bénéfices
- Comment améliorer la qualité et le design du code par les tests ?
- Les différents types de tests : unitaire, intégration, fonctionnel
Les tests unitaires avec JUnit
- Comprendre le cycle de vie d’un test dans le framework JUnit
- Respect du principe d’isolation et contrôle du résultat des tests
- Les mocks ou comment simuler le code périphérique au code testé
- Utilisation de frameworks de simulation de code comme EasyMock
Organisation des activités de test
- Méthodologie de correction d’un Bug
- Automatiser l’exécution de JUnit
- Génération de rapports
- Intégration avec Ant, Maven et Eclipse
Tests d’intégration
- Comprendre la notion de test in-container par opposition aux tests unitaires
- Test d’une couche de persistance avec DBUnit
ATDD et BDD
- Principes de l’Acceptance Test Driven Development
- Conséquences d’ATDD sur le Sprint Planning et la Sprint Review
- Principes du Behavior Driven Developement
- Mettre en pratique BDD avec JBehave : installation, écriture de Stories, production de rapports
- Rôle du ProductOwner et de l’équipe lors de l’écriture des scénarios d’acceptance
Présentation de l’Intégration Continue
- Principes, environnement et infrastructure
- Eviter les cinq risques liés à l’intégration
- Les types de processus d’intégration
- Les solutions d’Intégration continue : Husdon, Jenkins, CruiseControl, Bamboo, TeamCity, Apache Continum, …
Jenkins : la solution de référence du monde Open-Source
- Tableau de bord et santé des projets
- Architecture et principe d’extension
- Installation, configuration et utilisation de Jenkins
- Automatisation des builds avec Jenkins et Maven
- Automatisation des Tests avec JUnit (TDD) et JBehave (ATDD)
Métriques
- Les risques de dérive du code source
- Lien entre rapports de construction et qualité logicielle
- Respect des standards de développement avec Checkstyle et PMD
- Couverture de test avec Cobertura
Notification
- Intérêt des indicateurs visuels et bonnes pratiques
- Indicateurs de Jenkins et indicateurs étendus
- Historisation et suivi des tendances
Principes Objet fondamentaux
- Fondamentaux Objets
- Conception et développement Agile : SRP, DIP, ISP, OCP, LSP
- Gestion des dépendances
Conception de Frameworks
- Définition et principes des frameworks
- Quand choisir de créer un framework ?
- Principe d’extensibilité et mise en oeuvre
Refactoring
- Conséquence de la dette technique et risque de « casse » du code
- Où ? Quand ? Comment refactorer ?
- Les sept catégories d’outils de refactoring
- L’aide de TDD et d’ATDD durant le refactoring
- Best practices et limitations