Vous êtes sur la page 1sur 26

ISTA - Revise for Agile Regional

Exam
Definitions

Principaux rôles

Caractéristiques de base d’un projet

Contraintes

Définition

Méthodes de gestion de projet

Prévisibles (OLD)

Prévisibles (AGILE)

4 Valeurs

12 Principes

Méthodes Agile

Analyser le cahier des charges

Cahier de charges

Compréhension des besoins client

Contexte de projet

Définition

Périmètre de projet

Définition

Proposition des solutions possibles aux risques

Préparer un projet

Répartition de l’ensemble des fonctionnalités en tâches

Définition

Organigramme des tâches du projet

Estimation de la durée de réalisation de chaque tâche

Ordonnancement des tâches

Diagramme de GANTT

Diagramme de PERT

Méthodologie Agile Scrum

Définition

Processus de la méthode Scrum : pregame, game, post-game

Pre-Game

Game
Post-Game

Rôles et responsabilités

Événements Scrum

Jira

Définition:

Ticket

Backlog

Git/Gitlab

Gestion de versions

Git

Termes

Commandes Principales

Gitlab

Conflit de fusion

Manipuler l’outil de mesure de la qualité du code (SonarQube)

Définitions

SonarQube

Les types de métriques avec SonarQube

Défauts logiciels selon 3 catégories

DevOps

Définition

Avantages

Outils

Lien entre l’agilité et DevOps

Intégration continue (CI)

Livraison continue

Déploiement continue (CD)

GitLab CI/CD

Définition de GitLab CI

Pipelines

Runner

Les tâches (Jobs)


Les étapes (stages)

Artefact de pipeline

Workflow

Codage de CI/CD

Definitions
• Un Projet: Ensemble d’actions à entreprendre à fin de répondre a un besoin
dans des délais fixés.

• La gestion de projet: est une action temporaire avec un début et une fin, qui
mobilise des ressources identifiées ( humaines, matérielles,
équipements, matières premières, informationnelles et financières)
durant sa réalisation, visant à organiser de bout en bout le bon
déroulement d’un projet

• Une ressource: élément nécessaire à la réalisation d'une tâche ou d'un


projet (ex: personne, une équipe, un outil, de la trésorerie ou du temps).
• Une charte de projet: document formel, généralement court, qui décrit
votre projet dans son intégralité, y compris:

◦ les objectifs,

◦ la manière dont il sera réalisé,

◦ et les parties prenantes.

• Parties Prenantes: ensemble des personnes et des organisations qui ont


quelque chose à voir avec le projet.

◦ Interne - à tout niveau de la hiérarchie de l'entreprise

◦ Externe

Principaux rôles
• Chef de projet informatique: Expert en informatique, Il a sous son égide
plusieurs techniciens et ingénieurs qui ont chacun un rôle spécifique dans le
traitement des demandes de clients particuliers.

• Matrice d’assignation des responsabilités (RACI):

Caractéristiques de base d’un projet


• Objectifs

• Une limite dans le temps

• Activités

• Ressources

• Résultats attendus

Contraintes

Définition
Les limites générales d'un projet, notamment les délais, les coûts et les risques

Méthodes de gestion de projet


Prévisibles (OLD)
Reposent sur une organisation stricte du travail et sur un fonctionnement par
étapes.
Il n’y a ici aucune rétroactivité.

Modèle En Cascade (Waterfall)


Approche linéaire et séquentielle des différentes phases et activités du projet
nécessaires à la livraison du ou des livrables

Cycle en Y
Un axe fonctionnel et un axe technique,

Puis fusionner les résultats de ces deux branches formant ainsi la lettre Y
Cycle en V
Une phase descendante suivie d’une phase ascendante .

Le cycle en V associe à chaque phase de réalisation une phase de validation

Prévisibles (AGILE) ​
Le principe est de le découper en sous-parties (ou sous-projets) autonomes
(on parle également de développement itératif).
4 Valeurs

12 Principes

Méthodes Agile
• Scrum
S’organise autour de cycles courts, qu’on appelle communément des
itérations (Sprints).

• Kanban

• Lean development

Analyser le cahier des charges

Cahier de charges
• Exigences et Fonctionnalités techniques ​

• Description de produit final ​


• Délai ​
• Budget ..

Compréhension des besoins client


• Détecter les besoins:

◦ Explicites ​

◦ Implicites ​

• Livrables potentiels

Pour chaque Besoin Explicite → Besoin Implicite → Livrable potentiel

Contexte de projet

Définition
L'ensemble des informations qui caractérisent un projet, de l'histoire et de
l'origine du projet, d'informations sur le contexte réglementaire, culturel,
économique, concurrentiel et social dans lequel évolue la société, ou encore de
son environnement de travail.

Périmètre de projet
Définition
l'ensemble des éléments qui composent un projet, de limiter les dérives des
objectifs, et de visualiser ce qui doit être réalisé afin d'atteindre l'objectif.

Proposition des solutions possibles aux risques


Problème Solution

Manque de visibilité sur le projet Le diagramme de Gantt

