Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (13)

mai 25, 2015

Méthodes Agile (suite)

Le cadre Agile (suite)

Approche itérative et incrémentale

Esprit collaboratif

– Placer les individus et leurs interactions au centre du dispositif

– Communication entre les différents acteurs d’un projet, au sein de l’équipe, mais aussi entre l’équipe et le client / les utilisateurs

– Respect des opinions des autres

– Capacité à exprimer des opinions différentes de façon non agressive

– Aptitude à rechercher et atteindre les consensus sans frustration

– Prédisposition à l’autodiscipline, voire à l’autogestion

– Créativité et performance de l’équipe

Formalisme léger

Produit de haute qualité

Acceptation du changement

Vous pouvez aussi consulter :

Manifeste Agile : la démarche

 

Manifeste Agile : 12 principes

Principes 1 et 2 :

Principes 3 et 4 :

Principes 5 et 6 :

Principes 7 et 8 :

Principes 9 et 10 : 

Principes 11 et 12 :

 

Manifeste Agile : 6 concepts

 

Manifeste Agile: 4 valeurs fondamentales

 

Pourquoi ?

 

Origine des méthodes Agile

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (12)

mai 25, 2015

Méthodes Agile (suite)

Le cadre Agile (suite)

Approche itérative et incrémentale :

– Découper le projet en plusieurs étapes d’une durée de quelques semaines : les itérations

. Au cours d’une itération, une version minimale du produit est développée puis soumise au client pour validation

. Les fonctionnalités sont ainsi intégrées au fur et à mesure du cycle de vie sur un mode incrémental

– Le système s’enrichissant progressivement pour atteindre les niveaux de satisfaction et de qualité requis :

. Chaque itération est un mini-projet en soi

. Activités de développement menées en parallèle

. Analyse, conception, codage et test

. Activités de management de projet

– L’objectif est d’atteindre à la fin de chaque itération un sous-ensemble opérationnel du système cible

– Et au terme de la dernière itération, la version finale du produit

– Le résultat d’une itération n’est pas un prototype ou une « proof of concept » mais bien une version intermédiaire du produit final

– Les itérations se succèdent et ne peuvent être parallélisées :

• Avancer prudemment et s’adapter au fur et à mesure

• Pas de plan de management de projet unique mais liste de besoins macroscopiques et macroplanning initial (grandes échéances et jalons principaux)

– Les itérations se succèdent et ne peuvent être parallélisées :

• A chaque itération, on sélectionne les fonctionnalités qui seront détaillées puis développées, en fonction de leur priorité

• Et on établit le micro-planning correspondant aux activités nécessaires pour le développement de ces fonctionnalités

– Les itérations se succèdent et ne peuvent être parallélisées :

• Principe du timeboxing (boîte de temps ou tranche de temps) :

1 – Date d’échéance fixe immuable pour l’itération

2 – Mobilisation des efforts sur des objectifs clairs à court terme

3 – Si les objectifs ne sont pas atteints, les enseignements seront tirés lors du bilan de l’itération pour corriger les conditions de l’itération suivante

 Avantages de l’approche itérative et incrémentale :

– La communication est de meilleure qualité

– La visibilité est meilleure

– La qualité est évaluée en continu

– Les risques sont détectés très tôt

– L’équipe prend confiance

– Les coûts sont contrôlés

Vous pouvez aussi consulter :

Manifeste Agile : la démarche

 

Manifeste Agile : 12 principes

Principes 1 et 2 :

Principes 3 et 4 :

Principes 5 et 6 :

Principes 7 et 8 :

Principes 9 et 10 : 

Principes 11 et 12 :

 

Manifeste Agile : 6 concepts

 

Manifeste Agile: 4 valeurs fondamentales

 

Pourquoi ?

 

Origine des méthodes Agile

 

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (11)

mai 25, 2015

Méthodes Agile

La démarche Agile

. Accueil du changement

. Collaboration étroite avec le client

. Applications fonctionnelles

. Ressources humaines et communication

 

Le cadre Agile

. Approche itérative et incrémentale

. Esprit collaboratif

. Formalisme léger

. Produit de haute qualité

. Acceptation du changement

 

Vous pouvez aussi consulter :

Manifeste Agile : 12 principes

Principes 1 et 2 :

Principes 3 et 4 :

Principes 5 et 6 :

Principes 7 et 8 :

