Chapitre 3

Projet pour les professionnels

Convient aux professionnels souhaitant améliorer leur efficacité au travail. Grâce aux processus de développement en entreprise et à la refactorisation de systèmes hérités, vous maîtriserez l’utilisation pratique des outils d’IA en environnement professionnel et comprendrez l’importance de la collaboration en équipe et de la gestion des connaissances.

Projet 1 : développement d'outils internes

Aperçu du projet

1
Objectifs du projet:Développer un outil interne de tableau de bord de données pour aider l’équipe à consulter et analyser rapidement les données métier et améliorer l’efficacité de la prise de décision
2
Pile d’outils:piloté par Spec + Cursor (développement) + Skill (réutilisation des connaissances)
3
Estimation du temps: 20 à 30 heures (incluant la clarification des besoins, la conception, le développement, les tests)
4
Niveau de difficulté : intermédiaire à avancé (une expérience du développement d’entreprise est requise)

Analyse du choix technique : pourquoi choisir Spec-driven + Cursor + Skill ?

Piloté par la spec : le pont entre les exigences et le code

  • Clarification des besoins:Grâce au Reverse Interview et aux user stories, s'assurer de bien comprendre les besoins réels
  • Rédaction du PRD : clarifier les utilisateurs cibles, les exigences fonctionnelles et les exigences non fonctionnelles
  • API Spec: Avec la spécification OpenAPI, l’IA peut générer du code directement
  • UI Spec:Décrire en détail l’interface et les interactions pour réduire les retours en arrière
  • Décomposition WBS: Décomposer les grandes tâches en petites tâches réalisables
  • Définition du DoD: Clarifier les critères d’achèvement afin de garantir la qualité

Cursor : développement assisté par IA

  • Du cahier des charges au code:Générer automatiquement la structure du code à partir du Spec
  • Mise en œuvre des fonctionnalités: utiliser le mode Agent pour implémenter des fonctionnalités complexes
  • Optimisation du code:appliquer les meilleures pratiques et les modèles de conception
  • Correction de bugs:Identifier et corriger rapidement les problèmes

Compétence : réutilisation des connaissances et collaboration en équipe

  • Capitalisation des connaissances: Regroupez les bonnes pratiques sous forme de Skill pour un partage en équipe
  • Réutilisation rapide:Utilisez Skill pour implémenter rapidement des fonctionnalités courantes
  • Garantie de cohérence:utiliser Skill pour garantir la cohérence du style et des modèles de code
  • Collaboration d’équipe: La bibliothèque Skill devient un actif de connaissance de l’équipe

Synergie des outils: Le développement piloté par la Spec garantit des exigences claires et une bonne orientation du développement, Cursor prend en charge une implémentation efficace, et Skill est responsable de la réutilisation des connaissances et de la collaboration en équipe. Cette combinaison permet un processus de développement complet de niveau entreprise, de l’exigence à la livraison, en garantissant à la fois l’efficacité du développement, la qualité du code et la collaboration d’équipe.

Processus de développement complet

Phase 1 : clarification des besoins (3 à 4 heures)

Technique d’entretien inversé

  • • Demandez « pourquoi » plutôt que « quoi » : comprendre les raisons derrière les vrais besoins
  • • Demander « quand » : comprendre les scénarios d’utilisation et la fréquence
  • • Demander « qui » : comprendre les utilisateurs cibles et les utilisateurs
  • • Demander « et si... ? » : explorer les cas limites et la gestion des exceptions

Rédaction d’histoires utilisateur

"En tant que chef de produit,
Je veux pouvoir consulter rapidement les données de vente,
Afin de suivre en temps opportun l’état de l’activité et de prendre des décisions.

Critères d'acceptation :
- Peut consulter les ventes du jour/de la semaine/de ce mois
- Permet de filtrer les données par catégorie de produit
- Le délai de mise à jour des données ne dépasse pas 5 minutes"

Phase 2 : rédaction du Spec (4 à 6 heures)