Objectifs imprécis Définissez clairement et précisément les enjeux et les objectifs du


projet

Planning sous-estimé Mettre en place une gestion des risques efficace et vous accordez une
marge de manœuvre en cas de problème

Aucune visibilité sur la Les feuilles de temps


disponibilité des ressources

Mauvaise communication Entretenir un dialogue constant et constructif entre l'équipe

Préparer un projet

Répartition de l’ensemble des fonctionnalités en


tâches

Définition
Une décomposition hiérarchique des travaux nécessaires pour réaliser les
objectifs d'un projet.

Trois modèles :

• Approche descendante: on part du résultat global et on décompose le projet


en sous- projets de plus en plus détaillés, puis en groupes de tâches.

• Approche ascendante: vous suivez la direction inverse et commencez par le


niveau le plus bas.
• Approche combinée: On procède ici par étapes successives : dans un premier
temps,

◦ On liste les tâches.

◦ On note ensuite les sous-projets et on leur attribue les tâches


précédemment listées.

◦ Finalement, on énumère les autres choses à faire.

Organigramme des tâches du projet


Décomposition Arborescente

Estimation de la durée de réalisation de chaque


tâche
La durée moyenne (DM) :

DM = (Do+Dp+4 x Dc)/6

Do: Durée optimiste


Dp: Durée pessimiste
Dc: Durée plus probable
Ordonnancement des tâches
Graph —— Tâches

—— Liens

—— Durée

Il existe trois méthodes d’ordonnancement :

• le diagramme de Gantt

• la méthode MPM (Méthode des potentiels Métra)

• le PERT

Diagramme de GANTT
C’est un diagramme graphique pour la planification de projet.

Diagramme de Gantt

• Les tâches sont triées par tâches sans antécédent.

• Chemin critique désigne l’ensemble des activités à accomplir afin que


le projet soit terminé à la date définie.

◦ Il permet de déterminer la date de fin du projet

◦ Les tâches du chemin critique sont appelées « tâches critiques » car


elles sont indispensables à la réussite du projet.

◦ En conséquence, elles ne doivent subir aucun retard, sinon


l’intégralité du projet sera retardée. Leur marge de manœuvre est donc
nulle

Diagramme de PERT
la relation d’ordre de traitement de chaque tâche dans un projet complexe est
exprimée sous forme de réseau ou d’organigramme

• Chemin Critique:

◦ Identifier les tâches critiques qui ont la plus longue durée ​

◦ La durée totale de ce projet revient à additionner les durées des tâches


critiques.

Méthodologie Agile Scrum

Définition
Une méthode agile consacrée à la gestion de projet , et qui est pour BUT

• D’améliorer la productivité des équipes ​

• Et D’avoir une vue d’ensemble du projet pour chacune des parties


prenantes .

Processus de la méthode Scrum : pregame, game,


post-game
Pre-Game
• Planning: in which we backlog the project requirements or features
which need to deliver.
→→→ User Stories
→→→ Backlog by the Product Owner (based on User Stories)

• Architecture: specifies the process patterns of work units called sprints

in other words, what’s the process of doing things like:

◦ Working on tasks

◦ Make modifications if necessary

◦ Make analysis

◦ Solve bugs

Game
Accomplir les tâches de backlog en suivant les étapes:
• Démarrer le développement, tester et documenter les changements

• Fermer le statut de travail

• Mener des réunions d'examen

• Effectuez les modifications nécessaires

Post-Game
• Demo

• Closure:
Preparation for release, including final documentation, pre-release staged
testing, and release.

Rôles et responsabilités
• Product Owner
• Scrum Master
• Development Team

Événements Scrum
1. Product Backlog:
Identification de toutes les fonctionnalités dont le produit devra être
composé (les user stories)..

2. Sprint:
L’équipe trie les fonctionnalités et tâches qu’elle répartit dans des Sprints
Dans chaque sprint, nous procédons les étapes suivantes:

a. Sprint planning meeting:

i. Sélectionner dans le product backlog les exigences les plus


prioritaires pour le client.
ii. Les tâches constituent le sprint backlog

b. Daily SCRUM: une réunion de 5–10 minutes, où l’on parle de trois


choses:

i. Ce qu’on a fait hier ?

ii. Quels problèmes on a rencontrés ?

iii. Que va-t-on faire aujourd’hui ?


c. Sprint Review: ​

i. On close le Sprint avec un test des bénéfices de la


fonctionnalité avec le Product Owner

ii. Le destinataire de la fonctionnalité (le client par exemple)


confirme ou non si la fonctionnalité marche comme il le
souhaitait.

d. Sprint Retrospective :

L'équipe échange sur les réussites, les difficultés, relève ce qui a


fonctionné ou non.

Jira ​

Définition:
Une solution de gestion de projet qui permet aux équipes de s’organiser
efficacement, d’établir une communication durable et de visualiser le projet en
un coup d’œil grâce à ses tableaux de bord personnalisés ​

Ticket
Une tâche à effectuer, c’est un élément de travail.

Il peut être:

• Epic: un grand objectif ou une grosse fonctionnalité devant être simplifié


