All guides
IntermediateSelf-pacedFree GuideSection 79/95

Méthodologie Agile pour débutants

Practise development foundations: programming, web, APIs, data and AI tools. Work through sections and exercises to build your first projects.

The full lessons for this course are currently available in French. Use the section menu to navigate the French course.

💡

Free content, available without an account. Tools and models change: use the current model guide to check their versions. Models and 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
Quick Check

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

Quick Check

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

Your progress

Progress is self-reported and stored in your browser. The final completion record is not a qualification or an independent assessment.

View progress and completion record

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

One practical AI workflow in your inbox

Methods, resources and new exercises. Free, unsubscribe at any time.