Rédaction du PRD

  • • Utilisateurs cibles : chefs de produit, analystes métier
  • • Exigences fonctionnelles : affichage des données, filtrage, export
  • • Exigences non fonctionnelles : performance (temps de chargement <2 secondes), disponibilité (99,9 %), sécurité

API Spec(OpenAPI)

GET /api/dashboard/sales Query Parameters: - startDate: string (ISO date) - endDate: string (ISO date) - category: string (optional) Response: { totalSales: number, salesByCategory: Array, trend: Array }

UI Spec: décrivez en détail la disposition de l’interface, le flux d’interaction et les changements d’état

Phase 3 : Décomposition WBS (2 à 3 heures)

Principes de décomposition des tâches

  • Contrôle de la granularité: chaque tâche se termine en 2 à 4 heures
  • Dépendances: Définir clairement les dépendances entre les tâches
  • Testabilité: chaque tâche a des critères d’acceptation clairs

Exemple de WBS

1. Conception de base de données (2 heures)
1.1 Concevoir le modèle de données
1.2 Créer les tables de base de données
2. Développement de l’API backend (8 heures)
2.1 Implémenter l’API de requête de données (dépend de 1)
2.2 Implémenter l’API de filtrage des données
3. Développement de l’interface utilisateur front-end (6 heures)
3.1 Créer le composant du tableau de bord (dépend de 2.1)
3.2 Implémenter la fonction de filtrage

Phase 4 : Définition du DoD (1 heure)

Normes de qualité

  • • Qualité du code : vérifié par ESLint, aucun avertissement grave
  • • Couverture des tests : couverture des tests unitaires >80%
  • • Documentation complète : la documentation API et le manuel utilisateur sont complets

Critères d’acceptation

  • • Validation fonctionnelle : toutes les fonctionnalités sont implémentées selon la Spec et les tests sont réussis
  • • Acceptation des performances : temps de chargement de la page <2 secondes, temps de réponse de l’API <500 ms
  • • Validation sécurité : scans de sécurité réussis, sans vulnérabilités à haut risque

Phase 5 : mise en œuvre du développement (8 à 12 heures)

1. Utiliser Cursor Agent pour générer la structure du projet à partir de la Spec

2. Utiliser Skill pour implémenter rapidement des fonctionnalités courantes :

  • • Utiliser "Data Query Skill" pour implémenter la logique de requête API
  • • Utiliser la "compétence de composant de graphique" pour créer des composants de visualisation
  • • Utiliser le « Error Handling Skill » pour uniformiser la gestion des erreurs

3. Utiliser Cursor Agent pour implémenter une logique métier complexe

4. Revue de code et optimisation

5. Rédiger des cas de test

Phase 6 : test et livraison (2-3 heures)

1. Exécuter les cas de test et corriger les bugs

2. Test d’acceptation utilisateur (UAT)

3. Déployer en production

4. Rédiger des manuels utilisateur et des guides d’utilisation

5. Formation de l’équipe et partage des connaissances

Collaboration d’équipe et gestion des connaissances

Construction de la bibliothèque de compétences

  • Créer une compétence: Encapsuler les fonctions courantes sous forme de Skills, comme « Data Query Skill » et « Chart Component Skill »
  • Documentation Skill: rédiger des instructions d'utilisation et des exemples pour chaque Skill
  • Gestion des versions de Skill: Utiliser Git pour gérer les versions de Skill, avec prise en charge du retour à une version précédente
  • Partage de compétences: partager la bibliothèque de compétences au sein de l’équipe pour améliorer la réutilisation

Capitalisation des connaissances

  • Document des bonnes pratiques: Consigner les meilleures pratiques tout au long du processus de développement
  • Solution au problème: Consigner les problèmes courants et les solutions
  • Compte rendu de revue de code: consigner les problèmes détectés lors de la revue de code et les suggestions d’amélioration
  • Rétrospective du projet: à la fin du projet, effectuer une rétrospective et résumer les enseignements tirés

Liste de contrôle du projet