et divisé en plusieurs tâches.

• Story: une fonctionnalité à réaliser

• Task: une tâche technique à effectuer

• Bug: un problème à corriger

Backlog
Une liste de fonctionnalités ou d’éléments de travail

Git/Gitlab

Gestion de versions
Stockage de plusieurs versions de fichier(s) afin de pouvoir tracer l'évolution
chronologique à travers les changements apportés d'une version à l'autre.

Git
Un logiciel libre de gestion de versions, qui permet d'archiver et de maintenir
les différentes versions d'un ensemble de fichiers constituant souvent le code
source d'un projet logiciel.

Termes
• Version: contenu du projet à un moment de son cycle de vie.

• Dépôt: historique du projet, contenant toutes ses versions.

• Branche: variante d’un projet.

Commandes Principales
• git init : crée un nouveau dépôt vide à l'emplacement courant.

• git status : affiche les différences entre le répertoire de travail, l'index et


HEAD.

• git add : ajoute des fichiers depuis le répertoire de travail vers l'index.

• git commit : ajoute des fichiers depuis l'index vers HEAD.

• git clone : clone un dépôt existant local ou distant.

• git pull : récupère des modifications depuis un dépôt distant vers HEAD.

• git push : publie des modifications depuis HEAD vers un dépôt distant

• git checkout -b new_branch_name

• git branch -d branch_to_delete

• git reset --hard origin/master : supprimer tous les changements et


validations locaux

• git config --global user.email "zakaria@gmail.com"

• git config --global user.name "Zakaria Imzilen"


Gitlab
Une plateforme open source et collaborative de développement basé sur Git et
qui permet d'héberger des projets web, du code, et de la documentation.

Conflit de fusion
Intervient lorsque l’on tente de fusionner deux branches qui modifient la même
partie d’un même fichier. Dans ce cas, git va intégrer les deux versions dans le
même fichier puis laisser le développeur décider du contenu final de cette partie

Manipuler l’outil de mesure de la qualité


du code (SonarQube)

Définitions
• Une métrique : est une caractéristique (ou une propriété) d'une application.
◦ Métrique logicielle : Mesure d'une propriété d'un logiciel (par exemple
le nombre de lignes de codes), Exemples:

▪ Lignes de codes

▪ Nombre de méthodes par classe

▪ Couplage afférent/efférent
• La qualité du code : est la manière avec laquelle les fonctionnalités sont
implémentées et qui peut être mesurée par les métriques suivantes:

◦ L’architecture qui inclut la maintenabilité, l’évolutivité, la performance et


la pertinence

◦ La documentation

◦ La portabilité et la sécurité

◦ La fiabilité

◦ Le nombre de bugs connus

• La mesure de la qualité du code peut en partie être mesurée


automatiquement par des outils d’analyse statique du code source (comme
SonarQube).

SonarQube
Un logiciel open source de mesure de la qualité du code source de projets de
développement.

Les types de métriques avec SonarQube


• Densité des commentaires

• Taux de couverture des tests unitaires

• Des conventions de nommage

• Respect des règles de codage et des bonnes pratiques

• Détection de bogues

• Détection de code mort

• Détection de code dupliqué

• Complexité du code (complexité cyclomatique, complexité cognitive)

• Score de maintenabilité, fiabilité et sécurité..

Défauts logiciels selon 3 catégories


• Bugs : problèmes clairs dans le code. Ils affectent la fiabilité (reliability) de
l'application.

• Les vulnérabilités : faiblesses du code pouvant nuire au système. Elles


impactent la sécurité de l’application.

• Code smells : des anti-patrons (ou anti-patterns) qui ont un impact sur la
maintenabilité de l'application. Ce sont en général des défauts pratiques dans
le code.

DevOps

Définition
Le DevOps est une approche conciliant le développement et les opérations.

C’est l’ensemble de pratiques qui met l’accent sur la collaboration et la


communication entre les développeurs de logiciels et les professionnels
des opérations informatiques, en automatisant le processus de
livraison de logiciels et les changements d’infrastructure.

Avantages
• La collaboration
• La vitesse
• L’agilité
• La satisfaction du client
• L’innovation
• La sécurité

Outils
• Gestion de code source (Git)

• Les tests CI/CD (Jenkins)

• Conteneurs (Docker)

• Cloud providers (AWS)

• Automatisation et gestion de configuration (Terraform..)

• Monitoring et alerting (Grafana)

• Outils de gestion de projet (Jira)

Lien entre l’agilité et DevOps


DevOps consiste à appliquer les principes Agile en dehors de l'équipe de
développement.

Intégration continue (CI)


Un ensemble de pratiques utilisées en consistant à vérifier à chaque
modification de code source que le résultat des modifications ne produit pas de
régression dans l'application développée.

Livraison continue
Une approche dans laquelle les équipes produisent des logiciels dans des cycles
courts , ce qui permet de le mettre à disposition à n’importe quel moment .

Le but est de construire, tester et diffuser un logiciel plus rapidement.

Vous aimerez peut-être aussi