Gestion de projets logiciels

Le modèle de travail d'une entreprise informatique engagée dans le développement de logiciels peut être vu divisé en deux parties:

  • Création de logiciels
  • Gestion de projets logiciels

Un projet est une tâche bien définie, qui est un ensemble de plusieurs opérations effectuées afin d'atteindre un objectif (par exemple, le développement et la livraison de logiciels). Un projet peut être caractérisé comme:

  • Chaque projet peut avoir un objectif unique et distinct.
  • Le projet n'est pas une activité de routine ou des opérations quotidiennes.
  • Le projet est livré avec une heure de début et une heure de fin.
  • Le projet se termine lorsque son objectif est atteint, il s'agit donc d'une phase temporaire dans la vie d'une organisation.
  • Le projet a besoin de ressources adéquates en termes de temps, de main-d’œuvre, de financement, de matériel et de banque de connaissances.

Projet logiciel

Un projet logiciel est la procédure complète de développement logiciel, de la collecte des exigences aux tests et à la maintenance, effectuée selon les méthodologies d'exécution, dans une période de temps spécifiée pour atteindre le produit logiciel prévu.

Besoin de gestion de projet logiciel

Le logiciel est considéré comme un produit intangible. Le développement de logiciels est une sorte de tout nouveau courant dans les affaires mondiales et il y a très peu d'expérience dans la création de produits logiciels. La plupart des logiciels sont conçus sur mesure pour répondre aux exigences du client. Le plus important est que la technologie sous-jacente change et progresse si fréquemment et rapidement que l'expérience d'un produit peut ne pas être appliquée à l'autre. Toutes ces contraintes commerciales et environnementales entraînent des risques dans le développement logiciel, il est donc essentiel de gérer efficacement les projets logiciels.

L'image ci-dessus montre trois contraintes pour les projets logiciels. C'est un élément essentiel de l'organisation logicielle pour fournir un produit de qualité, maintenir le coût dans les limites du budget du client et livrer le projet comme prévu. Plusieurs facteurs, internes et externes, peuvent avoir un impact sur ce triangle à triple contrainte. L'un des trois facteurs peut avoir un impact important sur les deux autres.

Par conséquent, la gestion de projet logiciel est essentielle pour intégrer les exigences des utilisateurs ainsi que les contraintes de budget et de temps.

Chef de projet logiciel

Un chef de projet logiciel est une personne qui assume la responsabilité de l'exécution du projet logiciel. Le chef de projet logiciel est parfaitement conscient de toutes les phases du SDLC que le logiciel passerait. Le chef de projet ne peut jamais s'impliquer directement dans la production du produit final mais il contrôle et gère les activités impliquées dans la production.

Un chef de projet surveille étroitement le processus de développement, prépare et exécute divers plans, organise les ressources nécessaires et adéquates, maintient la communication entre tous les membres de l'équipe afin de résoudre les problèmes de coût, de budget, de ressources, de temps, de qualité et de satisfaction du client.

Voyons quelques responsabilités qu'un chef de projet assume -

Gérer des gens

  • Agir en tant que chef de projet
  • Liaison avec les parties prenantes
  • Gérer les ressources humaines
  • Mettre en place une hiérarchie de reporting, etc.

Gestion de projet

  • Définition et configuration du périmètre du projet
  • Gérer les activités de gestion de projet
  • Suivi des progrès et des performances
  • Analyse des risques à chaque phase
  • Prendre les mesures nécessaires pour éviter ou sortir des problèmes
  • Agir en tant que porte-parole du projet

Activités de gestion de logiciels

La gestion de projet logiciel comprend un certain nombre d'activités, qui comprend la planification du projet, la détermination de la portée du produit logiciel, l'estimation du coût en divers termes, la planification des tâches et des événements et la gestion des ressources. Les activités de gestion de projet peuvent inclure:

  • Project Planning
  • Scope Management
  • Project Estimation

Planification de projet

La planification de projet logiciel est une tâche qui est effectuée avant que la production du logiciel ne démarre réellement. Il est là pour la production de logiciels mais n'implique aucune activité concrète ayant un lien direct avec la production de logiciels; il s'agit plutôt d'un ensemble de processus multiples, ce qui facilite la production de logiciels. La planification du projet peut inclure les éléments suivants:

Gestion de la portée

Il définit la portée du projet; cela inclut toutes les activités, le processus doit être effectué afin de créer un produit logiciel livrable. La gestion de la portée est essentielle car elle crée les limites du projet en définissant clairement ce qui serait fait dans le projet et ce qui ne serait pas fait. Cela rend le projet pour contenir des tâches limitées et quantifiables, qui peuvent facilement être documentées et à son tour évite les dépassements de coûts et de temps.

