Chapitre 5

Compétence clé : projets full stack pratiques

Maîtrisez l’ensemble du processus, des besoins à la livraison, comprenez la méthodologie du développement piloté par les spécifications, apprenez la décomposition WBS et la définition du DoD, et acquérez des compétences de gestion de projet et de contrôle qualité de niveau entreprise.

Méthodologie de clarification des besoins

La clarification des exigences est le fondement de la réussite d’un projet. Grâce à une approche systématique, assurez-vous de comprendre les besoins réels et d’éviter les retouches et les malentendus.

Technique d’entretien inversé

Le Reverse Interview est une technique de questionnement active qui permet de faire émerger les besoins réels en demandant « pourquoi » :

Demandez « pourquoi » plutôt que « quoi »

Mauvaise façon de poser une question:« De quelles fonctionnalités avez-vous besoin ? »

Comment poser la bonne question: « Pourquoi avez-vous besoin de cette fonctionnalité ? Quel problème résout-elle ? »

En posant la question « pourquoi », comprenez les véritables motivations et les objectifs commerciaux derrière le besoin.

Demandez « quand » et « qui »

  • Cas d’utilisation:« Quand utilisera-t-on cette fonctionnalité ? À quelle fréquence ? »
  • Utilisateurs cibles: « Qui utilisera cette fonctionnalité ? Quel est leur niveau technique ? »
  • Environnement d’utilisation : « Dans quel environnement l’utiliser ? Quelles sont les limites ? »

Demander « et si... ? »

  • Cas limites: « Que se passerait-il si cette fonctionnalité n’existait pas ? »
  • Gestion des exceptions:「Que se passe-t-il si les données sont anormales ?"
  • Évolutivité:« Que se passe-t-il si les exigences changent ? »

Rédaction d’histoires utilisateur

Une user story est l’unité minimale d’une exigence et comprend trois éléments : rôle, objectif et valeur :

Modèle de user story :

En tant que [rôle],
Je veux [objectif],
Afin de [valeur/raison].

Caractéristiques d’une bonne user story

  • Indépendance:peut être développé et testé de manière autonome
  • Négociable: Peut être discuté et ajusté
  • Utile: Apporte une valeur réelle aux utilisateurs
  • Estimable: Peut estimer le temps de développement
  • Petit: peut être terminé en une itération
  • Testable : Il existe des critères d’acceptation clairs

Critères d’acceptation

Chaque user story doit avoir des critères d’acceptation clairs, en utilisant le format Given-When-Then :

Étant donné : l’utilisateur est connecté
When: lorsque l’utilisateur clique sur le bouton « Créer une tâche »
Then : afficher le formulaire de création de tâche
And: L’utilisateur peut saisir un titre et une description de tâche
And : les utilisateurs peuvent enregistrer des tâches

Hiérarchisation des exigences

Méthode MoSCoW

  • Must have: indispensable, une fonctionnalité clé pour la réussite du projet
  • Should have: Devrait exister ; important mais pas essentiel
  • Could have: Cela peut exister ; à faire si le temps le permet
  • Won't have: Si nous ne le faisons pas cette fois, il est possible que nous le fassions plus tard

Matrice valeur-complexité

En fonction de la valeur et de la complexité des fonctionnalités, privilégier le développement des fonctionnalités à forte valeur et faible complexité.

Cas pratique : clarification des besoins pour une plateforme e-commerce

Exigences initiales

« Nous avons besoin d’une fonctionnalité de panier d’achat »

Processus d’entretien inversé

  • Q : "Pourquoi faut-il un panier d’achat ?" A : "Les utilisateurs doivent pouvoir sélectionner plusieurs produits en même temps"
  • Q : "Quand l’utiliser ?" A : "Lorsque vous parcourez les produits, ajoutez au panier ceux qui vous plaisent"
  • Q : « Qui l’utilisera ? » R : « Tous les utilisateurs enregistrés »
  • Q : "Que se passe-t-il si l’utilisateur n’est pas connecté ?" R : "Il peut ajouter des articles au panier, mais il doit se connecter au moment du paiement"

Exigences clarifiées

  • • Les utilisateurs peuvent ajouter des produits au panier (connectés/non connectés)
  • • Les utilisateurs peuvent consulter les articles dans le panier
  • • Les utilisateurs peuvent modifier la quantité des produits
  • • Les utilisateurs peuvent supprimer des produits
  • • Le panier des utilisateurs non connectés est stocké dans le stockage local
  • • Fusionner le panier local et le panier serveur après connexion

Développement piloté par les spécifications

Le développement piloté par les Spec transforme les besoins en spécifications exécutables, et l'IA peut générer directement du code à partir de la Spec, améliorant ainsi l'efficacité du développement et la qualité du code.

Rédaction du PRD

