CodeGym /Blog Java /Random-FR /Tout ce que vous devez savoir sur les méthodologies de dé...
John Squirrels
Niveau 41
San Francisco

Tout ce que vous devez savoir sur les méthodologies de développement logiciel : tendances, principes et pièges pour les débutants

Publié dans le groupe Random-FR
Le développement de logiciels est un processus métier complexe. Cela signifie que les professionnels de l'informatique doivent parler le langage de l'optimisation, de la planification et de l'établissement des coûts. Une compréhension des concepts de gestion donne aux employeurs et aux développeurs un gros avantage et aide à faire passer la collaboration au niveau supérieur. Tout ce que vous devez savoir sur les méthodologies de développement logiciel : tendances, principes et pièges pour les débutants - 1

Attention, débutants ! Modèles, méthodologies et confusion générale

Pour commencer, nous devons apporter une clarification importante : les modèles de développement logiciel et les méthodologies de développement logiciel sont séparés et distincts. Les modèles prédisent le comportement d'un système. Des méthodologies sont nécessaires pour que le système fonctionne comme il se doit. La confusion des modèles et des méthodologies de développement de logiciels est une procédure opérationnelle standard pour tout novice en informatique, ce n'est donc pas considéré comme une grosse erreur. Un exemple de modèle est le modèle classique en cascade , avec sa progression linéaire, sa définition claire des objectifs pour chaque étape et son contrôle strict des délais. Un autre modèle est le modèle en spirale, en mettant l'accent sur la détection précoce et l'atténuation des risques du projet. Le développement en spirale commence petit, résolvant d'abord des problèmes locaux, puis progressant vers des problèmes plus complexes. Enfin, un autre modèle est le développement itératif et incrémental (IID) , dans lequel le cycle de vie du projet est décomposé en une série d'itérations, dont chacune ressemble à un "mini-projet". En général, un modèle est une description du processus de développement logiciel . Mais les méthodologies sont des systèmes de contrôle, d'évaluation et de suivi du travail sur les tâches assignées. Les méthodologies sont le bâton et la carotte de l'ère moderne, nécessaires pour contrôler chaque étape du processus de développement. Ils sont choisis en fonction de l'orientation du projet, de son budget et des délais de réalisation du produit final. De plus, les méthodologies peuvent être choisies en fonction du tempérament du chef de projet et de son équipe. Même en fonction de la philosophie de l'entreprise ou du client. Jetons un coup d'œil aux méthodologies les plus populaires.

1. Mêlée

Scrum est une méthode de gestion de projet agile. Il est basé sur des « sprints », ou itérations courtes, strictement limitées dans le temps (généralement 2 à 4 semaines). Cela minimise la durée des réunions, mais augmente leur fréquence. Chaque sprint consiste en une liste de tâches à accomplir d'ici la fin de l'itération, et chacune d'entre elles a son propre "poids". Au cours des réunions, l'équipe discute de ce que les membres de l'équipe ont fait, de ce qu'ils prévoient de faire et des problèmes qui se posent. Scrum utilise un backlog pour la planification. Dans cette approche, les équipes ont généralement un scrum master. Cette personne aide l'équipe à travailler sans interruption et crée un environnement confortable pour l'équipe. Le projet aura également quelqu'un dans le rôle de propriétaire de produit. Cette personne est le responsable du développement, surveille le produit et agit comme le lien principal entre ce que le client demande et ce que l'équipe produit.

Avantages:

  • capacité à lancer rapidement un projet avec le budget le plus bas possible ;
  • suivi quotidien des progrès, démos de projet fréquentes ;
  • la possibilité de faire des ajustements au cours du projet.

Les inconvénients:

  • difficultés à conclure des contrats en raison de l'absence d'un budget fixe;
  • ne travaille pas pour une équipe inexpérimentée ou lorsque les délais ou le budget sont sous-estimés ;
  • la possibilité de faire constamment des changements entre les sprints peut créer de la confusion.

C'est pour qui?

Un tel système convient à des projets jusqu'à dix personnes, qu'elles soient indépendantes ou qu'elles existent au sein de grandes entreprises. C'est pratique si l'équipe a une grande quantité de travail et un long cycle de vie qui l'oblige à changer et à s'adapter aux nouvelles conditions du marché.

2. Kanban

La caractéristique la plus importante de Kanban est la visualisation du cycle de vie du projet. Des colonnes pour effectuer des éléments de travail sont créées. Les éléments de travail sont abordés individuellement. Les colonnes sont marquées par des statuts tels que : À faire, En cours, Révision du code, En cours de test, Terminé (bien sûr, les noms des colonnes peuvent varier). L'objectif de chaque membre de l'équipe est de réduire le nombre d'éléments de travail dans la première colonne. L'approche de Kanban est intuitive et vous aide à comprendre où se situent les problèmes. La structure de Kanban n'est pas définitivement et irrévocablement fixée : selon les spécificités du projet, vous pouvez ajouter des colonnes improvisées. Par exemple, certaines équipes utilisent un système dans lequel vous devez définir des règles terminées pour un élément de travail avant de l'exécuter. Dans ce cas, deux colonnes sont ajoutées : Spécifier (spécifier les paramètres) et Implémenter (se mettre au travail).

Avantages:

  • flexibilité dans la planification. L'équipe se concentre uniquement sur le travail en cours, la priorité d'une tâche est également définie ;
  • visibilité. Lorsque tous les participants ont accès aux données, les problèmes mondiaux sont plus faciles à repérer ;
  • forte implication dans le processus de développement. La visualisation des processus augmente l'auto-organisation et la maîtrise de soi.