Lors de la gestion de la portée du projet, il est nécessaire de -

  • Définir la portée
  • Décider de sa vérification et de son contrôle
  • Divisez le projet en plusieurs parties plus petites pour faciliter la gestion.
  • Vérifiez la portée
  • Contrôler le périmètre en intégrant des changements au périmètre

Estimation du projet

Pour une gestion efficace, une estimation précise des différentes mesures est indispensable. Avec une estimation correcte, les gestionnaires peuvent gérer et contrôler le projet de manière plus efficace et efficiente.

L'estimation du projet peut impliquer les éléments suivants:

  • Software size estimation

    La taille du logiciel peut être estimée soit en termes de KLOC (Kilo Line of Code) ou en calculant le nombre de points de fonction dans le logiciel. Les lignes de code dépendent des pratiques de codage et les points de fonction varient selon les besoins de l'utilisateur ou du logiciel.

  • Effort estimation

    Les responsables évaluent les efforts en termes de besoins en personnel et d'heures de travail nécessaires pour produire le logiciel. Pour l'estimation de l'effort, la taille du logiciel doit être connue. Cela peut être dérivé de l'expérience des gestionnaires, les données historiques de l'organisation ou la taille du logiciel peuvent être converties en efforts en utilisant certaines formules standard.

  • Time estimation

    Une fois la taille et les efforts estimés, le temps nécessaire pour produire le logiciel peut être estimé. Les efforts requis sont répartis en sous-catégories selon les spécifications des exigences et l'interdépendance des divers composants du logiciel. Les tâches logicielles sont divisées en tâches, activités ou événements plus petits par Work Breakthrough Structure (WBS). Les tâches sont planifiées au jour le jour ou en mois calendaires.

    La somme du temps requis pour accomplir toutes les tâches en heures ou en jours est le temps total investi pour terminer le projet.

  • Cost estimation

    Cela peut être considéré comme le plus difficile de tous car il dépend de plus d'éléments que n'importe lequel des précédents. Pour estimer le coût du projet, il est nécessaire de considérer -

    • Taille du logiciel
    • Qualité du logiciel
    • Hardware
    • Logiciels ou outils supplémentaires, licences, etc.
    • Personnel qualifié avec des compétences spécifiques à la tâche
    • Voyage impliqué
    • Communication
    • Formation et accompagnement

Techniques d'estimation de projet

Nous avons discuté de divers paramètres impliquant l'estimation du projet tels que la taille, l'effort, le temps et le coût.

Le chef de projet peut estimer les facteurs énumérés en utilisant deux techniques largement reconnues -

Technique de décomposition

Cette technique suppose le logiciel comme un produit de diverses compositions.

Il existe deux modèles principaux -

  • Line of Code L'estimation est faite au nom du nombre de lignes de codes dans le produit logiciel.
  • Function Points L'estimation est effectuée au nom du nombre de points de fonction dans le produit logiciel.

Technique d'estimation empirique

Cette technique utilise des formules dérivées empiriquement pour faire des estimations. Ces formules sont basées sur les LOC ou les PF.

  • Putnam Model

    Ce modèle est fait par Lawrence H. Putnam, qui est basé sur la distribution de fréquence de Norden (courbe de Rayleigh). Le modèle Putnam cartographie le temps et les efforts requis avec la taille du logiciel.

  • COCOMO

    COCOMO signifie COnstructive COst MOdel, développé par Barry W. Boehm. Il divise le produit logiciel en trois catégories de logiciels: organiques, semi-détachés et embarqués.

Planification du projet

La planification de projet dans un projet fait référence à la feuille de route de toutes les activités à réaliser avec l'ordre spécifié et dans les délais alloués à chaque activité. Les chefs de projet ont tendance à définir diverses tâches et les jalons du projet et à les organiser en tenant compte de divers facteurs. Ils recherchent les tâches se trouvant dans le chemin critique dans le calendrier, qui sont nécessaires pour terminer de manière spécifique (en raison de l'interdépendance des tâches) et strictement dans le temps alloué. L'arrangement des tâches hors du chemin critique est moins susceptible d'avoir un impact sur tout le calendrier du projet.

Pour planifier un projet, il est nécessaire de -

  • Décomposez les tâches du projet en une forme plus petite et gérable
  • Découvrez diverses tâches et corrigez-les
  • Estimer le délai requis pour chaque tâche
  • Divisez le temps en unités de travail
  • Attribuer un nombre adéquat d'unités de travail pour chaque tâche
  • Calculer le temps total requis pour le projet du début à la fin

La gestion des ressources

Tous les éléments utilisés pour développer un produit logiciel peuvent être considérés comme des ressources pour ce projet. Cela peut inclure des ressources humaines, des outils de production et des bibliothèques de logiciels.

Les ressources sont disponibles en quantité limitée et restent dans l'organisation en tant que pool d'actifs. La pénurie de ressources entrave le développement du projet et peut prendre du retard sur le calendrier. L'allocation de ressources supplémentaires augmente les coûts de développement à la fin. Il est donc nécessaire d'estimer et d'allouer des ressources adéquates pour le projet.

La gestion des ressources comprend -

  • Définir le bon projet d'organisation en créant une équipe de projet et en attribuant des responsabilités à chaque membre de l'équipe
  • Déterminer les ressources nécessaires à un stade particulier et leur disponibilité
  • Gérez les ressources en générant des demandes de ressources lorsqu'elles sont nécessaires et en les désaffectant lorsqu'elles ne sont plus nécessaires.

Gestion des risques du projet

La gestion des risques comprend toutes les activités liées à l'identification, l'analyse et la prise en compte des risques prévisibles et non prévisibles du projet. Le risque peut inclure les éléments suivants:

  • Personnel expérimenté quittant le projet et l'arrivée du nouveau personnel.
  • Changement de gestion organisationnelle.
  • Changement d'exigence ou mauvaise interprétation de l'exigence.
  • Sous-estimation du temps et des ressources nécessaires.
  • Changements technologiques, changements environnementaux, concurrence commerciale.

Processus de gestion des risques

Les activités suivantes sont impliquées dans le processus de gestion des risques:

  • Identification - Prenez note de tous les risques possibles pouvant survenir dans le cadre du projet.
  • Categorize - Catégoriser les risques connus en intensité de risque élevée, moyenne et faible selon leur impact possible sur le projet.
  • Manage - Analyser la probabilité d'occurrence des risques à différentes phases. Faites des plans pour éviter ou faire face aux risques. Essayez de minimiser leurs effets secondaires.
  • Monitor - Surveillez de près les risques potentiels et leurs premiers symptômes. Surveillez également les effets des mesures prises pour les atténuer ou les éviter.

Exécution et suivi de projet

Dans cette phase, les tâches décrites dans les plans de projet sont exécutées conformément à leur calendrier.

L'exécution doit être surveillée afin de vérifier si tout se passe comme prévu. La surveillance consiste à observer pour vérifier la probabilité du risque et à prendre des mesures pour faire face au risque ou signaler l'état de diverses tâches.

Ces mesures comprennent -

  • Activity Monitoring - Toutes les activités planifiées dans une tâche peuvent être surveillées au jour le jour. Lorsque toutes les activités d'une tâche sont terminées, elle est considérée comme terminée.
  • Status Reports - Les rapports contiennent l'état des activités et des tâches accomplies dans un laps de temps donné, généralement une semaine. Le statut peut être marqué comme terminé, en attente ou en cours de travail, etc.
  • Milestones Checklist - Chaque projet est divisé en plusieurs phases où des tâches majeures sont effectuées (jalons) en fonction des phases du SDLC. Cette liste de contrôle des jalons est préparée une fois toutes les quelques semaines et fait état de l'état des jalons.

Gestion de la communication de projet

Une communication efficace joue un rôle essentiel dans la réussite d'un projet. Il comble les écarts entre le client et l'organisation, entre les membres de l'équipe ainsi que d'autres parties prenantes du projet telles que les fournisseurs de matériel.

La communication peut être orale ou écrite. Le processus de gestion de la communication peut comporter les étapes suivantes:

  • Planning - Cette étape comprend l'identification de tous les acteurs du projet et le mode de communication entre eux. Il considère également si des moyens de communication supplémentaires sont nécessaires.
  • Sharing - Après avoir déterminé divers aspects de la planification, le gestionnaire se concentre sur le partage d'informations correctes avec la bonne personne au bon moment. Cela permet à toutes les personnes impliquées dans le projet d'être au courant de l'avancement du projet et de son statut.
  • Feedback - Les chefs de projet utilisent diverses mesures et mécanismes de rétroaction et créent des rapports de statut et de performance. Ce mécanisme garantit que les contributions des différentes parties prenantes parviennent au chef de projet en tant que commentaires.
  • Closure - A la fin de chaque événement majeur, à la fin d'une phase de SDLC ou à la fin du projet lui-même, la clôture administrative est formellement annoncée pour mettre à jour chaque partie prenante par envoi de courrier électronique, en diffusant une copie papier du document ou par tout autre moyen de communication efficace.

Après la clôture, l'équipe passe à la phase ou au projet suivant.

Gestion de la configuration

La gestion de la configuration est un processus de suivi et de contrôle des modifications du logiciel en termes d'exigences, de conception, de fonctions et de développement du produit.

L'IEEE le définit comme «le processus d'identification et de définition des éléments dans le système, de contrôle du changement de ces éléments tout au long de leur cycle de vie, d'enregistrement et de rapport de l'état des éléments et des demandes de changement, et de vérification de l'exhaustivité et de l'exactitude des éléments».

En général, une fois que le SRS est finalisé, il y a moins de chance d'exiger des changements de la part de l'utilisateur. S'ils se produisent, les changements ne sont abordés qu'avec l'approbation préalable de la direction supérieure, car il existe une possibilité de dépassement des coûts et des délais.

Ligne de base

Une phase de SDLC est supposée terminée si elle est de référence, c'est-à-dire que la référence est une mesure qui définit l'exhaustivité d'une phase. Une phase est établie lorsque toutes les activités qui la concernent sont terminées et bien documentées. S'il ne s'agissait pas de la phase finale, sa sortie serait utilisée dans la phase immédiate suivante.

La gestion de la configuration est une discipline de l'administration de l'organisation, qui s'occupe de l'occurrence de tout changement (processus, exigence, technologique, stratégique, etc.) après qu'une phase est établie. CM surveille les modifications apportées au logiciel.

Le contrôle des changements

Le contrôle des modifications est fonction de la gestion de la configuration, qui garantit que toutes les modifications apportées au système logiciel sont cohérentes et effectuées conformément aux règles et réglementations organisationnelles.

Un changement dans la configuration du produit passe par les étapes suivantes -

  • Identification- Une demande de changement arrive d'une source interne ou externe. Lorsque la demande de changement est formellement identifiée, elle est correctement documentée.

  • Validation - La validité de la demande de changement est vérifiée et sa procédure de traitement est confirmée.

  • Analysis- L'impact de la demande de changement est analysé en termes de calendrier, de coût et d'efforts requis. L'impact global du changement potentiel sur le système est analysé.

  • Control- Si le changement envisagé a un impact sur trop d'entités dans le système ou est inévitable, il est obligatoire d'obtenir l'approbation des hautes autorités avant que le changement ne soit incorporé dans le système. Il est décidé si le changement vaut la peine d'être incorporé ou non. Dans le cas contraire, la demande de modification est formellement refusée.

  • Execution - Si la phase précédente détermine d'exécuter la demande de changement, cette phase prend les mesures appropriées pour exécuter le changement, effectue une révision approfondie si nécessaire.

  • Close request- La modification est vérifiée pour une mise en œuvre correcte et une fusion avec le reste du système. Ce changement nouvellement incorporé dans le logiciel est correctement documenté et la demande est formellement close.

Outils de gestion de projet

Le risque et l'incertitude sont multipliés par rapport à la taille du projet, même lorsque le projet est développé selon des méthodologies établies.

Il existe des outils disponibles qui aident à une gestion de projet efficace. Quelques-uns sont décrits -

Diagramme de Gantt

Les diagrammes de Gantt ont été conçus par Henry Gantt (1917). Il représente le calendrier du projet par rapport aux périodes. Il s'agit d'un diagramme à barres horizontales avec des barres représentant les activités et le temps prévus pour les activités du projet.

Graphique PERT

Le tableau PERT (Program Evaluation & Review Technique) est un outil qui décrit le projet sous forme de diagramme de réseau. Il est capable de représenter graphiquement les principaux événements du projet de manière parallèle et consécutive. Les événements, qui se produisent l'un après l'autre, montrent la dépendance du dernier événement par rapport au précédent.

Les événements sont affichés sous forme de nœuds numérotés. Ils sont reliés par des flèches étiquetées représentant la séquence des tâches du projet.

Histogramme des ressources

Il s'agit d'un outil graphique qui contient une barre ou un graphique représentant le nombre de ressources (généralement du personnel qualifié) nécessaires au fil du temps pour un événement (ou une phase) de projet. L'histogramme des ressources est un outil efficace pour la planification et la coordination du personnel.

Analyse du chemin critique

Cet outil est utile pour reconnaître les tâches interdépendantes dans le projet. Cela aide également à trouver le chemin le plus court ou le chemin critique pour mener à bien le projet. Comme le diagramme PERT, chaque événement se voit attribuer une période de temps spécifique. Cet outil montre la dépendance de l'événement en supposant qu'un événement peut passer au suivant uniquement si le précédent est terminé.

Les événements sont organisés en fonction de leur heure de début la plus proche possible. Le chemin entre le nœud de début et de fin est un chemin critique qui ne peut pas être réduit davantage et tous les événements doivent être exécutés dans le même ordre.