CodeGym/Blog Java/Random-FR/Méthodologies de développement logiciel
Auteur
Alexey Yelenevych
Co-Founder at CodeGym

Méthodologies de développement logiciel

Publié dans le groupe Random-FR
membres
Lors de nombreux entretiens, vous serez probablement interrogé sur les méthodologies. Ce n'est pas la question la plus importante ou la plus difficile, mais avoir une feuille de triche serait bien. Dans cet article, nous allons essayer de transmettre ce qu'est une méthodologie de développement et de les comparer. Une méthodologie de développement logiciel est un processus utilisé pour développer un produit particulier, c'est-à-dire qu'il s'agit d'un moyen d'organiser le développement par une équipe de développeurs. Il existe de nombreux modèles de développement différents, chacun définissant sa propre approche. On ne peut pas dire que n'importe lequel d'entre eux devrait être utilisé pour chaque projet. La bonne approche dépend entièrement de la situation. J'ai l'intention d'en examiner trois plus en détail.

Cascade

La méthodologie en cascade est l'une des plus anciennes et implique une mise en œuvre strictement séquentielle : chaque étape doit être terminée avant que la suivante ne commence. En d'autres termes, une transition vers l'étape suivante signifie que le travail de l'étape précédente est terminé à 100 %. L'image montre comment cela fonctionne : d'abord, nous analysons le problème (documenter les tâches, discuter des défis), puis nous concevons (la structure du projet prend forme à ce stade), puis nous codons et testons. Le retour aux étapes précédentes n'est pas autorisé. Cette approche est recommandée pour les petits projets où les exigences sont connues à l'avance et peu susceptibles de changer. Méthodologies de développement logiciel - 2Avantages :
  • Documentation complète et cohérente à chaque étape
  • Facilité d'utilisation
  • Exigences stables
  • Les budgets et délais sont prédéfinis
Désavantages:
  • Une grande quantité de documentation
  • Pas très souple
  • Le client ne peut pas voir une version de démonstration du produit
  • Pas d'option pour reculer

Mêlée

Scrum est une méthodologie de développement logiciel qui divise l'ensemble du processus en itérations. À la fin de chaque interaction, l'équipe est prête à fournir une version de démonstration du produit. L'image montre que l'équipe procède à toutes les étapes de développement en parallèle, ce qui permet d'avoir une partie finie du projet à la fin de chaque itération. Méthodologies de développement logiciel - 3Je vais essayer d'expliquer brièvement l'essence de la méthodologie en utilisant des mots simples, mais il y a beaucoup de terminologie. Je pense que la chose la plus importante est de comprendre l'essence. Vous vous souviendrez de la terminologie avec l'expérience. Tout le développement est divisé en sprints (souvent 2-3 semaines). Il y a un arriéré(liste des tâches) pour toute la période de développement et pour chaque sprint séparé. Chaque tâche a son propre point d'histoire (cote de difficulté). Chaque participant au processus a un rôle :
  • L'équipe scrum est composée des professionnels (développeurs, testeurs, designers) travaillant sur un projet.
  • Le scrum master est la personne qui s'assure que les principes de scrum sont respectés.
  • Le propriétaire du produit est le client.
Cette méthodologie repose sur la communication, il y a donc un grand nombre de réunions :
  • Stand-up – Il s'agit d'une courte réunion, tenue tous les jours, à laquelle participent tous les membres de l'équipe. Chaque participant répond à 3 questions : Qu'ai-je fait ? Que vais-je faire? Et quels sont les problèmes de blocage ?
  • Réunion de planification – Cette réunion se tient au début du sprint. Les tâches qui doivent être effectuées dans le prochain sprint sont identifiées lors de cette réunion.
  • Rétrospective - Cette réunion se tient à la fin du sprint et son but est d'identifier ce qui a été bien fait et ce qui pourrait être amélioré.
Avantages :
  • Le client peut voir les résultats pendant le processus de développement
  • Suivi quotidien du processus de développement
  • Capacité à faire des ajustements pendant le développement
  • Communication établie avec tous les membres de l'équipe
  • Une petite quantité de documentation
Désavantages:
  • Difficile d'évaluer la main-d'œuvre et les autres coûts nécessaires au développement
  • Difficile d'identifier les goulots d'étranglement avant le début du développement
  • La nécessité d'impliquer chacun dans le travail des autres membres de l'équipe.

Kanban

Kanban est une méthode basée sur la visualisation de l'avancement des tâches de l'équipe. L'idée principale est de réduire le nombre de tâches en cours d'exécution (dans la colonne "En cours"). Dans Scrum, l'équipe se concentre sur la réussite des sprints. Dans Kanban, la tâche occupe la place prééminente. C'est bon pour les projets en phase de maintenance, où les fonctionnalités de base ont déjà été implémentées, et où il reste des améliorations et des corrections de bugs minimes. Dans Kanban, les tâches sont assignées individuellement. Une tâche passe par toutes les étapes du tableau, indépendamment des autres tâches, et une fois terminée, elle peut être montrée au client. Un tableau Kanban se compose de colonnes, chacune représentant un processus de développement distinct. Certaines colonnes (par exemple, "En cours" ) limitent le nombre de tâches qu'ils peuvent contenir. Cela aide à trouver rapidement et facilement les zones problématiques dans la répartition des tâches. L'image montre un exemple d'un tel tableau. Le nombre de colonnes et leurs noms peuvent varier. Je vais vous présenter les plus courants : Méthodologies de développement logiciel - 4
  • To Do - La liste des tâches qui doivent être faites
  • En cours - Tâches en cours de traitement
  • Révision du code – Tâches qui sont effectuées et qui ont été soumises pour révision
  • En test – Tâches prêtes pour le test
  • Terminé - Tâches terminées
Avantages :
  • Facilité d'utilisation
  • Visibilité (aide à localiser les goulots d'étranglement, simplifie la compréhension)
  • Forte implication de l'équipe dans le processus lui-même
  • Développement très flexible
Désavantages:
  • Une liste de tâches instable
  • Difficile à appliquer à des projets à long terme
  • Absence de délais stricts

Un dernier mot sur les méthodologies de développement logiciel

Les personnes qui occupent ou aspirent à des postes de direction doivent comprendre à fond les méthodologies de développement de logiciels, mais tout le monde doit comprendre au moins les bases. Les méthodologies font partie intégrante du processus de développement et ne sont pas utilisées uniquement dans la sphère informatique. Merci d'avoir pris le temps de lire mon article. J'espère que cela vous a été utile. J'ai essayé de décrire uniquement les points clés de manière aussi accessible et concise que possible. Par conséquent, cet article n'est pas exhaustif. Je serais heureux d'avoir votre avis à ce sujet et de répondre à vos questions. Tous mes vœux!
Commentaires
  • Populaires
  • Nouveau
  • Anciennes
Tu dois être connecté(e) pour laisser un commentaire
Cette page ne comporte pas encore de commentaires