Principes 9 et 10 : 

Principes 11 et 12 :

 

Manifeste Agile : 6 concepts

 

Manifeste Agile: 4 valeurs fondamentales

 

Pourquoi ?

 

Origine des méthodes Agile

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (10)

mai 25, 2015

Manifeste Agile (suite)

Principe 11 : Self-organization

The team decides how the tasks will be allocated, as opposed to being dictated to them.

The best architectures, requirements and designs emerge from self-organizing teams. The emergent properties for a complex project are best generated from self-organizing teams in which the interactions are high and processes are low.

– Les meilleures architectures, spécifications et conceptions sont le fruit d’équipes qui s’auto-organisent :

• Le chef de projet n’est pas celui qui attribue des tâches

• L’équipe, elle-même, se responsabilise et définit ses travaux à réaliser

• Le partage des tâches s’effectue sur la base du volontariat

Principe 12 : Regular reflections

Schedule Retrospectives to constantly reflect on the work that was completed and find ways to improve during the next iteration.

– A intervalles réguliers, l’équipe s’interroge sur la manière de devenir encore plus efficace, puis ajuste son comportement en conséquence :

• L’environnement d’un projet n’est pas constant

• L’équipe s’interroge en permanence sur la façon d’améliorer son fonctionnement afin de s’adapter aux nouvelles conditions

• C’est aussi ça l’acceptation du changement!

 

Vous pouvez aussi consulter :

Manifeste Agile : 12 principes

 

Manifeste Agile : 6 concepts

 

Manifeste Agile: 4 valeurs fondamentales

 

Pourquoi ?

 

Origine des méthodes Agile

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (9)

mai 25, 2015

Manifeste Agile (suite)

Principe 9 : Continuous attention

Continuous Attention to technical excellence and good design will allow the project team to respond more quickly and easily to change.

– Porter une attention continue à l’excellence technique et à la conception améliore l’agilité :
• Maintenir un code propre, évolutif et performant est un objectif permanent de l’équipe

• Il ne s’agit pas de produire du code non exploitable par les autres, ni du jetable

• Cela évite d’enliser les développements ultérieurs, avec des modifications cassant un développement fragile, nécessitant des interventions à des endroits variés du code

Principe 10 : Simplicity

Maximize the amount of work not done.

In agile processes, there is a strong taste of minimalism. Include only what everybody needs rather than what anybody needs. There is a point in time when any additional effort put into work product will increase its cost without increasing its value. It’s easy to continue developing a product beyond some point.
A Standish Group survey in 2009 stated that over 70% of functionality is never or rarely used.
Not doing that work is a great opportunity to do more valuable work.

– La simplicité (art de maximiser la quantité de travail non fait) est essentielle :

• La simplicité garantit l’évolutivité du système

• La complexité, au contraire coûte davantage et rend plus difficiles les évolutions inhérentes au développement incrémental

• La conception doit ne comporter que des éléments utiles

 

Vous pouvez aussi consulter :

Manifeste Agile : 12 principes

 

Manifeste Agile : 6 concepts

 

Manifeste Agile: 4 valeurs fondamentales

 

Pourquoi ?

 

Origine des méthodes Agile

 

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (8)

mai 25, 2015

Manifeste Agile (suite)

Principe 7 : Working software

True customer value is realized by delivering results, which is represented in terms of working software.

– Le fonctionnement de l’application est le premier indicateur d’avancement du projet :

• Il n’existe pas d’autre indicateur plus pertinent que le pourcentage ou le nombre d’exigences satisfaites

• On ne mesure pas un projet à la quantité de documents produits ou au nombre de lignes de code, non significatifs pour le client

Principe 8 : Constant pace

Sustain a constant development pace to minimize project team burnout and maximize optimal performance indefinitely.

– Rythme soutenable :

Les méthodes Agile recommandent que le projet avance à un rythme soutenable :

• La qualité du travail fourni dépend du rytme du travail qui doit être adapté en fonction des spécificités du projet

• Le rythme doit être soutenu et soutenable sur la durée du projet

Sponsors, développeurs et utilisateurs devraient pouvoir maintenir un rythme constant indéfiniment :

• Ce rythme de travail est à déterminer par l’ensemble des membres de l’équipe et par le client, en fonction de la productivité de l’équipe et des priorités du client

• Travailler en heures supplémentaires pour corriger des bogues ou des régressions n’apporte aucune valeur ajoutée

 

Vous pouvez aussi consulter :

Manifeste Agile : 12 principes

 

Manifeste Agile : 6 concepts

 

Manifeste Agile: 4 valeurs fondamentales

 

Pourquoi ?

 

Origine des méthodes Agile

 

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (7)

mai 25, 2015

Manifeste Agile (suite)

Principe 5 : Motivated individuals

Build your team around motivated individuals and trust them to do the work.

– Construire des projets autour d’individus motivés. Leur donner l’environnement et le support dont ils ont besoin et leur faire confiance pour remplir leur mission :

• Le facteur clé du succès d’un projet est l’équipe

• Tout obstacle à son bon fonctionnement devra être levé

• Un changement, s’il s’avère nécessaire, sera apporté aux processus, aux outils, à l’environnement, à la composition de l’équipe

Principe 6 : Face-to-face contacts

Face-to-Face communication is the most effective method for exchanging ideas.

– La méthode la plus efficace de communiquer des informations à une équipe et au sein de celle-ci reste la conversation en face à face :

• Par défaut, on privilégie l’oral à l’écrit, pour lever toute ambiguïté et favoriser la rapidité de la compréhension

• Tout ne peut être formalisé par écrit, notamment la “connaissance tacite”, c’est à dire, “l’information informelle”, la culture du projet, détenues par chacun au sein d’une équipe

 

Vous pouvez aussi consulter :

Manifeste Agile : 12 principes

 

Manifeste Agile : 6 concepts

 

Manifeste Agile: 4 valeurs fondamentales

 

Pourquoi ?

 

Origine des méthodes Agile

 

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (6)

mai 25, 2015

Manifeste Agile (suite)

Principe 3 : Frequent delivery

Get working software delivered to the customer as soon as possible.

– Livrer le plus souvent possible des versions opérationnelles de l’application, à une fréquence allant de 2 semaines à 2 mois :
• 1 version intermédiaire du produit final, visible et testable satisfait davantage le client qu’une documentation à valider
• Il a la preuve tangible que le projet avance
• Il peut exprimer son point de vue sur le résultat présenté

Principe 4 : Colocated teams

Bring the project team and the customers together, preferably colocated in the same physical area.

– Client et développeurs doivent coopérer quotidiennement tout au long du projet :
• Les relations conflictuelles ne font pas partie de l’esprit Agile
• Les relations collaboratives et partenariales basées sur la confiance et le consensus sont préférables
• Le client (ou son représentant) est accessible et disponible, totalement impliqué dans toutes les phases du projet

 

Vous pouvez aussi consulter :

Manifeste Agile : 12 principes

 

Manifeste Agile : 6 concepts

 

Manifeste Agile: 4 valeurs fondamentales

 

Pourquoi ?

 

Origine des méthodes Agile

 

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (5)

mai 25, 2015

Manifeste Agile

Principe 1 : Customer satisfaction

Satisfy the customer by delivering software that provides value to the customer early, and often.

– Notre priorité est de satisfaire le client en lui livrant très tôt et régulièrement des versions opérationnelles de l’application, source de valeur :

• Développement itératif, livraison intermédiaire

• Validation par le client et feedback

• Conformité de la livraison aux attentes ou prise en compte des remarques et re-priorisation

 

Principe 2 : Welcoming change

It is expected that requirements will change and these changes are welcomed.

– Accepter le changement dans les exigences, même tard dans le cycle de vie, pour garantir la compétitivité du client :

• Etat d’esprit de l’équipe Agile

• Capacité à comprendre et apprendre comment satisfaire encore mieux la demande

 

Vous pouvez aussi consulter:

Manifeste Agile : 12 principes

 

Manifeste Agile : 6 concepts

 

Manifeste Agile: 4 valeurs fondamentales

 

Pourquoi ?

 

Origine des méthodes Agile

 

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (4)

mai 25, 2015

Manifeste Agile

6 concepts

Les 6 concepts du manifeste Agile, qui doivent être considérés de façon interdépendante:
– Valeur
– Incertitude
– Client
– Individus
– Equipe
– Contexte

En conséquence :
– Vous ne pouvez créer de la valeur si vous ne collaborez pas avec le client, qui précisément définit ce qu’est sa valeur
– Vous ne pouvez attendre d’une équipe qu’elle soit performante si vous ne reconnaissez pas la contribution des individus qui la composent
– Vous ne pouvez maîtriser l’incertitude si vous ne prenez pas en considération la spécificité du contexte

 

