Coaching Agile

Agile, Scrum et autres pensées
Laurent Carbonnaux

Plan estimé vs Task estimé

Estimation descendante vs Estimation montante
Macro planning vs micro planning (même si ce n’est pas un planning)

Le produit est défini par User Stories, les niveaux « L1 ».
Les User Stories sont estimés par la méthode des Use Case points.
Ces estimations permettent la définition du plan d’itération, roadmap de l’application.

Des User Stories aux fonctions élémentaires, c’est l’estimation descendante.
Les User stories sont décomposés Business Scénarios :
Scénario principal (aux), scénarios alternatifs, scénarios d’exception.
Décomposition jusqu’au niveau fonction élémentaire. Affinage de l’estimation, ré-estimation indépendante à chaque étage. Cette étape peut être assimilée à l’analyse fonctionnelle, et doit s’effectuer de manière itérative aussi, en fonction du plan d’itération.

Pour l’itération à venir, on prépare l’estimation montante :
A partir des fonctions élémentaires, décomposition en tâches de « développement ». J’entends par tâche de développement, toute activité nécessaire à la production jusqu’à terme de la fonctionnalité : code, tests unitaires, revue de code, intégration, tests fonctionnels,…

La grande majorité des développements applicatifs se basant dorénavant sur un ou plusieurs frameworks, il est facile d’établir une sorte de check-list des tâches. Pour chaque fonction élémentaire, on peut choisir les tâches applicables issues de cette check-list.

A partir de là, les niveaux « L2 » sont définis, leur estimation est effectuée lors du planning game par l’équipe. C’est l’estimation montante : La somme des estimations des tâches prises en compte pour l’itération est à confronter avec la vélocité. Cela peut avoir un impact sur le plan d’itération du fait que l’estimation montante n’est pas nécessairement égale (voir jamais) à l’estimation descendante.

Pendant le sprint (l’itération), le reste à faire est mise à jour, ainsi que le consommé.
En fin d’itération, il est important de reconsidérer les trois valeurs :
  • Plan estimé : estimation macroscopique, estimation descendante
  • Task estimé : estimation unitaires des tâches de l’itération, estimation montante
  • Effort réel : Temps réellement passé à produire les tâches
A partir de ces informations on peut évaluer l’impact sur le plan d’itération, la vie du produit.

La décomposition précise des User Stories en scénarios, puis en fonctions élémentaires, et enfin en tâches, permet à tout intervenant sur le projet
  • d’identifier,
  • de comprendre,
  • d’adhérer
au contenu fonctionnel du produit.

Cela permet dans une certaine mesure de s’affranchir d’une documentation de spécification détaillée proche du code qui alourdi le process.
L’autre mérite est de traiter la traçabilité sans s’en rendre compte, c’est le cas de la combinaison d'utilisation des outils Rally et Eclipse Mylin et SVN (ou CVS).

Source et rangement

Tout comme à la maison (d’après ma femme !), il est utile pour retrouver ces petits de faire un peu de rangement.
L’organisation du code source ne déroge pas à cette règle. Cela peut paraître simpliste, voir inutile de faire un papier sur ce sujet, mais l’expérience me prouve que ce sujet n’est pas toujours appliqué.


Le principe est simple :

  • L’environnement de développement doit être identique à l’environnement de production.


J’entends par là que les sources, les fichiers de configuration, les scripts et tous autres artefacts qui servent à la mise en œuvre de l’application doivent être rangés dans des répertoires organisés de la même manière que ceux déployer pour exécution.
Ce principe de base d’organisation de la configuration logicielle simplifie le déploiement, les procédures d’installation en évitant les « pertes » de fichiers.

Autre avantage à cette organisation des sources et de limiter la divergence d’exécution entre la version lancée sous Eclipse et celle déployée. De permettre donc de traiter (identifier, voir reproduire) les bugs en environnement de dév, plutôt qu’en environnement d’intégration où il n’y a souvent pas de débugger.

Avec Eclipse, j’engage les développeurs à utiliser un projet par package fonctionnel mais aussi technique : 1 pour le client, 1 pour le serveur, 1 pour les tests, 1 pour les « commons ».
Cela garantie la séparation des couches et évite au développeur de tirer des classes serveurs directement dans le package client.
L’utilisation des Working Set Eclipse permet d’améliorer la vue lorsqu’il y a une multitude de projets.
Sans parler de standardisation (breeuuu…), l’organisation des sources pour le développement d’une appli web est souvent contrainte par l’organisation des conteneurs (webapps).
Répertoire WEB-INF, lib, js, conf, … Certains plugins Eclipse imposent même l’arborescence des sources.
Il est intéressant de s’inspirer de ces principes pour le développement d’application non web.

Manifeste Agile

J'ai cherché sur le net une traduction en Français du manifeste Agile.


Celles que j’ai trouvées ne correspondaient pas.
Elles changeaient le sens premier du manifeste. Le mot "over" surtout était traduit par "remplace" dans la plus part des cas. Hors, la légende du manifeste précise bien que l'accent est porté sur le début de chaque phrase, même si la fin de la phrase est nécessaire. J'y ai donc préféré le verbe "primer".

J’ai fini par faire la traduction moi-même et la propose ici :
  • Les individus et les interactions priment sur les processus et les outils
  • Un logiciel qui marche prime sur une documentation exhaustive
  • La collaboration avec le client prime sur la négociation contractuelle
  • L’ouverture au changement prime sur le suivi d’un plan rigide

L'Auteur

Laurent Carbonnaux

Actuellement Chef de Projet chez Valtech Technology Consulting

Profil et domaine d’intervention

Je possède une longue expérience de gestion de projet ainsi que de responsable technique et architecture.

Appliqué dans des domaines aussi variés que la banque, le spatial, l’avionique.

Cette expérience me permet de maîtriser les coûts et le contrôle qualité des projets qui me sont confiés tout au long de leur cycle de développement.

Je suis certifié Scrum Master depuis Juin 2006.

Les points communs de ces missions sont :

  • Management d’équipe et coordination technique
  • Définition d’architecture et modélisation objet
  • Mise en œuvre des méthodes RUP et Agile Scrum.

Agilité et Web2.0

Je viens de participer à un séminaire organisé par le CNES sur le thème :
"Impact et retours du Web 2.0 en entreprise".
http://cct.cnes.fr/cct05/public/sommaire.htm

J'ai pour ma part présenté l'apport du Web 2.0 dans le contexte de nos projets Agiles.

L'apport fonctionnel dans un premier temps: Communautaire, participatif et créatif.
Puis l'apport des technologies Web2.0 (type Ajax, Flex, ...), apportant une souplesse ergonomique fort pratique, et changeant nos vieux sites Web en un framework collaboratif grâce à l'intégration de différents outils : Confluence, Rally, Trac, Eclipse (Mylin), Continuum, ...

Il est intéressant de voir que le Web 2.0, tout comme l'Agilité, fait encore peur en entreprise.
Est-ce la peur de la perte de contrôle pour certains au regard de la prise de responsabilité par les autres?
A suivre...

Bonjour à toutes et à tous.

Il fallait bien un début. Je pensais que la meilleure façon était de vous
souhaiter la bienvenue sur ce blog.