La clarification des exigences est terminée, et les user stories ainsi que les critères d’acceptation sont clairs
PRD, API Spec et UI Spec sont complets, et la revue d’équipe a été validée
La décomposition du WBS est terminée, la granularité des tâches est appropriée et les dépendances sont claires
La DoD définit la définition de terminé, avec des normes de qualité et des critères d’acceptation clairs
Développement terminé, le code répond aux exigences de la Spec, la revue de code a été validée
Tests réussis, couverture conforme, UAT validé
Mise à jour de la bibliothèque de Skills, avec documentation des nouveaux Skills ajoutés
La documentation du projet est complète, et le manuel utilisateur ainsi que le guide d’utilisation ont été rédigés

Projet 2 : refonte d’un système existant

Aperçu du projet

1
Objectifs du projet:Refactoriser l’ancien système PHP en un système Node.js moderne afin d’améliorer les performances, la maintenabilité et l’évolutivité
2
Pile d’outils:Windsurf(analyse de base de code)+ Cursor Agent(conception d'architecture)+ Fabric(optimisation du code)
3
Estimation du temps: 40 à 60 heures (y compris l’analyse, la conception, la refactorisation et les tests)
4
Niveau de difficulté: Avancé (nécessite de l’expérience en architecture système et en refactoring)

Analyse du choix technologique : pourquoi choisir Windsurf + Cursor Agent + Fabric ?

Windsurf : analyse de grands codebases

  • Technologie Fast Context: Comprendre rapidement la structure et la logique d’une grande base de code
  • Questions-réponses sur la base de code:Comprendre les fonctionnalités et les dépendances du code grâce à des questions-réponses
  • Analyse de l'architecture: Identifier les modèles d'architecture système et les problèmes de conception
  • Analyse des dépendances: Analyser les dépendances entre les modules

Cursor Agent : conception d’architecture et refactorisation

  • Conception d’architecture : Concevoir une nouvelle architecture sur la base des résultats de l’analyse
  • Migration de code: Migrer l’ancien code vers une nouvelle architecture
  • Mise en œuvre des fonctionnalités: implémenter de nouvelles fonctionnalités ou améliorer les fonctionnalités existantes
  • Génération de tests:Générer des cas de test pour s’assurer que la fonctionnalité est correcte

Fabric : optimisation de la qualité du code

  • Revue de code: Examiner la qualité du code refactorisé
  • Optimisation des performances:Optimiser les performances du code et améliorer l'efficacité du système
  • Bonnes pratiques:Appliquer les meilleures pratiques modernes de développement
  • Audit de sécurité: Vérifier les vulnérabilités et les risques de sécurité

Synergie des outils: Windsurf est chargé de comprendre le système existant, Cursor Agent de concevoir et d’implémenter le nouveau système, et Fabric d’optimiser la qualité du code. Cette combinaison permet un processus de refactoring complet, de l’analyse au refactoring puis à l’optimisation, garantissant à la fois la justesse du refactoring et la qualité du nouveau système.

Stratégie de refactorisation

Stratégie 1 : analyse de la base de code (avec Windsurf Fast Context)

1. Utiliser Windsurf pour analyser l’ancienne base de code :

  • • Comprendre l’architecture globale du système et la répartition des modules
  • • Identifier la logique métier principale et les flux de données
  • • Analyser la structure de la base de données et le modèle de données
  • • Identifier la dette technique et les problèmes de conception

2. Générer le rapport d’analyse du système :

  • • Schéma d’architecture : modules du système et dépendances
  • • Liste des fonctionnalités : liste de tous les modules de fonctionnalités
  • • Modèle de données : structure et relations des tables de base de données
  • • Liste des problèmes : dette technique et points de risque

Stratégie 2 : conception d’architecture (utiliser Cursor Agent)

1. Utilisez Cursor Agent pour concevoir une nouvelle architecture :

"Concevoir une nouvelle architecture Node.js à partir des résultats d’analyse de l’ancien système PHP :
- Adopter une architecture de microservices, découpée par modules métier
- Utiliser Express.js comme framework Web
- Utiliser Prisma comme ORM
- Utiliser PostgreSQL comme base de données
- Implémenter la conception d’une API RESTful
- Ajouter la documentation API (Swagger)
- Implémenter l’authentification et l’autorisation (JWT)"

2. Concevoir un plan de migration des données :

  • • Mappage des modèles de données : des modèles PHP vers les modèles Node.js
  • • Script de migration des données : migrer les données historiques
  • • Validation des données : garantir l’intégrité des données

Stratégie 3 : refactorisation progressive (avec Fabric Patterns)

1. Adopter le modèle Strangler Fig :

  • • Remplacer progressivement les anciennes fonctionnalités au lieu de tout réécrire d’un coup
  • • Faire fonctionner les anciens et les nouveaux systèmes en parallèle, puis transférer progressivement le trafic
  • • Réduire les risques de refactorisation et garantir la continuité de l'activité

2. Optimiser le code avec Fabric Patterns :

  • • Modèles de conception d’application
  • • Modèle d’optimisation des performances d’application
  • • Pattern des meilleures pratiques de sécurité des applications

Stratégie 4 : couverture des tests (méthode TDD)

1. Écrivez d’abord les tests, puis l’implémentation :

  • • Rédiger des cas de test pour chaque fonctionnalité
  • • S’assurer que les nouvelles fonctionnalités se comportent de manière cohérente avec les anciennes
  • • Utiliser le développement piloté par les tests (TDD)

2. Types de tests :

  • • Tests unitaires : tester des fonctions et modules individuels
  • • Tests d’intégration : tester l’intégration entre les modules
  • • Tests de bout en bout : tester le flux métier complet

Analyse des risques et stratégies d'atténuation

Risque 1 : interruption des activités

Stratégie de réponse: Adopter une refactorisation progressive, faire fonctionner les anciens et nouveaux systèmes en parallèle, puis basculer progressivement le trafic. Mettre en place un mécanisme de retour arrière et revenir immédiatement en arrière en cas de problème.

Risque 2 : échec de la migration des données

Stratégie de réponse:Rédigez des scripts détaillés de migration des données et testez-les de manière approfondie. Mettez en place des mécanismes de validation des données pour garantir l’intégrité des données. Conservez des sauvegardes des anciennes données.

Risque 3 : baisse des performances

Stratégie de réponse: Effectuer des tests de performance pour identifier les goulots d’étranglement. Utiliser Fabric pour optimiser les performances du code. Mettre en place une surveillance des performances afin de détecter rapidement les problèmes.

Risque 4 : fonctionnalités manquantes

Stratégie de réponse:Analyser en détail les fonctionnalités de l’ancien système et établir une liste des fonctionnalités. Utiliser Windsurf pour ne rien oublier. Effectuer des tests fonctionnels approfondis.

Liste de contrôle du projet

L’analyse du système existant est terminée, avec des schémas d’architecture et une liste complète des fonctionnalités
La nouvelle architecture est terminée, les choix techniques sont raisonnables et la revue d’équipe a été approuvée
Le plan de migration des données est terminé, et les tests des scripts ont réussi
Le plan de refactorisation est terminé, avec une stratégie de refactorisation progressive
Couverture des tests terminée, tous les tests fonctionnels ont réussi
Les tests de performance sont passés, les indicateurs de performance sont atteints
Le plan de retour arrière est prêt et un rollback peut être effectué rapidement.
Le nouveau système a été déployé, fonctionne de manière stable et les opérations métier sont normales

Résultats d’apprentissage

À la fin de ce chapitre, vous pourrez :

  • 1Maîtriser le processus complet du développement d’entreprise (clarification des besoins → rédaction de la Spec → découpage WBS → définition du DoD → développement → tests → livraison)
  • 2Comprendre la méthodologie du développement piloté par les spécifications et savoir rédiger des PRD, des API Specs et des UI Specs clairs
  • 3Maîtriser les méthodes de collaboration d’équipe et de gestion des connaissances, être capable de constituer une bibliothèque de compétences et de capitaliser les bonnes pratiques
  • 4Comprendre les stratégies et les risques de la refactorisation des systèmes legacy, et être capable d’élaborer un plan de refactorisation raisonnable
  • 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