JavaRush /Blog Java /Random-FR /Tout ce que vous devez savoir sur les méthodologies de dé...

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 l’informatique doit parler le langage de l’optimisation, de la planification et du calcul. Tout ce que vous devez savoir sur les méthodologies de développement logiciel : tendances, principes et pièges pour les débutants - 1Comprendre les concepts de gestion offre un avantage majeur à la fois aux employeurs et aux développeurs et contribue à faire passer la collaboration au niveau supérieur.

Note pour les débutants : modèles, méthodologies et confusion générale

Une précision importante pour commencer : il existe des modèles distincts pour le développement de logiciels et des méthodologies distinctes pour ce développement même. Les modèles prédisent le comportement futur d'un système. Des méthodologies sont nécessaires pour que le système fonctionne comme il le doit. Confondre les modèles et les méthodologies de développement logiciel est la tâche sacrée de tout débutant en informatique, cela n'est donc pas considéré comme une grave erreur. Et pourtant, les modèles sont une cascade classique en cascade , avec sa linéarité, sa définition d'objectifs clairs pour chaque étape et son contrôle strict des délais. Les modèles sont Spiral , et se concentrent sur l'identification précoce et l'atténuation des risques du projet. Le développement en spirale commence à petite échelle, résolvant d’abord des problèmes locaux, puis des problèmes plus complexes. Le modèle final est IID , qui divise le cycle de vie du projet en une séquence d'itérations, dont chacune ressemble à un « mini-projet ». En général, un modèle est quelque chose qui décrit le 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 la carotte et le bâton du développement moderne, nécessaires pour contrôler chaque maillon du processus de développement. Ils sont choisis en fonction de l'orientation du projet, de son budget et du timing du produit final. De plus, les méthodologies peuvent être sélectionnées 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. Examinons les méthodologies les plus populaires.

1. Méthodologie Scrum

Scrum est une méthode de gestion de projet agile . Il est basé sur des « sprints » – des itérations courtes, strictement limitées dans le temps (généralement 2 à 4 semaines). La durée des réunions est réduite au minimum, mais leur fréquence augmente. Chaque sprint est constitué d'une liste de tâches jusqu'à la fin de l'itération, et chacune d'elles a son propre « poids ». Au cours des réunions, l'équipe discute de qui a fait quoi, de ce qu'elle va faire et des problèmes rencontrés. Scrum utilise un journal de sprint pour la planification. Dans cette approche, un Scrum master apparaît souvent dans l'équipe, qui établit le travail continu de toute l'équipe, créant des conditions confortables pour cela. Également sur le projet, apparaît le rôle de Product Owner - le responsable du développement, la personne qui suit le produit et fait le lien principal entre la demande du client et le résultat de l'équipe.

Avantages:

  • lancement rapide du projet avec le budget le plus bas possible ;
  • suivi quotidien de l'avancement des travaux, démonstrations fréquentes du projet ;
  • la capacité d’apporter des modifications au fur et à mesure de l’avancement du projet.

Inconvénients :

  • difficultés à conclure des contrats en raison de l'absence de budget fixe ;
  • ne travaille pas avec de faibles qualifications de l'équipe, des délais de travail ou un budget sous-estimés ;
  • la possibilité d'apporter continuellement des modifications entre les sprints peut créer de la confusion.

À qui convient-il :

Ce système convient aux projets pouvant accueillir jusqu'à dix personnes - indépendantes ou au sein de grandes entreprises. Ceci est pratique si l'équipe a une grande quantité de travail et un long cycle de vie, ce qui l'oblige à changer et à s'adapter aux nouvelles conditions du marché.

2. Méthodologie Kanban

La fonctionnalité la plus importante de Kanban est la visualisation du cycle de vie du projet . Des colonnes sont créées pour effectuer des tâches soumises individuellement. Les colonnes sont marquées avec des marqueurs comme : À faire, En cours, Révision du code, En test, Terminé (les noms des colonnes, bien sûr, peuvent changer). L'objectif de chaque membre de l'équipe est de réduire le nombre de tâches dans la première colonne. L'approche Kanban est visuelle et vous aide à comprendre où se situe le problème. La structure Kanban n'est pas déterminée de manière définitive et irrévocable : en fonction des spécificités du projet, des colonnes improvisées peuvent être ajoutées. Par exemple, certaines équipes utilisent un système dans lequel elles doivent définir des critères de préparation d'une tâche avant de l'exécuter. Ensuite, deux colonnes sont ajoutées - spécifier (préciser les paramètres) et exécuter (se mettre au travail).

Avantages:

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

Inconvénients :

  • ne travaille pas avec des équipes de plus de cinq personnes ;
  • non destiné à une planification à long terme ;
  • ne convient pas pour travailler en équipe sans motivation. Dans Kanban, aucun délai n'est fixé pour chaque tâche, et la méthodologie ne prévoit pas de pénalités en cas de retard.

À qui convient-il :

Kanban fonctionne très bien dans les entreprises où l'équipe est motivée pour se développer et obtenir des résultats. Comme cela est déjà évident, une petite équipe. Peut-être même une division ou une partie d’une équipe.

3. Méthodologie RUP

