Gestion de Projet

XP

Wiki

Extreme programming est une méthodologie qui s'inscrit dans le modèle agile, il tend à pousser des bonnes pratiques de conception logiciel et de management à l'extrème:

En plus de l'ensemble de ces bonnes pratique, on doit également à XP l'annalogie de la dette technique.

Dans la même logique que Scrum, XP se veut dynamique, il est de la responsabilité de l'équipe de faire évoluer ces pratiques; le client occupe aussi une part importante et se doit d'être disponible pour répondre aux questions.

Continuous Delivery

Wiki

La livraison continue est une méthodologie qui veut que chaque changement doit se retrouver en production. Pour y arriver, il faut mettre en place un pipeline de contrôle automatique qui va acheminer une nouvelle fonctionnalité du PC du développeur au serveur de production.

pipeline

Cependant toujours mettre en ligne n'est pas l'idéal: la plupart des fonctionnalités ne peuvent pas être développées en un seul commit. Pour éviter de se retrouver avec des demi-fonctionnalités en ligne, on peut avoir recourt à deux techniques:

La première est le Blue-Green Deployment, deux environnements de production co-existent: le premier avec "l'ancienne" version qui n'est plus modifiée et le second avec la "nouvelle" version où les fonctionnalités sont ajoutées petit à petit. L'équipe décide du moment où la nouvelle version remplacera l'ancienne version dans l'autre environnement.

La seconde est le Feature Toggle Cette fois la "disponibilité" d'une fonctionnalité n'est plus lié à son environnement mais via du code, chaque fonctionnalité doit explicitement être décrite comme accessible aux utilisateurs.

Quelques commitstrips:

Toutes les boites ont un environnement de développement, puis quelques chanceux ont un environnement de production en plus. ~Lu quelque part sur internet

DevOps

Wiki

Gros changement de culture, les devs travaillent maintenant directement avec les ops (ce qui n'était pas le cas avant).

Lean Software Develpment

Lean est une méthodologie inventée par Toyota, LSD reprend les principes de Lean pour les appliquer au développement. Cette méthodologie s'inscrit dans le modèle agile.

1) Eliminate Waste

Tout ce qui ralentit le déploiement de fonctionnalités utiles doit être retravaillé pour optimiser le processus de développement.

2) Amplify Learning

Développer une application demande de la créativité, il est crucial que les développeurs puissent s'améliorer en leur laissant le temps nécessaire pour experimenter et pour faire des recherches.

3) Decide as late as possible

Prendre des décisions à priori (utiliser un SGBD plutôt qu'un autre, sql vs nosql) sans réellement savoir si c'est le bon choix peut cacher une terrible dette technique. Si il y a moyen de reporter une décision à plus tard, il est crucial de le faire.

4) Deliver as soon as possible

Voir Continuous Delivery

5) Empower the team

6) Build integrity in

Voir Extreme Programming

7) See the whole

Voir Kanban

Kanban

Méthodologie LSD qui reprend et renforce certains concepts d'XP.

En opposition à scrum/xp qui cassent la hiérarchie mise en place et forcent les gens à devenir multirôle, Kanban préconise de faire évoluer le processus en place (en maintenant rôles, titres et expertises) avec une succession de petit changement. Chaque individu de l'équipe est encourager à prendre des initiatives pour faire évoluer la méthodologie actuelle vers un mieux. Dans ce sens, kanban applique vraiment le 5e principe de LSD : Empower the Team.

Sur cette base, kanban ajoute quelques bonnes pratiques ayant pour but de renforcer le 7e principe de LSD : See the whole en reprenant le grand tableau blanc d'XP pour y ajouter les éléments suivant:

1) Enrichir le tableau avec de nouvelles colonnes pour que chacun, des analystes aux testeurs, puisse se rendre compte du travail des autres. 2) Limiter le travail en cours en inscrivant clairement le nombre maximal de carte qui peuvent se trouver dans une même colonne. 3) Donner des niveaux de priorités à chaque carte.

kanban board