Structure du PRD

  • Présentation du produit: Positionnement du produit, utilisateurs cibles, valeur fondamentale
  • Exigences fonctionnelles: Descriptions détaillées des fonctionnalités et user stories
  • Exigences non fonctionnelles : performances, disponibilité, sécurité, évolutivité
  • Interface utilisateur: Conception d’interface et flux d’interaction
  • Modèle de données: Structures de données et relations
  • Critères d’acceptation:Recette fonctionnelle, recette de performance, recette de sécurité

Principes de rédaction du PRD

  • Clair et explicite : utilisez un langage clair et évitez l’ambiguïté
  • Exécutable:L’IA peut générer directement du code à partir du PRD
  • Testable: chaque exigence a des critères d’acceptation clairs
  • Traçable : les exigences peuvent être rattachées aux objectifs commerciaux

Spécification API (OpenAPI)

Avantages de la spécification OpenAPI

  • Standardisation: Norme industrielle avec une prise en charge logicielle complète
  • Exécutable:L’IA peut générer directement du code à partir d’OpenAPI
  • Testable: Peut générer automatiquement des cas de test API
  • Documentable:Génération automatique de la documentation API

Exemple de spécification API

openapi: 3.0.0
info:
  title: Task Management API
  version: 1.0.0
paths:
  /api/tasks:
    get:
      summary: Obtenir la liste des tâches
      parameters:
        - name: status
          in: query
          schema:
            type: string
            enum: [pending, in-progress, completed]
      responses:
        '200':
          description: Succès
          content:
            application/json:
              schema:
                type: object
                properties:
                  tasks:
                    type: array
                    items:
                      $ref: '#/components/schemas/Task'
    post:
      summary: Créer une tâche
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTaskRequest'
      responses:
        '201':
          description: Création réussie
components:
  schemas:
    Task:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        status:
          type: string
          enum: [pending, in-progress, completed]

UI Spec

Contenu de la UI Spec

  • Mise en page: structure de la page, emplacement des composants
  • Conception de composants: types de composants, styles, interactions
  • Flux d'interaction: flux des opérations utilisateur, changements d’état
  • Conception responsive:Adaptation à différentes tailles d’écran

Astuces pour rédiger des UI Specs

  • • Utiliser Figma ou des outils similaires pour concevoir les interfaces
  • • Décrire en détail l’état et les interactions de chaque composant
  • • Utiliser des outils d’IA (comme v0) pour générer du code à partir de descriptions
  • • Fournir des systèmes de design et des bibliothèques de composants

Cas pratique : flux complet du PRD au code

Étape 1 : Rédiger le PRD

Définir les objectifs du produit, les exigences fonctionnelles et les exigences non fonctionnelles

Étape 2 : Rédiger la spécification de l’API

Utilisez la spécification OpenAPI pour définir les interfaces API, et l’IA peut générer le code API à partir de la Spec

Étape 3 : rédiger la spécification UI

Décrivez en détail la conception de l’interface et utilisez des outils comme v0 pour générer le code UI

Étape 4 : utiliser Cursor pour générer du code

Fournissez le PRD, l’API Spec et le UI Spec à Cursor Agent pour générer le code complet

Étape 5 : tests et optimisation

Rédigez des cas de test basés sur la Spec afin de vérifier si la fonctionnalité répond aux exigences de la Spec

Décomposition WBS

La WBS (Work Breakdown Structure) décompose les grandes tâches en petites tâches exécutables, clarifie les dépendances entre les tâches et facilite la gestion de projet ainsi que le suivi de l’avancement.

Principes de décomposition des tâches

Contrôle de la granularité

  • Règle des 2 à 4 heures: chaque tâche doit être terminée en 2 à 4 heures
  • Testabilité: chaque tâche a des critères d’acceptation clairs
  • Indépendance: Réduire autant que possible les dépendances entre les tâches
  • Estimable : peut estimer avec précision le temps d’achèvement

Dépendances

  • Identifier les dépendances:Clarifier les dépendances entre les tâches
  • Chemin critique: Identifier le chemin critique du projet et le terminer en priorité
  • Tâches parallèles : identifier les tâches pouvant être exécutées en parallèle
  • Gestion des dépendances: utiliser des outils (comme GitHub Projects) pour gérer les dépendances

Estimation du temps

Estimation en trois points

Formule d’estimation :(temps optimiste + 4×temps le plus probable + temps pessimiste) / 6

Exemple : optimiste 2 heures, très probable 4 heures, pessimiste 8 heures → estimation = (2 + 4×4 + 8) / 6 = 4,3 heures

Estimation par analogie

Référez-vous au temps d’achèvement de tâches similaires et ajustez en fonction de la complexité de la tâche actuelle.

Estimation assistée par l’IA

Utiliser des outils d’IA pour analyser la complexité des tâches et combiner les données historiques afin d’estimer le temps.

Répartition des ressources

Répartition du personnel

  • • Répartir les tâches en fonction des compétences et de l’expérience
  • • Tenir compte de la charge de travail des personnes
  • • Veiller à disposer de personnel de secours pour les tâches critiques

