Introduction à l’agilité

Look! It's paired programming!

Image via Wikipedia

Lors de mon précédent billet, j’ai décrit les deux principales lacunes du modèle traditionnel de développement logiciel, la méthode Waterfall.

Les autres méthodologies

Le constat que j’ai fait en 2010 en tentant de comprendre mes processus de programmation m’ont emmené à chercher des méthodes plus conviviales, plus ‘logiques’, de développer mes applications. J’en ai passé des heures de lectures et de recherche. J’ai commencé par découvrir les méthodes d’Extreme Programming, qui focussent sur la programmation par équipe de deux, l’idée étant que deux têtes valent mieux qu’une pour régler un problème complexe.

J’ai aussi trouvé des lectures intéressantes sur la méthodologie LEAN. Cette méthode de gestion de projet tire ses origines au Japon, et vise littéralement à dégraisser toutes les étapes de la gestion du projet de leurs impuretés en visant une amélioration constante.

Finalement, j’ai lu énormément sur la méthode SCRUM. C’est d’ailleurs le concept qui m’a le plus interpellé. Les méthodes SCRUM visent à voir le projet non pas comme une liste de livrables à faire, mais comme une courte itération de longueur fixe. Sans entrer dans les détails, j’insiste sur les mots ‘une courte itération‘. En Scrum, le futur n’a pas d’importance, et le passé non plus. Les efforts de l’équipe sont pour ainsi dire spontanés, définis dans un très court laps de temps variant entre une ou quatre semaines au maximum.

Le modèle Agile

Le dictionnaire Larousse définit le mot agile comme suit:

  • Qui a de l’aisance et de la promptitude dans les mouvements du corps ; souple, alerte : Un enfant agile comme un chat.
  • Qui est vif, prompt à comprendre : Un esprit agile.

Les méthodologies Extreme ProgrammingLEAN et Scrum cadrent parfaitement dans cette description. C’est ce qui m’a plus au fil de mes lectures. Toutes ces différentes méthodes de gestion de projet de développement ont ceci en commun qu’ils chamboulent complètement la vision que j’avais du développement logiciel. Avec ces méthodes, les changements sont nos alliés au lieu d’être l’ennemi à abattre. Plus encore, avec ces méthodes, les changements deviennent une source de motivation. Depuis que j’ai adopté dans mon travail la méthodologie SCRUM, je peux vous le dire, j’ai hâte aux changements.

Chacune de ces méthodologies mérite à elles seule plusieurs billets, qui viendront ultérieurement. Qu’il suffise pour l’instant de préciser que ces méthodes ont toutes en commun un désir de réconcilier l’humain avec la nature changeante des choses. Être agile signifie pour moi être capable de s’adapter dans le cadre de mon travail. Être capable de me revirer de bord rapidement. Et d’avoir du plaisir à le faire.

Gestion de projets

L’ensemble des méthodologies Agile est en fait un concept de gestion de projet nettement différent de tout ce que j’avais vu avant. Le manifeste Agile, tel que rédigé par ses auteurs, mets de l’avant les valeurs véhiculées par leur concept:

Nous valorisons:
Les individus et leurs interactions plus que les processus et les outils;
Des logiciels opérationnels plus qu’une documentation exhaustive;
La collaboration avec les clients plus que la négociation contractuelle;
L’adaptation au changement plus que le suivi d’un plan;

Je dois dire qu’en tant que programmeur, ce sont là des concepts auxquels je n’étais pas habitué! Mais quand on y pense, c’est bien logique. Une des beautés des méthodologies Agile réside dans le fait qu’elles ne nécessitent pas de logiciels coûteux pour être mise en pratique par toute une équipe de développement. Évidemment, certains outils sont disponibles, et j’en ai testé des dizaines. D’autres billets couvriront les résultats de mes recherches en ce sens. Mais essentiellement, une équipe peut rapidement mettre en branle un programme d’agilité avec un simple tableau de liège ou un tableau blanc, un peu de bonne volonté et une ouverture d’esprit. Pour les équipes distantes, un document Excel ou une feuille de calcul partagé Google Docs suffira.

En conclusion

J’ai dressé ici un tout petit aperçu de ce que sont les méthodologies Agile. Bien que le modèle d’Extreme Programming ne soit aisé pas à intégrer pour les petites firmes informatiques, le modèle LEAN et la méthode des SCRUMs peuvent parfaitement être mis en branle en quelques semaines. Pour ma part, étant un télétravailleur, et mon équipe ne se composant que de moi-même, il me fut relativement aisé d’intégrer la méthodologie Scrum à mon contexte de travail, même si à la base ce modèle est un modèle collaboratif pour des équipes plus grande que la mienne. D’ailleurs, je consacrerai ultérieurement un billet entier au travail optimisé pour petites équipes.

D’ici là je vous invite fortement à lire le manifeste Agile, qui est la référence pour bien comprendre l’essence de la philosophie Agile dans le développement logiciel.

Publicités
Tagué , , , , ,

5 réflexions sur “Introduction à l’agilité

  1. […] productif, que ce soit par l’application des méthodologies agiles ou par quelques autres techniques, demande du temps et de l’effort. Beaucoup de volonté […]

  2. […] vous encourage dès aujourd’hui, même si vous n’avez pas encore adopté de méthodologie agile, à commencer  à noter vos demandes et celles de vos clients sous forme de petites histoires. […]

  3. […] est une méthodologie agile orientée vers la gestion de projet. Alors que d’autres méthodologies agiles définissent un […]

  4. […] tableau de liège est le parfait complice des adeptes de méthodologies agiles. Le maître du Scrum s’en servira pour suivre le suivi de ses sprints, tandis qu’il […]

  5. […] philosophie dans mon travail. C’est cette journée là que j’ai décidé de devenir Agile. Au delà de l’aspect gestion de projet et organisation du travail, j’ai eu ce jour là […]

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :