Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Processus

No description
by

aicha loukili

on 16 April 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Processus

Vue sur problématique Processus de
développement Introduction 1.Introduction
2.Définitions
Processus de développement
Processus Unifiés
Méthodes Agiles
3.Exemples de UP et MA
RUP
2TUP
XP
RAD
4.Scrum
Vue d’ensemble de Scrum
Survol de Scrum
La base de Scrum
Résumé
5.Conclusion Sommaire Malgré leurs spécificités, les projets informatiques ont longtemps été conduits comme les autres, sur la base d'un cycle de vie linéaire -expression du besoin-cadrage-conception-réalisation-tests- ce processus a montré sa limite dans un environnement régi par des changements réguliers, impliquant une impossibilité à revenir en arrière, et de ce fait, laissant une marge à l’erreur par ailleurs l'utilisateur découvrait le résultat plus ou moins conforme à ses attentes.

Avec l’avènement de la pensée objet, de nouvelles méthodes sont apparues et différentes notations ont été établies afin de supprimer cet effet tunnel et corriger les dérives de délai tout en permettant de :

• Mesurer exactement l’effort consacré à chaque activité.
• Surveiller la productivité.
• Planifier efficacement un projet.
• Identifier les domaines d’amélioration possibles.
• Mettre l’utilisateur au centre de la démarche. Un processus définit une séquence d’étapes, en partie ordonné, qui concoure à l’obtention d’un système logiciel ou à l’évolution d’un système existant, afin de produire des logiciels de qualité, qui répondent aux besoins des utilisateurs dans des temps et des coûts prévisibles. Qu'est ce qu'un Processus de développement logiciel ?!!! Plus simplement, un processus doit permettre de répondre à la question fondamentale :
« Qui fait quoi et quand ? ». On découpe le processus en deux axes :
•L’axe de développement technique
•L’axe de gestion du développement

Parmi ces processus, on distingue les plus utilisés dans le monde de la gestion de projet:
•Les processus unifiés.
•Les méthodes agiles. Processus de développement moderne, itératif, efficace sur des projets informatiques de toutes tailles.
Couvre l’ensemble des activités, depuis la conception du projet jusqu’à la livraison de la solution. Intégrant une organisation de projet type, une méthodologie utilisant UML et un ensemble de bonnes pratiques cohérentes entre elles.
Mais surtout il est : Processus Unifié (Unified Process) Itératif et incrémental.
Centré sur l’architecture.
Piloté par les risques.
Guidé par les cas d’utilisation.
La gestion d’un tel processus est organisée d’après les 4 phases suivantes :

1. Préetude(Inception) : c’est ici qu’on évalue la valeur ajoutée du développement et la capacité technique à le réaliser (étude de faisabilité).

2. Elaboration : sert à confirmer l’adéquation du système aux besoins des utilisateurs et à livrer l’architecture de base.

3. Construction : sert à livrer progressivement toutes les fonctions du système.

4. Transition : déployer le système sur des sites opérationnels. les phases du processus unifie les methodes agiles « une habilité de créer et de répondre au changement dans le but d’avoir du succès dans un environnement d’affaires turbulent ». Agilité Jim Highsmith Une méthodologie qui vise :
réduire le cycle de vie du logiciel en développant une version minimale, puis en intégrant les fonctionnalités par un processus itératif basé sur une écoute client et des tests tout au long du cycle de développement.
apporter plus de valeur aux clients et managers et une plus grande satisfaction dans leur travail aux membres de l'équipe.
Les méthodes agiles prônent 4 valeurs fondamentales:

L'équipe : « Personnes et interaction plutôt que processus et outils »
L'application : « Logiciel fonctionnel plutôt que documentation complète »
La collaboration : « Collaboration avec le client plutôt que négociation de contrat »
L'acceptation du changement : « Réagir au changement plutôt que suivre un plan » Valeurs des méthodes agiles Principes des méthodes agiles 1. Satisfaire le client est la priorité
2. Accueillir les demandes de changement « à bras ouverts »
3. Livrer le plus souvent possible des versions opérationnelles de l’application
4. Assurer une coopération permanente entre Client et Equipe projet
5. Construire des projets autour d’individus motivés
6. Privilégier la conversation en face à face
7. Mesurer l’avancement du projet en termes de fonctionnalités de l’application
8. Faire avancer le projet à un rythme soutenable et constant
9. Porter une attention continue à l’excellence technique et à la conception
10. Favoriser la simplicité
11. Responsabiliser les équipes: les meilleures architectures, spécifications et conceptions émergent d’équipes autoorganisées.
12. Ajuster, à intervalles réguliers, son comportement, ses processus pour être plus efficace Exemples des Processus Unifiés Exemples des Methodes
Agiles Éléments de Scrum un processus de genie logiciel generique mis au point et commercialisé par Rational Software.
une methode rigoureuse d’affectation et de gestion des taches et de responsablités qui incombent à une organisation de developpement.
déviré des UP donc il est :
Itératif.
Incrémental (à base de composants).
Centré sur l’architecture.
Piloté par des cas d’utilisation (UML).
Orienté vers la diminution des risques. RUP (Rational Unified Process) 2TUP apporte une réponse aux contraintes de changement continuel imposées aux systèmes d’information de l’entreprise.
Il renforce le contrôle sur les capacités d’évolution et de correction de tels systèmes. « 2 Track » signifie littéralement que le processus suit deux chemins. Il s’agit des chemins « fonctionnels » et « d’architecture technique », qui correspondent aux deux axes des changements imposés au système informatique. 2TUP ( 2 Track Unified Process ) une méthode de programmation légère et agile.
améliore la production des logiciels en les développant et en les testant rapidement.
Crée par Kent Beck et Ron Jeffries en 1996.
Correspond plus aux petites équipes.
Réduit significativement la partie administrative des projets (Cérémonies) qui éloigne l‘équipe de la productivité.
l'équipe se focalise sur l'objectif du projet afin d'obtenir un produit logiciel qui fonctionne et le plus rapidement possible.
L’équipe de développement travaille directement avec les utilisateurs sur des sprints courts (1 ou 2 semaines)… XP ( eXtreme Programming ) définie par James Martin dans son livre « Rapid Application Development »au début des années 80
consiste en un cycle de développement court dans, un délai idéal de 90 jours et de 120 jours au maximum.
un cadre de travail qui permet, s'il est suivi, de réaliser un système rapidement qui satisfasse les utilisateurs, diminue la maintenance applicative et réduise les coûts de formation des utilisateurs. RAD ( Rapid Application Development ) Il est organisé autour de 4 phases :
Préétude (inception)
élaboration
construction
transition
chacune d’entre elles se subdivisant à son tour en itérations. Les Phases du RUP A chaque itération, les développeurs identifient et spécifient les cas d’utilisations pertinents, créent une conception en se laissant guider par l’architecture choisie, implémentent cette conception sous forme de composants et vérifie que ceux-ci sont conformes aux cas d’utilisation. Son fonctionnement Une itération désigne la succession des étapes de l’enchaînement d’activités, tandis qu’un incrément correspond à une avancée dans les différents stades de développement. Dans RUP, on ne va pas tout développer d’un coup. On découpe le travail en plusieurs parties qui sont autant de mini projets. Chacun d’entre eux représentant une itération qui donne lieu à un incrément. Dès qu’une itération répond aux objectifs fixés le développement passe à l’itération suivante. L’axiome fondateur du 2TUP consiste à constater que toute évolution imposée au système d’information peut se décomposer et se traiter parallèlement, suivant un axe fonctionnel et un axe technique.
la réalisation du système consiste à fusionner les résultats des deux branches. Cette fusion conduit à l’obtention d’un processus de développement en forme de Y Le processus de développement en Y
XP propose une démarche basée sur l’enchaînement suivant:
Ecriture d’un test
Conception
Programmation
Refactoring Son architecture
Pour un travail en équipe, on distingue 6 rôles principaux au sein d'une équipe XP:
Développeur : analyste, concepteur, il participe aux séances de planification, évalue les tâches et leur difficulté.
Client : Ecrit, explique et maîtrise les scénarios, il définit les priorités.
Testeur : implémente des tests de recette automatiques pour valider les scénarios clients.
Tracker : Contrôle l’avancement des taches à l’intérieur d’une itération. Interagir avec les développeurs pour le respect du planning de l'itération courante.
Manager : Responsable de l’infrastructure dans laquelle l’équipe travaille, et la vérification de la satisfaction du client.
Coach : Généralement « expert méthode » et bon communicateur, s’assure la bonne compréhension de la méthode XP. L’équipe de l’XP
Une classe appartient à une seule et unique personne, mais le code de l’application appartient à toute l’équipe (consultable par tous).
Développement en binôme.
Le code créé doit être composé de petites classes et de méthodes courtes.
Programmation pilotée par les tests.
Aucune duplication de code ne doit exister.
Présence obligatoire de commentaires dans le code.
Le résultat : Obtention d’un code homogène pour toute l’application. Ses règles de programmation Avantages :
•De nombreux tests tout au long du processus (unitaires & recettes)
•Interaction importante avec le client
•Simplicité
•Développement Incrémental
•Flexible au changement
•Documentation et processus simples et légers
•Produire de la qualité
•Commencer petit et grandir avec le temps
•Communication honnête et amicale
•S‘adapter en fonction de la situation
•Mesurer que ce qui est nécessaire (indicateurs)
•Accepter la responsabilité et prendre Attitude positive
•Contribuer à la motivation de l'équipe. Avantages & Inconvénients Inconvénients :
•Tests unitaires peuvent prendre le dessus sur la programmation de l’application
•Programmation itérative ne donne pas une vision d’ensemble
•Méthodologie lightweight
•Un blocage culturel
•Une méthode peu applicable
Développeur: compétence suffisante
Équipe: communication & collaboration efficace
•Une très forte implication
Responsabilité du coach
Le client XP constitué de cinq phases : Cycle RAD Initialisation, détermine si le projet peut être suivi avec la méthode RAD.
Expression des besoins, détermine les grandes lignes du projet : objectifs, participants, principales fonctions.
Conception, définit précisément les processus, les données.
Construction, est la phase de développement et de validation du système.
La Mise en œuvre constitue la livraison du système nouvellement crée. la méthode RAD repose sur quatre principes : SES PRINCIPES Les outils : de conception, de prototypage, de génération de code, disposant d’un langage de haut niveau (L4G).
Les personnes : être compétentes et motivées, choisis avec soin,devoir connaître et adhérer à la méthode, connaître les règles de gestion de l'entreprise et être formés aux outils.
Le management : une gestion du projet, en particulier en ce qui concerne les aspects humains.
La méthodologie : Rien ne se fera sans une méthodologie, à la fois bien formalisée et souple. L’auteur recommande que la méthode soit consignée, non sur un document qui remplirait la moitié d’une armoire, mais dans un « Hyperdocument » que chacun pourrait parcourir rapidement et de façon non linéaire en fonction de ses besoins et de son rôle sur le projet. Ses Avantages :
Modèle plus adaptatif que Prédictif
Cycles courts, RAD (Rapid Application Development)
Grande Flexibilité, Grande Réactivité
Plus de collaboration et d’interactivité avec les utilisateurs
Plus adapté aux Nouvelles Technologie
Le résultat final est conforme aux besoins
Amélioration continue.
L’utilisateur est acteur du résultat final.
L’utilisateur peut travailler directement avec une partie du système, ce système n'est pas encore terminé, mais est déjà doté des fonctions majeures.
L’utilisateur reçoit dans un intervalle court une application opérationnelle.
Ses inconvénients :
Manque de recul au départ.
Le produit final n’est pas disponible immédiatement
L’implication dans un projet RAD nécessite de l’utilisateur une motivation forte et un investissement personnel supplémentaire. Avantages & inconvenients la méthode de gestion de projet qui, depuis 2005;
s’est répandue le plus largement chez les éditeurs de logiciels et commence à être utilisée sur des projets informatiques d’ingénierie mais également en dehors du domaine informatique,
En tant que méthode agile, Scrum répond efficacement à des problématiques qui restent des écueils redoutés dans la plupart des projets impliquant conception et innovation : gestion du changement, des risques, des ressources humaines, de la qualité sont adressés efficacement.
Scrum est simple et peu couteuse à mettre en place.
L’engouement pour Scrum (la ScrumMania !) a mis fin à une hypothétique rivalité entre les méthodes agiles. Les études d’opinion et les tendances des recherches sur le Web le montrent : Scrum est de loin la plus populaire dans la famille des méthodes agiles. SCRUUUUM Scrum signifie « mêlée » en anglais. Le terme est tiré du vocabulaire du rugby, et la métaphore sportive souligne l’importance du collectif dans la démarche projet. Cette dimension intervient au niveau interne à l’équipe projet, mais également en ce qui concerne le pilotage du projet.
Ce processus agile s’articule en effet autour d’une équipe soudée, qui cherche à atteindre un but, comme c’est le cas en rugby pour avancer avec le ballon pendant une mêlée. C'est quoi ce mot ...?!! Le cadre Scrum consiste en une équipe avec des rôles bien définis, des blocs de temps (time boxes) et des artefacts: Rôles : L’équipe a un rôle capital dans Scrum : elle est constituée avec le but d’optimiser la flexibilité et la productivité ; pour cela, elle s’organise elle-même et doit avoir toutes les compétences nécessaires au développement du produit. Elle est investie avec le pouvoir et l’autorité pour faire ce qu’elle a à faire.
Timeboxes : Blocs de temps pour créer de la régularité. Le cœur du rythme de Scrum est le sprint, une itération d’un mois ou moins. Dans chaque sprint, le cadre est donné par un cérémonial léger mais précis basé des réunions.
Artefacts : Peu d’artefacts lors du développement : le plus remarquable est le backlog de produit, pivot des différentes activités. Les acteurs
au coeur du projet Définit les fonctionnalités du produit
• Choisit la date et le contenu de la release
• Responsable du retour sur investissement
• Définit les priorités dans le backlog en fonction de la valeur « métier ».
• Ajuste les fonctionnalités et les priorités à chaque sprint si nécessaire
• Accepte ou rejette les résultats un facilitateur, un animateur de l'équipe technique.
Il fait en sorte que l'équipe puisse travailler au mieux sur les tâches pour lesquelles elle s'est engagée durant le sprint, notamment en la protégeant des éventuelles demandes extérieurs impromptues et en assumant les problèmes administratifs. délivrer à la fin de chaque sprint les items qui ont été priorisés pour ce sprint.
Constitué de 2 à 10 personnes.
Auto-organiser : rappelez-vous que le scrum master n'est pas un donneur d'ordres mais un facilitateur, et que le product-owner n'a pas à mettre son nez dans l'organisation de l'équipe. focaliser l’équipe de façon itérative sur un ensemble de fonctionnalités à réaliser, dans des itérations de 30 jours, appelées Sprints. Chaque Sprint possède un but à atteindre, défini par le directeur de produit (Product owner), à partir duquel sont choisies les fonctionnalités à implémenter dans ce Sprint. Un Sprint aboutit toujours sur la livraison d’un produit partiel fonctionnel.
participation active du client pour définir les priorités dans les fonctionnalités du logiciel, et choisir lesquelles seront réalisées dans chaque Sprint.
Pouvoir à tout moment ajouter ou modifier la liste des fonctionnalités à réaliser, mais jamais ce qui est en cours de réalisation pendant un Sprint. Les principes de base
de Scrum Tous les critères ou exigences du produit sont regroupés dans des journaux ou "backlogs", dont on distingue 2 types :
le backlog de produit ou "product backlog" qui regroupe la liste des fonctionnalités du produit.
le backlog de sprint ou "sprint backlog" en fonction des fonctionnalités du produit, regroupe la liste des tâches qui devra être réalisée à l'itération en cours. Chaque tâche aura fait l'objet d'une estimation préalable de charge par l'ensemble de l'équipe afin d'estimer au mieux les tâches qui peuvent réaliser durant un sprint.
À la fin d’un sprint, le résultat attendu est un incrément du produit final, qui est potentiellement livrable. C’est ce que montre le célèbre schéma de Mike Cohn. Son Processus Le tableau des tâches : Un tableau de tâches sert à montrer l’avancement des travaux pendant le sprint. Il est élaboré lors de la réunion de planification du sprint. Pour chaque story sélectionnée, l’équipe identifie les tâches correspondantes. Sur le tableau, les stories et les tâches sont placées avec des Post-it. Le burndown chart
Le burndown chart montre la taille ce qui reste à faire dans le backlog, sprint après sprint. « Le ScrumMaster d’un projet pilote heureux de montrer sa vélocité et son burndown chart. » •Améliorer le moral et la motivation des équipes projet
•Penser court terme plutôt que long terme
•Logiciel fonctionnel qui marche plutôt que de la documentation excessive
•Répondre aux changements plutôt que suivre un plan
•Réactivité aux besoins de l'utilisateur plutôt qu'une relation Contractuelle. Ses Avantages Si l'entreprise souhaite être compétitive, l'acquisition d'une méthode de gestion de projet est indispensable à la construction et à l'évolution d'un système d'information performant.
La production d’un logiciel tout comme celle de n'importe quel autre bien nécessite la mise en oeuvre de méthodes, techniques et outils dépassant largement le cadre de la seule programmation.
Aujourd'hui de nombreuses méthodes existent, allant de la plus rigide à la plus agile qui visent à ordonner et à structurer le développement du logiciel et garantient la satisfaction du client et pas la conformité en terme d’un contrat de développement.
il n’y a probablement aucun processus parfait pour tous les projets et environnements, ni même pour un seul.
Bref, en choisissant entre Agile ou unifié, adaptez le processus à vos besoins, plutôt que d’adapter votre projet au processus !!!! Conclusion Merciii pour votre attention !!
Full transcript