Agile 3M-1-3 Devenir développeur Agile

L’approche agile est souvent évoquée dans les projets informatiques, et pour cause, elle est quasiment partout… Le Manifeste Agile a 20 ans, et il est toujours d’actualité. Mais qu’est-ce que cela implique d’adopter une approche agile pour les développeurs ?

Développeur Agile- comprendre les enjeux

Objectif

En 2001, 17 développeurs ont tenté de trouver une solution pour de trouver une solution au fait que bon nombre de projets informatiques échouent avant même d’être livrés en production.

Le Manifeste Agile pose un cadre comprenant 4 valeurs et 12 principes.

Des méthodes de gestion de projet agile ont découlé de ce manifeste.

Quelles sont les méthodes les plus populaires ?

Agile est le nom générique pour catégoriser la manière de livrer, de manière réactive des applications centrées sur l’utilisateur.

Les méthodologies les fréquemment utilisées sont Scrum et Kanban

développeurs et méthodes agiles populaires
Stackoverflow, résultat de l’enquête 2018

Les 4 valeurs

Coaching Agile, Valeurs Agile, Scrum, management VuCAVUCA
4 valeurs fondamentales

Cette lecture du manifeste est un
retour d’expériences sur des transformations Agile dans les entreprises accompagnées

Le manifeste Agile, 4 valeurs et 12 principes sont présentés ici selon 3 points de vue : celui de l’individu, celui de l’équipe, celui du management ou de l’organisation.

Agile univers, coaching d'équipe, équipe agileLes 4 valeurs de l’Agilité se déclinent en 12 principes.  Au fur-et-à-mesure, que je les aborde dans les transformations, j’y ai décelé des facteurs de réussite selon 3 focus : …

Conseil de lecture- Articles de référence

DÉVELOPPER DANS SCRUM

  • Rappel des principes Agiles
  • Rappel du framework Scrum – SCRUM PUZZLE
  • Rôle du développeur selon le Scrum Guide – Discussion ouverte
  • Comprendre les méthodes pour développer

COMPRENDRE L’ARCHITECTURE POUR MIEUX DÉVELOPPER :

  • Architecture Hexagonale
  • Domain-Driven Design
  • API as a product & API First
  • Architecture Orientée Événements

DÉVELOPPER UN LOGICIEL DE QUALITÉ

  • Notion de qualité, qualité non-négociable, dette technique et entropie
  • Principes de conception SOLID
  • Principes de codage KISS, DRY et YAGNI
  • Bonnes pratiques de développement Clean Code
  • Collective Code Ownership (appropriation collective du code)
  • Pair programming
  • Définition de fini et du prêt, affinage du backlog, features, spikes et dette technique
  • Conception logicielle en Shift-Left Testing : TDD, ATDD, BDD
  • Remaniement de code hérité

JOUR 2 : 

INTRODUCTION AUX TESTS AGILES

  • Pourquoi automatiser les tests en ayant une stratégie de test ?
  • Métier de testeur : un développeur de solution de test
  • Test & Learn : le test comme boucle rétroactive
  • Test-Driven Requirements, Shift-Left Testing & Shift-Right Testing
  • Automatisation littérale des tests en ATDD / BDD
  • Réaliser des tests en boîte blanche avec JUnit
  • Automatiser une spécification exécutable avec Cucumber en Gherkin
  • Réaliser des tests web avec Robot Framework et Selenium WebDriver en Keyword-Driven Testing

INTÉGRATION ET DÉPLOIEMENT EN CONTINU

  • Contrôle de version avec Git
  • Automatisation des builds avec Maven
  • Intégration continue avec Jenkins
  • Atelier Craft et bonnes pratiques d’équipe avec Promyze
  • Qualimétrie avec SonarQube

DEVOPS

  • Une culture, pas un métier : CAMS
  • Obsession de la mesure et Data-Driven Organization pour une organisation apprenante
  • Conteneurs et microservices
  • Infrastructure as Code
  • DevSecOps