Vous pouvez aussi consulter:

Manifeste Agile : 12 principes

 

Manifeste Agile: 4 valeurs fondamentales

 

Pourquoi ?

 

Origine des méthodes Agile

 

 

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (3)

mai 25, 2015

Manifeste Agile

12 principes

1) Customer satisfaction

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

· Notre première priorité est de satisfaire le client en livrant tôt et régulièrement des logiciels utiles.

2) Welcoming change

Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.

· Le changement doit être accepté, même tardivement dans le développement. Les processus agiles exploitent le changement comme avantage compétitif pour le client.

3) Frequent delivery

Deliver working software frequently, from a couple of weeks to a couple of months, with preference to the shorter timescale.

· Livrer fréquemment une application fonctionnelle, toutes les deux semaines à deux mois, avec une tendance pour la période la plus courte.

4) Colocated teams

Business people and developers must work together daily throughout the project.

· Les experts métier et les développeurs doivent collaborer quotidiennement au projet.

5) Motivated individuals

Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

· Bâtissez le projet autour de personnes motivées. Donnez leur l’environnement et le soutien dont elles ont besoin, et croyez en leur capacité à faire le travail.

6) Face-to-face contacts

The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

· La méthode la plus efficace pour transmettre l’information est une conversation en face à face.

7) Working software

Working software is the primary measure of progress.

· Un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet.

8) Constant pace

Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

· Les processus agiles correspondent à un rythme de développement soutenable. Commanditaires, développeurs et utilisateurs devraient pouvoir maintenir le rythme indéfiniment.

9) Continuous attention

Continuous attention to technical excellence and good design enhances agility.

· Une attention continue à l’excellence technique et à la qualité de la conception améliore l’agilité.

10) Simplicity

Simplicity–the art of maximizing the amount of work not done–is essential.

· La simplicité – l’art de maximiser la quantité de travail à ne pas faire – est essentielle.

11) Self-organizion

The best architectures, requirements, and designs emerge from self-organizing teams.

· Les meilleures architectures, spécifications et conceptions sont issues d’équipes qui s’auto-organisent.

12) Regular reflections

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

· À intervalle régulier, l’équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son comportement dans ce sens. »

[Manifesto for Agile Software Development. Agile Alliance.]

L’agile va favoriser les interactions entre les acteurs d’un projet plutôt que la conformité à un « plan ». Cela ne veut pas dire que le plan n’est pas important, juste que l’on pense que la meilleure façon de réussir le projet est surtout de parvenir à faire travailler ensemble et de la façon la plus saine possible tous les acteurs d’un projet, plutôt que de suivre aveuglément un plan qui ne sera peut être plus si pertinent quelques mois plus tard.

Les méthodes agiles sont un moyen de faire discuter la MOA et la MOE sur toutes les étapes concernant le « concevoir » et le « réaliser » dans un projet. Elles sont aussi une certaine expression du lean management au niveau « projet » (au niveau de la conception d’un logiciel typiquement).

 

Vous pouvez aussi consulter:

Manifeste Agile: 4 valeurs fondamentales

 

Pourquoi ?

 

Origine des méthodes Agile

 

 

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (2)

mai 25, 2015

Manifeste Agile

– 4 valeurs fondamentales

· Préférer l’interaction avec les personnes aux processus et aux outils. (Individuals and interaction over processes and tools)

· Préférer un produit opérationnel à une documentation pléthorique. (Working software over comprehensive documentation)

· Préférer la collaboration avec le client à la négociation d’un contrat. (Customer collaboration over contract negotiation)

· Préférer la « réactivité au changement » au suivi d’un plan. (Responding to change over following a plan)

 

Comme il est précisé dans chacune des valeurs, il n’est pas dit ici que les valeurs « à la droite des phrases » ne sont pas importantes, mais juste que, à choisir, on leur préférera celles de gauche qui sont essentielles.

Vous pouvez aussi consulter :

Pourquoi ?

 

Origine

 

0

Agile, Agile, vous avez dit Agile, comme c’est bizarre ! (1)

mai 25, 2015

Pourquoi des méthodes Agile ?

Oui pourquoi imaginer des méthodes Agile ?

Pour :

– Réduire le temps de mise sur le marché (Time to market)