Attribution des outils

  • • S’assurer de disposer de suffisamment d’outils et de ressources de développement
  • • Tenir compte de la licence et du coût de l’outil
  • • Préparer une solution de secours

Répartition du temps

  • • Tenir compte de la date limite du projet
  • • Prévoir une marge de temps pour faire face aux risques
  • • Équilibrer les tâches parallèles et les tâches séquentielles

Cas pratique : exemple de décomposition WBS

1. Préparation du projet (4 heures)
1.1 Configuration de l’environnement (2 heures)
1.2 Initialisation du projet (2 heures)
2. Conception de la base de données (6 heures)
2.1 Conception du modèle de données (3 heures)
2.2 Création des tables de base de données (2 heures)
2.3 Script de migration des données (1 heure)
3. Développement d’API backend (16 heures)
3.1 API d’authentification utilisateur (4 heures, dépend de 2.1)
3.2 API CRUD des tâches (8 heures, dépend de 2.1)
3.3 API de statistiques des données (4 heures, dépend de 2.1)
4. Développement de l’interface utilisateur front-end (12 heures)
4.1 Page de connexion (2 heures)
4.2 Page de liste des tâches (4 heures, dépend de 3.2)
4.3 Page de détails de la tâche (3 heures, dépend de 3.2)
4.4 Page de statistiques des données (3 heures, dépend de 3.3)
5. Tests et déploiement (8 heures)
5.1 Tests unitaires (4 heures)
5.2 Tests d’intégration (2 heures)
5.3 Déploiement (2 heures)

Chemin critique: 1 → 2.1 → 3.2 → 4.2 → 5 (durée totale d’environ 34 heures)

Définition du DoD

Le DoD (Definition of Done) définit les critères d’achèvement des tâches, garantit la qualité des livrables et évite les situations où « cela semble terminé, mais ne l’est pas vraiment ».

Normes de qualité

Qualité du code

  • • Passer les vérifications ESLint, sans avertissements majeurs
  • • Le code est conforme aux normes de l’équipe
  • • Le code a passé la revue de code
  • • Aucun bug connu

Couverture des tests

  • • Couverture des tests unitaires >80%
  • • Les fonctionnalités clés disposent de tests d’intégration
  • • Tous les tests ont réussi
  • • La qualité du code de test répond aux exigences

Documentation complète

  • • La documentation de l’API est complète
  • • Les commentaires du code sont suffisants
  • • Mise à jour du manuel utilisateur
  • • Mise à jour du journal des modifications

Indicateurs de performance

  • • Temps de chargement de la page <2 secondes
  • • Temps de réponse de l’API <500 ms
  • • Optimisation des requêtes de base de données
  • • Aucune fuite de mémoire

Critères d’acceptation

Acceptation des fonctionnalités

  • • Implémenter toutes les fonctionnalités selon la Spec
  • • Les critères d’acceptation des user stories sont satisfaits
  • • La gestion des cas limites est correcte
  • • Gestion des erreurs renforcée

Recette des performances

  • • Les indicateurs de performance atteignent les exigences
  • • Test de charge réussi
  • • Test de résistance réussi
  • • La surveillance des performances est normale

Tests d’acceptation de sécurité

  • • Grâce à une analyse de sécurité
  • • Aucune vulnérabilité critique
  • • Le chiffrement des données est correct
  • • Contrôle des autorisations correct

Cas pratique : checklist DoD

Le code a été validé dans Git et a passé les vérifications CI/CD
Le code a passé les vérifications ESLint, sans avertissements graves
Couverture des tests unitaires > 80 %, tous les tests réussis
Le code a passé la revue de code et les commentaires de revue ont été traités
La fonctionnalité a été testée et répond aux critères d’acceptation
Les tests de performance ont réussi, les indicateurs atteignent les objectifs
Analyse de sécurité réussie, aucune vulnérabilité critique
La documentation a été mise à jour, et la documentation API ainsi que le manuel utilisateur sont complets
Déployé dans l'environnement de test, UAT réussi
Accepté par le chef de produit, prêt à être publié

Résultats d’apprentissage

À la fin de ce chapitre, vous pourrez :

  • 1Maîtriser les méthodes de clarification des besoins (Reverse Interview, user stories, priorisation) et être capable de découvrir les besoins réels
  • 2Comprendre les pratiques d’ingénierie du développement piloté par les spécifications et être capable de rédiger des PRD, des API Specs et des UI Specs clairs
  • 3Maîtrisez la méthode de décomposition WBS et sachez découper raisonnablement les tâches, estimer le temps et allouer les ressources
  • 4Comprendre les normes de qualité du DoD, définir des critères d’acceptation et garantir la qualité de livraison
  • 5Dispose de capacités de gestion de projet et de contrôle qualité de niveau entreprise, permettant d’assurer la livraison réussie des projets