La méthodologie RUP utilise un modèle de développement itératif. À la fin de chaque itération (qui prend 2 à 6 semaines), l'équipe doit atteindre les objectifs prévus et disposer d'une version temporaire mais fonctionnelle du projet. RUP consiste à diviser le projet en quatre phases , dans chacune desquelles des travaux sont effectués sur une nouvelle génération du produit : la phase de lancement du projet, le raffinement, la construction et la mise en œuvre. A la fin de la phase, un marqueur d'achèvement d'étape (Project Milestone) est inscrit. Le Project Milestone peut être considéré comme le moment où l'équipe évalue les résultats obtenus. En conséquence, la méthodologie implique que les principales fonctionnalités soient publiées dans la première phase et que les ajouts soient ajoutés dans les phases suivantes.

Avantages:

  • vous permet de faire face aux tâches changeantes provenant à la fois du client et de celles qui surviennent au cours du travail ;
  • assure l’amélioration continue du produit. Au cours des itérations, la conception peut être scrutée ;
  • vous permet d'identifier et d'éliminer les risques dès les premières étapes du travail, ainsi que de contrôler efficacement la qualité du développement.

Inconvénients :

  • une méthode assez complexe et difficile à mettre en œuvre avec une petite équipe ou une petite entreprise ;
  • dépendance à l'égard de la capacité des experts à définir des tâches ;
  • nécessite une documentation excessive des exigences.

À qui convient-il :

Grands projets avec des exigences et des risques clairement définis, lorsque le produit doit être publié le plus rapidement possible. Même au détriment de la fonctionnalité, afin d'occuper rapidement sa niche et ensuite seulement d'affiner les nuances.

De nombreuses méthodologies, une tendance

En plus des indéniablement populaires Scrum et Kanban, qui reposent sur les principes de flexibilité sous le nom général « Agile » , ainsi que du tenace itératif RUP, les entreprises travaillent avec de nombreuses variantes de méthodologies. Certaines personnes préfèrent une programmation extrême et la prise de décisions les plus rapides et les plus simples, d'autres préfèrent le développement piloté par les tests et d'autres encore préfèrent le développement rapide d'applications (RAD). Dans le même temps, la tendance principale et inconditionnelle est l'utilisation simultanée de plusieurs méthodologies . Ou même combiner des modèles et des méthodologies dans un système de contrôle unique. Tout ce que vous devez savoir sur les méthodologies de développement logiciel : tendances, principes et pièges pour les débutants - 2Les entreprises modernes s'efforcent d'éliminer les barrières bureaucratiques et de créer une atmosphère de travail d'équipe général au sein de l'organisation, sans transférer les responsabilités entre les départements et les blocs. Selon le rapport Scrumalliance , 70 % des entreprises informatiques utilisent Scrum. Parmi eux figurent des géants tels que Google, Amazon, Salesforce, Microsoft, Adobe. Les startups et les jeunes projets sont plus enclins au Kanban, mais il est également utilisé par Toyota et, par exemple, les joueurs de Wargaming. Les sociétés plus modestes de la CEI Prom.ua, Bigl.ua, Kabanchik.ua utilisent simultanément les méthodologies Scrum et Kanban, mais pour des tâches différentes. Scrum - comme outil de planification, Kanban - pour suivre l'avancement des travaux. Quant au RUP, il est le plus souvent pratiqué par des entreprises occidentales comptant entre 50 et 200 salariés et un chiffre d'affaires compris entre 1 et 10 millions de dollars. Mais en même temps, IBM a modifié RUP pour se rapprocher des principes Agile en lançant la méthodologie OpenUP - « RUP, uniquement agile ». Cette même agilité Agile tant vantée régit désormais le paysage informatique . Ce n’est pas seulement une mode de nos jours : c’est toujours innovant et cela fonctionne réellement dans de nombreuses grandes entreprises. Agile est utilisé dans la Silicon Valley et est utilisé par Facebook et Uber.

Conclusion

Chaque projet possède sa propre méthodologie de développement logiciel, en fonction de l'équipe, du financement, du calendrier et des exigences du client. Il n’existe pas de technologie de gestion universelle : même la très populaire méthode Agile ne peut pas fournir la meilleure approche du processus de développement. La méthodologie est donc choisie avec soin, et parfois même de manière fondamentale. À tel point que vous pouvez l’utiliser pour tirer des conclusions sur l’entreprise elle-même ou sur ses clients. Les méthodologies sont mixtes, complétées par des modèles et adaptées à elles-mêmes. À tel point qu’ils donnent lieu à de nouvelles approches. Même si en fin de compte, le domaine de la gestion reste entre les mains de Scrum et Kanban, avec des inclusions inattendues du modèle Waterfall ou du RUP itératif.
Quoi d'autre à lire
Sites Internet: Livres:
  • Andrew Stelman, Jennifer Greene : « Apprentissage agile » ;
  • Per Kroll, Bruce MacIsaac : « Agilité et discipline simplifiées : pratiques d'OpenUP et RUP » ;
  • Mike Cohn : Mêlée. Développement agile";
  • Robert K. Martin : « Développement logiciel rapide. Principes, exemples, pratique" ;
  • Markus Hammarberg, Joakim Sundén : « Kanban en action » ;
  • A Jacobson, G. Booch, J. Rumbaugh : « Un processus de développement logiciel unifié ».
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION