avril 28, 2017

Gestion de projet

 

WATERFALL

 

La méthode “classique” se déroule par séquences. Chaque phase du cycle de vie du produit doit être terminée avant le démarrage d’une nouvelle phase ou fonctionnalité. Le workflow du projet est dirigé de façon linéaire et vers le bas, l’accomplissement total d’une phase étant requis avant le début de la phase suivante. Ce workflow prend la forme d’une cascade (Waterfall).

Ce processus fut adapté par les sociétés de développement informatique à partir des entreprises de BTP (vous commencez toujours un batiment par les fondations et terminez par le toit). Cependant ce processus n’est pas aussi souple quand vous devez revenir sur une séquence déjà terminée. La méthode “classique” nécessite que le cahier des charges soit le plus exhaustif possible avant le démarrage du codage.

En utilisant la méthode “classique”, les phases de développement et de livraison d’une application ou d’un logiciel, poursuivent une liste d’étapes avec des séquences bien définies à l’avance. L’avantage principal de cette méthode, est de fournir un plan bien structuré dés le début, ainsi le client a une bonne vision et gestion budgétaire de son projet. Liste des principales étapes du processus de développement de logiciel avec la méthode “classique” ou “Waterfall”:

  1. Analyse des besoins du client (Requirement).
  2. Définition des livrables, spécifications des fonctionnalités (Design).
  3. Mise en place d’un budget et d’un échéancier (Planning).
  4. Début du cycle de développement: mise en place des premières fonctionnalités (Implementation).
  5. Correction et validation (Verification).
  6. Maintien de cette fonctionnalité au fil du temps (Maintenance).

 

 

Une fois la première fonctionnalité livrée, le processus redémarre son cycle à partir de l’étape 4 jusqu’à la 6ème. Ce processus se répète jusqu’à ce que le logiciel complet soit livré au client. Dans la méthode “classique” ou “Waterfall”, chaque composant du projet est développé de façon séquentielle, et mené à terme avant qu’une autre fonctionnalité ne soit developpée. Cette méthode est la plus communément utilisée, néanmoins elle possède plusieurs carrences importantes.

De façon générale, la méthode classique se déroule avec plusieurs étapes qui doivent être réalisées avant le début, durant la phase de démarrage, la phase de planning, la phase d’exécution et la phase de cloture du projet. Il y a égalemnt une panoplie de processus pour gérer les livraisons, les exceptions, les reporting, les risques et les problèmes.

 

Avantages de la méthode en cascade:
  • Les problèmes pouvant augmenter au cours de la phase de développement, peuvent etre corrigés pendant la phase de conception. S’il est conseillé, d’autres solutions peuvent etre sélectionnées avant le début de tout encodage.
  • Le processus de développement rassemble autant de documents que possible, car cette méthodologie favorise la documentation complète comme exigence aux besoins et à la conception.
  • De nombreuses entreprises préfèrent cette méthode pour la mise en oeuvre et l’utilisation.
  • Le processus de la cascade est linéaire et plus facile à comprendre pour les personnes non familiaires au processus de développement de logiciels et à la gestion de projet.
Inconvénients de la méthode en cascade:
  • Très souvent, le client ne sait pas exactement ce dont il a besoin à l’avance et ne sait pas quelles sont les possibilités avec les technologies disponibles. En raison de ces facteurs, cela pourrait générer des retards et des complications.
  • Les fournisseurs de conception ne sont souvent pas en mesure d’anticiper les problèmes qui surgiront en raison de la mise en oeuvre de leurs graphismes et de leurs travaux de conception.
  • Faire une modification des besoins en cours de développement (par exemple, si vous souhaitez implémenter une nouvelle technologie, modifier les objectifs de l’entreprise ou l’adaptation à un marché en mutation) n’est pas vraiment approprié par la méthode Waterfall. Néanmoins, il est toujours possible d’évaluer selon les nouvelles exigences, mais cela prendra du temps et de l’argent pour prendre en compte ces modifications.

 

 

AGILE/ SCRUM

 

EasyShoring Solutions utilise les pratiques Agile pour la gestion de projet. Nous offrons une approche pragmatique et restons en contact constant avec nos clients tout au long du processus. La principale force de la méthodologie Agile est d’anticiper des nouvelles priorités ou des corrections, et de les mettre en place. La priorité absolue dans la méthodologie Agile est la satisfaction du client. Un client est libre de faire un certain nombre de révisions utiles pour ses besoins mouvants.

 

Agile est basé sur 3 piliers :

  • Transparence
  • Inspection
  • Adaptation

 

Et 4 valeurs :

  • Les individus et leurs interactions plus que les processus et leurs outils.
  • Du logiciel qui fonctionne plus qu’une documentation exhaustive.
  • La collaboration avec le client plus que la négociation contractuelle.
  • L’adaptation au changement plus que le suivi d’un plan.

 

 

Source: Manifesto Agile

Agile est un processus de gestion de projet itératif et incrémental. Les demandes et solutions évoluent au sein d’une équipe auto-organisée et pluridisciplinaire travaillant en symbiose  sur le long terme.

Agile est favorable à tout changement soudain, et propose une réponse flexible aux demandes des clients qui évoluent, le facteur vital étant la relation avec le client.

 

Avantages des pratiques Agiles pour les clients:

  • Les demandes spécifiques sont discutées avec nos clients lors des sprint meeting, qui ont lieu entre 2 et 4 semaines. Une fois la livraison effectuée, un nouveau cycle redémarre et nous travaillons sur vos priorités définies à ce moment là.
  • Le projet est contrôlé par les coûts nearshore.
  • Le principal avantage pour nos clients, est la certitude d’avoir le maximum de valeur ajoutée grâce aux pratiques Agiles.

 

 

FOCUS SUR LE PRODUCT OWNER

Le Product Owners, principal point de contact pour le client, il centralise les demandes et besoins. Il est responsable de:

  • La profitabilité du produit.
  • La définition des composantes du product backlog.
  • La définition des priorités en fonction de leurs valeurs.
  • Le choix des dates de livraisons et des contenus.
  • L’ajustement des priorités à chaque itération si besoin.
  • L’acceptation ou le rejet du résultat de l’itération.

 

FOCUS SUR SCRUM MASTER

The Scrum master est la personne responsable de la bonne application des principes Scrum au sein de l’équipe de développement. Le Scrum master à la responsabilité de:

  • S’assurer qu’aucun obstacle n’empêche l’équipe d’avancer, qu’elle soit pleinement productive, et la protège des interférences externes.
  • Permettre une coopération étroite à travers les différents rôles et fonctions de Scrum.
  • Réaliser des indices de performances et de suivi de qualité de la production.
  • Veiller à une bonne communication entre les différents contributeurs du projet.
  • Donner régulièrement son feedback.
  • Amélioration continue de l’équipe Scrum au fil du projet.

 

FOCUS  SUR L’EQUIPE DE DEVELOPMENT

  • Les équipes de développement sont au centre de l’expertise d’EasyShoring Solutions et de ses partenaires. Ces équipes sont pluridisciplinaires (Business Analyst, programmeurs, testeurs, interfaces utilisateurs, designers), et sont responsables du développement du produit.
  • Les équipes sont composées de 5 à 9 personnes, auto-organisées, et focalisées uniquement sur votre projet. L’équipe décide elle-même de la repartition des tâches pour la réalisation du nouvel incrément.
  • L’équipe se réunie et estime le nombre de user stories réalisables lors d’une itération.
  • Les membres de l’équipe EasyShoring maitrisent et sont habitués à produire des logiciels utilisant les technologies suivantes: Java / C# / .NET / Android / iOS / Oracle / Sybase / HTML.

 

 

COMPARATIF DES DEUX METHODES