M426 V1
Développer un logiciel avec des méthodes agiles
- Type
- EP obligatoire
- Lieu
- École professionnelle
- Année
- 2ème année d'apprentissage
- 426_1_D%C3%A9velopper%20un%20logiciel%20avec%20des%20m%C3%A9thodes%20agiles.pdf
Compétence visée par le module
Appliquer des méthodes agiles pour le développement de logiciels dans les cycles de révision.
Situation / objet
Version logicielle fonctionnelle, testée et documentée.
Objectifs opérationnels et connaissances
426.1 Mettre en œuvre une fonctionnalité donnée, dans le cadre d’un projet logiciel, avec une méthode agile. g1 g5 g6 h2
| Connaissance | Texte |
|---|---|
| 426.1.1 | Connaître une méthode agile pour le développement logiciel. |
| 426.1.2 | Connaître le contenu et la structure d’un User-Story. |
| 426.1.3 | Connaître des valeurs et des principes de méthodes agiles. |
| 426.1.4 | Connaître les limites des méthodes linéaires et agiles. |
426.2 Réaliser et tester par étapes les fonctionnalités à l’aide de pratiques agiles dans les cycles de révision prescrits, et présenter en résumé la version logicielle. g1 g5 g6 h2
| Connaissance | Texte |
|---|---|
| 426.2.1 | Connaître le déroulement et les éléments d’un cycle des versions. |
| 426.2.2 | Connaître le déroulement et le contenu d’une présentation des versions. |
| 426.2.3 | Connaître l’importance des versions fonctionnelles de logiciels. |
| 426.2.4 | Connaître les pratiques (Best Practices) du développement logiciel agile comme par ex. Design, Metapher, Refactoring, Testdriven Development, Continuous Integration, Pair Profgramming, Coding Standards. |
| 426.2.5 | Connaître les outils appropriés au développement agile pour les Units-Tests, System Integration, System Build, test d’acceptance, etc. |
426.3 Mettre en œuvre, de manière ciblée, des échantillons de développement existants et/ou des composants logiciels testés pour résoudre le problème. g1 g5 g6 h2
| Connaissance | Texte |
|---|---|
| 426.3.1 | Connaître l’importance et la structure des échantillons significatifs de développement. |
| 426.3.2 | Connaître l’utilité de la réutilisation des composants logiciels existants. |
| 426.3.3 | Connaître un procédé pour l’évaluation de composants logiciels ainsi que pour résoudre des problèmes donnés. |
426.4 Refléter les résultats et le déroulement du travail lors d’un cycle de révision, en déduire les conclusions pour la suite du déroulement. g1 g5 g6 h2
| Connaissance | Texte |
|---|---|
| 426.4.1 | Connaître un procédé pour refléter les résultats d’un cycle des versions. |
| 426.4.2 | Connaître des possibilités pour refléter son propre déroulement du travail dans un cycle des versions. |
| 426.4.3 | Connaître des possibilités pour optimiser la suite du procédé sur la base de la réflexion (SCRUM, ceremony, product backlog issues). |
426.5 Mettre à disposition les documents du projet et les codes sources du programme dans un système de gestion des versions. g1 g5 g6 h2
| Connaissance | Texte |
|---|---|
| 426.5.1 | Connaître les avantages et utilités d’un système de gestion des versions utilisé communément. |
| 426.5.2 | Connaître les fonctionnalités et l’utilisation d’un système de gestion des versions, ainsi que les possibilités d’y intégrer divers objets. |
| 426.5.3 | Connaître les différences entre un système de gestion des versions avec accès exclusif et accès parallèle. |
426.6 Formuler de manière compréhensive le code source programme selon les conventions. g1 g5 g6 h2
| Connaissance | Texte |
|---|---|
| 426.6.1 | Connaître les concepts, les règles et procédures d’un Clean-Code. |
| 426.6.2 | Connaître l’importance du Refactoring pour l’amélioration intuitive de la lisibilité d’un code source programme. |
Matrice de compétences
| Bande | Compétence | Débutant | Intermédiaire | Avancé | Objectifs |
|---|---|---|---|---|---|
| A1 | Connaître les méthodes agiles | Je peux expliquer les modèles de processus linéaires tels que le modèle en cascade, le modèle en V et RUP ainsi que les modèles cycliques tels que le modèle en spirale et les différents processus prototypes. | Je peux expliquer le « Manifeste Agile » et ses principes et souligner ce qui est bon et où des problèmes peuvent survenir. | Je peux reconnaître les modèles de processus linéaires et cycliques et montrer comment le meilleur de tout peut être combiné |
426.1
|
| A2 | Connaître les méthodes agiles | Je peux expliquer le modèle SCRUM avec le processus cyclique, les rôles, les cérémonies (réunions/sessions) et la philosophie de SCRUM | Je peux montrer comment un projet peut être formulé en « vision », en « épopées » et en « user stories ». | Je peux structurer un projet avec mon équipe dans une démarche SCRUM et planifier les bonnes étapes |
426.1
|
| A3 | Connaître les méthodes agiles | Je peux expliquer les trois aspects de la façon de formuler une exigence dans une phrase pour une user story | Je peux décrire une user story conformément au DoR, la classer avec l'équipe et évaluer ses efforts avec des story points (Planning Poker) et déterminer les critères d'acceptation pour celle-ci (DoD) | Je peux déterminer la « bonne » intersection entre la user story et les tâches en collaboration avec l'équipe |
426.1
|
| B1 | Mettre en œuvre une itération agile | Je peux interpréter les modules logiciels existants et expliquer où le logiciel doit être étendu pour mettre en œuvre une user story | Je peux implémenter le logiciel pour implémenter une user story | Je peux adapter un logiciel existant pour implémenter une user story (refactoring) |
426.2
|
| B2 | Mettre en œuvre une itération agile | Je peux expliquer l'importance des logiciels exécutables dans le contexte du développement logiciel agile | Je peux présenter la user story que j'ai implémentée à l'aide du logiciel exécutable et montrer que les exigences du DoD ont été respectées. | Je peux préparer et réaliser une démo de sprint (incluant un burndown chart). |
426.2
|
| C1 | Réutiliser les composants | Je peux expliquer le principe des composants logiciels (réutilisabilité, répartition des tâches, interfaces) à l'aide d'un exemple | Je peux évaluer et sélectionner les composants logiciels d'une application, en tenant compte de la réutilisabilité | Je peux identifier les composants logiciels dans une conception, évaluer leur réutilisabilité et les intégrer de manière justifiée |
426.3
|
| D1 | Réfléchissez et améliorez votre approche | Je peux expliquer comment je me prépare pour le Daily Scrum | Je peux apporter mes expériences et mes découvertes à la rétrospective et en déduire des mesures d'amélioration appropriées | Je peux préparer et diriger une rétrospective, hiérarchiser les connaissances acquises et les traduire en mesures d'amélioration concrètes. |
426.4
|
| E1 | Appliquer la gestion des versions | Je peux cloner un référentiel, valider et transmettre des modifications, ainsi que récupérer et extraire des modifications du serveur et expliquer comment appliquer des branches (par exemple, flux Git). | Je peux gérer les demandes de fusion et appliquer des branches spécifiquement (par exemple, flux Git) | Je peux résoudre les conflits de fusion, remettre en question de manière critique l'arborescence Git et mettre en œuvre des améliorations (par exemple, rebase, cerise-pick) |
426.5
|
| F1 | Gérer le code propre et les refactorisations | Je peux expliquer ce qui est important pour que le code soit lisible et quelles règles doivent être suivies | Je peux rendre le code plus lisible et le refactoriser en appliquant les recommandations Clean Code | Pour une meilleure compréhension, je peux décrire les domaines fonctionnels de telle manière que la complexité (cyclomatique) soit démêlée |
426.6
|
Modules liés par compétences PEC
| Module | Titre | PEC communes |
|---|---|---|
| M324 | Prendre en charge des processus DevOps avec des outils logiciels | |
| M321 | Programmer des systèmes distribués | |
| M183 | Implémenter la sécurité d'une application | |
| M223 | Réaliser des applications multi-utilisateurs orientées objets | |
| M295 | Réaliser le back-end pour des applications | |
| M322 | Concevoir et implémenter des interfaces utilisateur | |
| M346 | Concevoir et réaliser des solutions cloud | |
| M106 | Interroger, traiter et assurer la maintenance des bases de données | |
| M162 | Analyser et modéliser des données | |
| M164 | Créer des bases de données et y insérer des données | |
| M165 | Utiliser des bases de données NoSQL | |
| M254 | Décrire des processus métier dans son propre environnement professionnel |