Tous les guides
IntermédiaireÀ votre rythmeGuide gratuitSection 79/95

Méthodologie Agile pour débutants

Pratiquez les fondations du développement : programmation, web, API, données et usages de l’IA. Des sections et exercices pour construire vos premiers projets.

💡

Contenu gratuit, accessible sans compte. Les outils et modèles évoluent : consultez le dossier actuel pour vérifier leurs versions. Modèles et sources

Section 11.5.1 : Méthodologie Agile pour débutants

🎯 Objectif pédagogique

Maîtriser les fondamentaux de l'Agile (Scrum) pour organiser un projet tech : sprints, user stories, backlog, daily standup, et rétrospective. Vous serez capable de planifier et exécuter un projet en mode Agile.


Pourquoi Agile ? Parce que le Waterfall échoue

Marc a travaillé en finance avec la méthode classique : plan complet → exécution → livraison. En tech, ça ne marche pas. Les exigences changent, les bugs surviennent, les priorités évoluent. Agile est la réponse : travailler en cycles courts, livrer souvent, s'adapter.

Scrum en 5 minutes

SCRUM — Le framework Agile le plus utilisé

RÔLES :
├── Product Owner : définit QUOI construire (priorités)
├── Scrum Master : s'assure que le processus fonctionne
└── Dev Team : construit le produit
→ Pour un projet solo, VOUS êtes les trois !

ARTEFACTS :
├── Product Backlog : liste de TOUT ce qu'il faut faire
├── Sprint Backlog : ce qu'on fait CETTE semaine
└── Increment : le produit livré à la fin du sprint

CÉRÉMONIES :
├── Sprint Planning : choisir quoi faire cette semaine
├── Daily Standup : 5 min chaque jour — qu'ai-je fait ? que vais-je faire ? suis-je bloqué ?
├── Sprint Review : montrer ce qui est fait
└── Sprint Retrospective : qu'est-ce qu'on améliore ?

SPRINT = cycle de 1-2 semaines → livrable fonctionnel à chaque fin de sprint

User Stories — Exprimer les besoins

Format : "En tant que [rôle], je veux [action] pour [bénéfice]"

Exemples pour le projet final :
- "En tant qu'utilisateur, je veux poser une question au chatbot pour obtenir des conseils"
- "En tant qu'utilisateur, je veux voir les offres d'emploi recommandées pour trouver un poste"
- "En tant qu'admin, je veux voir les analytics pour améliorer le service"

Critères d'acceptation (DoD - Definition of Done) :
- Le code est écrit et fonctionne
- Les tests passent
- L'interface est utilisable
- Le code est sur GitHub

Product Backlog du projet final

BACKLOG — Projet intégré (classé par priorité)

🔴 MUST HAVE (Sprint 1-2)
├── US01 : Chat conversationnel fonctionnel
├── US02 : Base de connaissances RAG indexée
├── US03 : Interface Streamlit basique
├── US04 : Guardrails de sécurité
└── US05 : Déploiement sur Streamlit Cloud

🟡 SHOULD HAVE (Sprint 3)
├── US06 : Function calling (3 outils)
├── US07 : Mémoire de conversation (résumé)
├── US08 : Dashboard usage (metrics)
└── US09 : Upload de CV

🟢 NICE TO HAVE (Sprint 4)
├── US10 : Multi-provider (OpenAI + Anthropic)
├── US11 : Export conversation PDF
├── US12 : Mode préparation entretien
└── US13 : Analytics avancés

Sprint Planning pratique

# Outil simple pour tracker vos sprints
import json
from datetime import datetime, timedelta

class SprintTracker:
    """Tracker de sprint minimaliste."""
    
    def __init__(self, sprint_name, duration_days=7):
        self.sprint = \{
            "name": sprint_name,
            "start": datetime.now().isoformat(),
            "end": (datetime.now() + timedelta(days=duration_days)).isoformat(),
            "tasks": []
        \}
    
    def add_task(self, title, estimate_hours, priority="medium"):
        self.sprint["tasks"].append(\{
            "title": title,
            "estimate_hours": estimate_hours,
            "priority": priority,
            "status": "todo"  # todo, in_progress, done
        \})
    
    def update_status(self, task_index, status):
        self.sprint["tasks"][task_index]["status"] = status
    
    def get_progress(self):
        tasks = self.sprint["tasks"]
        done = len([t for t in tasks if t["status"] == "done"])
        total = len(tasks)
        return f"\{done\}/\{total\} tasks (\{done/total*100:.0f\}%)" if total else "0 tasks"
    
    def save(self, filepath="sprint.json"):
        with open(filepath, "w", encoding="utf-8") as f:
            json.dump(self.sprint, f, ensure_ascii=False, indent=2)

# Utilisation
sprint = SprintTracker("Sprint 1 — Fondations", duration_days=3)
sprint.add_task("Setup projet + environment", 1, "high")
sprint.add_task("Implémenter guardrails.py", 2, "high")
sprint.add_task("Créer base de connaissances (20 docs)", 2, "high")
sprint.add_task("Chat basique terminal", 1, "high")
sprint.add_task("Tests unitaires guardrails", 1, "medium")
sprint.save()

Agile solo = Agile simplifié

En équipe, Scrum a des cérémonies formelles. En solo, gardez l'essentiel : 1) Un backlog priorisé (todo list). 2) Des sprints courts (2-3 jours). 3) Un standup quotidien (5 min de réflexion : qu'ai-je fait ? que vais-je faire ?). 4) Une rétro en fin de sprint (qu'améliorer ?). Simple mais puissant.

🏋️ Exercice pratique (20 minutes)

  1. →Écrivez 5 user stories pour votre projet final
  2. →Classez-les en Must Have / Should Have / Nice to Have
  3. →Planifiez votre Sprint 1 (3 jours) avec des tâches estimées en heures
  4. →Créez votre SprintTracker et sauvegardez en JSON
Vérification rapide

Pourquoi travailler en sprints courts (2-3 jours) plutôt qu'en un seul bloc de 2 semaines ?

Vérification rapide

Qu'est-ce qu'une user story bien écrite ?

Votre progression

Cette progression est déclarative et conservée dans votre navigateur. L’attestation finale ne constitue pas un diplôme ni une évaluation indépendante.

Voir ma progression et mon attestation

Apprendre l’IA, du premier prompt aux agents

15 guides gratuitsQuiz, schémas et ateliersSans compte

Un cas pratique IA dans votre boîte mail

Méthodes, ressources et nouveaux exercices. Gratuit, avec désinscription à tout moment.