– Améliorer la qualité

– Réduire les activités sans réelle valeur ajoutée

– Travailler sur des éléments de plus grande valeur

– Avoir une meilleure prévisibilité

– Avoir du plaisir au travail

L’agilité

Qu’est-ce qu’une méthode Agile ?

– Une méthode Agile est une approche itérative et incrémentale, qui est menée dans un esprit collaboratif, avec juste ce qu’il faut de formalisme

– Elle génère un produit de haute qualité tout en prenant en compte l’évolution des besoins du client

 

Origine des méthodes Agile

– Mouvement né en 2001 aux USA

– Réunion de 17 experts en développement logiciel

– But: trouver un socle commun de valeurs et de bonnes pratiques

– Résultats : écriture du Manifeste pour le développement logiciel Agile et création de l’Agile Alliance,  association chargée de la promotion de l’agilité et du soutien aux équipes

Phrase d’accroche du Manifeste Agile:

« Nous découvrons de meilleures approches pour le développement informatique en en faisant nous même, ainsi qu’en aidant les autres dans leur travail. »
0

PMI-ACP exam prep tips and tricks (5)

mai 24, 2015

Agile analysis and design

1- Agile modeling

2- Chartering

3- Personas

A persona is a notional user of the system under development.

Being much more detailed than actors in use case modeling where generic user names are assigned (e.g., end user), personas try to elaborate on users with detailed descriptions to provide context to the developers.

Some personas have such notional details as name, address, age, income, likes and dislikes, and other specific details.

All details are important details

 

Extrem character

Some exceptional personas

We should identify them since it leads to identification of some of the important user stories which we may miss if we do not identify them.

Source : [User Stories Applied: For Agile Software Development. Mike Cohn.]

 

Examples of questions for the PMI-ACP exam :
Question 1 :

In agile modeling, what is a persona?
A. A made up personality used for facilitating the daily stand-up meeting
B. An assigned personality used in reflection workshops.
C. A notional user of the system under development.
D. A method to describe the customer’s personality for the day so the team may adapt to his or her feedback in the most effective way

Answer 1 :

C – A persona is a notional user of the system under development. Being much more detailed than actors in use case modeling where generic user names are assigned (e.g., end user), personas try to elaborate on users with detailed descriptions to provide context to the developers. Some personas have such notional details as name, address, age, income, likes and dislikes, and other specific details. [User Stories Applied: For Agile Software Development. Mike Cohn.] [Agile analysis and design]

0

PMI-ACP exam prep tips and tricks (4)

mai 24, 2015

Agile analysis and design

1- Agile modeling

2- Chartering

The Crystal development process is cyclical/iterative.

Its primary components are chartering, delivery cycles, and project wrap-up.

Chartering involves creating a project charter, which can last from a few days to a few weeks.

Chartering consists of four activities:

1) Building the core project team

2) Performing an Exploratory 360° assessment

3) Fine tuning the methodology

4) Building the initial project plan

Source : [Agile Software Development: The Cooperative Game – 2nd Edition. Alistair Cockburn.]

Examples of questions for the PMI-ACP exam :
Question 1 :

In which agile project management methodology does chartering play a significant role?
A. TDD
B. Crystal
C. XP
D. FDD

 Answer 1 :

B – The Crystal development process is cyclical/iterative. Its primary components are chartering, delivery cycles, and project wrap-up. Chartering involves creating a project charter, which can last from a few days to a few weeks. Chartering consists of four activities: 1) Building the core project team, 2) performing an Exploratory 360° assessment, 3) fine tuning the methodology, and 3) building the initial project plan. [Agile Software Development: The Cooperative Game – 2nd Edition. Alistair Cockburn.] [Agile analysis and design]

Question 2 :

What is the purpose of the Exploratory 360 assessment?
A. To define the core project team
B. To assess project soundness in terms of business value and feasibility
C. To conduct an introspective reflection on the team makeup
D. To define a project mission and vision

 Answer 2 :

B – The executive sponsor conducts the Exploratory 360° assessment to assess the business case of the project. Several dimensions are explored: business value, requirements, domain area, and technology impacts. Based on the results the team adjusts the Crystal methodology to the need or, in some cases, the project may be cancelled if serious issues are discovered. [Agile Software Development: The Cooperative Game2nd Edition. Alistair Cockburn.] [Agile analysis and design]

0