Les inconvénients:

  • ne travaille pas avec des équipes de plus de cinq personnes ;
  • non destiné à une planification à long terme ;
  • ne convient pas à une équipe non motivée. Kanban n'a pas de délais pour chaque élément de travail. La méthodologie ne prévoit pas non plus de sanctions en cas de retard.

C'est pour qui?

Kanban fonctionne très bien dans les entreprises où l'équipe est motivée pour grandir et obtenir des résultats. Cela devrait déjà être évident - c'est pour une petite équipe. Peut-être même un détachement ou une partie d'une équipe.

3. Processus unifié rationnel (RUP)

La méthodologie RUP utilise un modèle de développement itératif. À la fin de chaque itération (qui prend de 2 à 6 semaines), l'équipe doit atteindre les objectifs prévus et obtenir une version fonctionnelle, quoique temporaire, du projet. RUP appelle à diviser le projet en quatre phases . Dans chaque phase, un travail sur la prochaine génération du produit est effectué : conception, élaboration, construction et transition. À la fin d'une phase, un jalon du projet est atteint. Le moment où l'équipe évalue ses résultats peut être considéré comme un jalon du projet. Cela signifie que la méthodologie implique que les fonctionnalités principales sont publiées dans la première phase et que des ajouts sont ajoutés dans les phases suivantes.

Avantages:

  • permet de faire face à l'évolution des tâches, à la fois du client et des changements qui surviennent au cours du travail;
  • assure l'amélioration continue du produit. Lors des itérations, vous pouvez évaluer scrupuleusement le projet ;
  • permet d'identifier et d'éliminer les risques en amont des travaux, ainsi que de contrôler efficacement la qualité du développement.

Les inconvénients:

  • Cette méthodologie est assez complexe et difficile à mettre en place dans une petite équipe ou entreprise ;
  • dépend de la capacité des experts à définir des tâches ;
  • nécessite une documentation excessive des exigences.

C'est pour qui?

Grands projets avec des exigences clairement établies et des risques bien compris, lorsque le produit doit être lancé le plus rapidement possible. Même au détriment de la fonctionnalité, afin d'occuper rapidement votre créneau et d'y apporter la touche finale seulement plus tard.

Il existe de nombreuses méthodologies, mais une tendance

Outre Scrum et Kanban, qui sont indéniablement populaires et basés sur des principes agiles , ainsi que la méthodologie RUP robuste et itérative, les entreprises utilisent de nombreuses variantes de méthodologies. Une entreprise peut être plus proche de la programmation extrême et prendre les décisions les plus rapides et les plus simples. Un autre peut être plus proche du développement piloté par les tests. Un autre encore peut préférer le développement rapide d'applications (RAD). Cela dit, il existe une tendance forte et incontestable à utiliser plusieurs méthodologies simultanément. Ou même combiner des modèles et des méthodologies dans un système de gestion unique. Les entreprises d'aujourd'hui s'efforcent d'éliminer les barrières bureaucratiques et de créer une atmosphère de travail d'équipe unifié au sein de l'organisation, sans déplacer les responsabilités entre les départements et les unités organisationnelles. Selon Scrum Alliance, 70 % des entreprises informatiques utilisent scrum. Parmi eux figurent des géants tels que Google, Amazon, Salesforce, Microsoft et Adobe. Les startups et les jeunes projets sont plus enclins au Kanban, mais Toyota et, par exemple, les joueurs de Wargaming, l'utilisent également. Scrum est un outil de planification, tandis que Kanban sert à suivre les progrès. Quant au RUP, il est le plus souvent utilisé par les entreprises occidentales avec 50 à 200 employés et des revenus de 1 à 10 millions de dollars. Cependant, IBM a modifié le RUP pour se rapprocher des principes agiles, en publiant la méthodologie OpenUP (RUP, mais agile). Cette méthodologie agile tant vantée est désormais le moteur du monde informatique . Ce n'est pas seulement une mode passagère - c'est toujours innovant, et en fait, il est utilisé dans de nombreuses grandes entreprises. Agile est utilisé dans la Silicon Valley. Facebook et Uber l'utilisent.

La ligne du bas

Chaque projet a sa propre méthodologie de développement logiciel, qui dépend de l'équipe, du financement, des délais et des exigences du client. Il n'existe pas de technique de gestion universelle : même la méthodologie agile très populaire ne peut garantir la meilleure approche du processus de développement. En conséquence, les méthodologies sont choisies avec soin, parfois même par principe. A tel point qu'on peut tirer des conclusions sur une entreprise elle-même ou sur ses clients en regardant sa méthodologie. Les méthodologies sont mélangées, complétées par des modèles et adaptées. A tel point qu'elles donnent lieu à de nouvelles approches. Cela dit, le domaine de la gestion reste finalement entre les mains de Scrum et de Kanban, avec des éléments inattendus du modèle en cascade ou de la méthodologie itérative RUP.
Plus de lecture :
Sites Internet: Livres:
  • Andrew Stelman, Jennifer Greene : « Apprentissage agile » ;
  • Per Kroll, Bruce MacIsaac : « L'agilité et la discipline simplifiées : les pratiques d'OpenUP et de RUP » ;
  • Mike Cohn : "Réussir avec Agile : développement logiciel à l'aide de Scrum" ;
  • Robert C. Martin : « Développement logiciel agile : principes, modèles, pratiques » ;
  • Marcus Hammarberg, Joakim Sunden : "Kanban en action" ;
  • I. Jacobson, G. Booch, J. Rumbaugh : "Processus de développement logiciel unifié".
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION