Archive for the ‘Agile’ Category

Rencontre Devops le 15 Juin

Tuesday, June 14th, 2011
Parisdevops

Mercredi 15 Juin, Valtech accueillera le User Group DevOps dans l’auditorium du 103 rue de Grenelle à Paris.

Cette 5ème soirée du User Group sera animée par Cyrille Le Clerc qui nous parlera de JMX et de Feature Toggle Pattern.

DevOps

Mais qu’est ce que DevOps ?  C’est un mouvement émergeant qui vise à rapprocher les équipes de développement et les opérations (la production en français) pour mieux résoudre les problèmes de déploiement et de suivi de production.

La démarche part de quelques constats : la siloïsation de l’informatique qui empêche toute synergie, les problèmes de déploiement, le phénomène « It works on my computer !« , la peur du changement qui bloque toute démarche de part et d’autre.

La solution passe par une collaboration, les échanges de point de vue autour d’une pizza, l’intégration des ops dans les projets, la montée en compétence des Ops sur le Dev et des Devs sur les Ops et au final une meilleure compréhension des contraintes des uns et des autres.

D’une certaine manière, c’est la continuité de la démarche Agile. Une application développée, mais qu’on arrive pas à déployer, n’apporte aucun service aux utilisateurs. Il faut donc travailler ensemble, Dev et Ops pour régler les problèmes.

Ces rencontres autour de sujets frontières sont une manière de rapprocher les équipes.

Pen

JMX

La première partie de la soirée sera consacrée à JMX.

JMX (Java Management Extension) est une API Java qui permet de gérer le serveur d’applications ou les applications Java à distance. Elle est fonctionnellement équivalente à LDAP.

Les MBeans JMX embarqués dans le serveur permettent de relever des valeurs via des sondes, de modifier des paramétrage ou d’invoquer à distance des opérations telles que le démarrage ou l’arrêt de services. Il possède également des fonctions de notification d’alertes.

JMX n’est ni vraiment dans la culture des Ops (c’est du Java et donc pas si simple à intégrer dans leurs outils préférés) ni des Devs qui pensent rarement à y faire appel pour faire des capteurs et interfaces de configuration du système qu’ils fabriquent. Et pourtant, c’est un outil puissant pour communiquer avec les outils de surveillance et d’alerte de manière standard.

Cyrille présentera JMX puis nous montrera comment manipuler JMX via du scripting en Groovy et l’intégrer JMX dans des outils de surveillance ou des grapheurs (Hypéric HQ, Graphite).

Pen

Feature Toggle Pattern

La seconde partie de la soirée sera consacrée au Feature Toggle Pattern.

Le Feature Toggle est une technique qui permet d’activer/désactiver des fonctionnalités présentes dans une application. L’application peut contenir plusieurs versions d’une fonctionnalité, soit parce qu’elle a évoluée, soit parce qu’on veut mettre en place des implémentations différentes.

Les motivations sont souvent liées au test, soit pour faire des tests comparatifs (A/B testing par exemple), soit pour tester sur un échantillon avant un déploiement plus large (dans un cadre de déploiement continu par exemple).
Les fonctionnalités alternatives seront activées sélectivement en fonction des instances du serveur.

Cyrille nous montrera comment l’implémenter dans l’application et comment le contrôler à distance via JMX.

Pen

S’inscrire

Nous vous attendons nombreux pour cette soirée.

Pour vous inscrire : paris-devops-meetup-5

Retrouver également les activités et actualités du User Group DevOps sur son site parisdevops.frTwitter et Google Group.

Crédit des images

http://www.flickr.com/photos/emaringolo/1404829642/

http://www.flickr.com/photos/roadsideguitars/3210448415/

http://www.flickr.com/photos/vignetfishnet/5716635630/

Les « équipes transverses » vues par un développeur agile.

Friday, May 20th, 2011

Ma mission actuelle

Actuellement j’effectue une prestation pour une banque. Décrire ce métier n’est pas aussi simple que ça en a l’air et en plus ça n’est pas vraiment le sujet de cet article. C’est néanmoins avec appréhension que j’ai accepté cette mission, ne connaissant que d’un point de vue extérieur le domaine métier de la banque.

Le contexte de la mission m’a très rapidement rassuré : Je devais intervenir au sein de l’équipe « usine logicielle » (on va dire UL) afin de la faire évoluer, de la maintenir et aussi d’intégrer une fonction support.

Avant de continuer, il me faut décrire le contexte technique des développements au sein de cette banque, du moins ceux pris en compte par l’UL :

  • les applications sont des clients légers, reposant coté serveur sur du Java.
  • l’IDE utilisé est Eclipse.
  • une grande partie des applications concerne la banque en ligne, à destination des clients.
  • une autre grande partie concerne les applications internes à la banque. Il a été décidé, pour garder une homogénéité assez large, d’avoir pour ces applications la même charte graphique, les mêmes contrôleurs… bref, une même « tronche ».

Pour ce faire, Il a été mis en place un plugin Eclipse « maison », un framework « maison », des règles de qualité « maison » :

  • le framework est une couche développée au dessus des habituelles bibliothèques (Spring, Hibernate…)
  • le plugin Eclipse développé pour accompagner les développeurs pour la création, le développement, la compilation et le déploiement des applications.
  • les règles de qualité, exploitant principalement ceux des plugins de référence PMD et Checkstyle.

 

Ce que Fait l’équipe

L’équipe à laquelle j’appartiens fait partie d’un pôle d’équipes régissant ces différents aspects : parmi elles, les administrateurs des serveurs – bien évidemment -, l’équipe qui met en place, développe et maintient le framework, et l’équipe UL, en charge des aspects de l’usine logicielle (intégration continue, qualité, dépôt de version…)

Et voici donc le rôle de notre équipe :

  • Mettre en place le serveur d’intégration continue Hudson, architecturé à grande échelle, avec maitre-esclaves et tout, qui sert de pivot à à peu près tout (j’y reviendrai plus loin) ;  le configurer, gérer les files d’attente, et les déploiements en recette.
  • Développer et mettre en place tous les mécanismes de livraison internes à l’IDE.
  • Administrer un bon paquet d’applis centrales (subversion, un wiki, d’autres intranets…)
  • Développer, mettre en place et fixer les règles de qualité qui font qu’une application est bonne à livrer en production ou pas.
  • Offrir un socle de développement permettant d’exploiter ces outils (Eclipse, jre6, tomcat pré configurés…)
  • Et évidemment avoir un rôle de support : quand on offre de telles solutions, faut prévoir les cas ou les utilisateurs ont un problème avec ces solutions…

A noter, cette équipe se dit fonctionner en mode Scrum, à la limite du KanBan quand même : les post-its sont là, ils bougent d’une colonne à l’autre pendant les sprints de 3 semaines, ces sprints donnent lieu à des rétros, des planifs et il y a même un burndown chart.

Sauf que…

Eh bien l’indisponibilité liée aux assistances, estimée à 50%, peut énormément varier , ce qui rend très difficile une application littérale de Scrum ; il y a rarement de développements à proprement parler ni de livrables  (donc pas de démos franches) ; il n’y pas vraiment de product-owner non plus. L’équipe UL fonctionne souvent à flux tendu…

Pourquoi le fait-elle

A la base, le besoin d’industrialiser les développements est évidemment le même qu’ailleurs : s’assurer que ce qui part en production fonctionnera bien.

Sans vouloir remettre en cause ni la cascade ni le cycle en V, il faut reconnaître que le cycle itératif, induit par le build continu, présente des avantages tout à fait considérables (!), parmi eux  le fait pour les MOA/MOE d’être au fait de la bonne santé des applications, et ce à tous les niveaux.

Un deuxième intérêt est de valider ou non une application selon des critères de qualité objectifs, définis via  les plugins PMD-checkstyle par l’équipe.

Le véritable intérêt se trouve surtout dans les tests « fonctionnels » : comme les contrôleurs des applis sont très souvent les mêmes (grâce au framework), il a été très rapidement aisé d’utiliser et de mutualiser l’outil Selenium. L’équipe UL a ainsi mis en place deux seuils validant ou non une livraison : Un seuil de 5% de couverture de code par les tests unitaires, et un seuil de 40% par les tests Selenium, ce qui peut paraître peu ; cependant il faut savoir que ces deux seuils se sont greffés sur des projets existants sans tests, et sont voués à augmenter.

Forcer ces seuils présente un double avantage : habituer les développeurs à tester leurs développements, voire à les convertir au cycle TDD, et bien sûr s’assurer de la non régression des applications.

Les limites

Tout ça, ça donne l’impression d’un environnement de travail très sain, et en vérité ça l’est : les développements avancent à bon rythme, tout est cadré, voire sous contrôle.

On voit quand même au bout de quelques mois quelques limites apparaître :

  • Une banque peut concentrer beaucoup d’applications à développer, des applications de plus en plus nombreuses et sophistiquées. Toutes les faire passer dans l’usine logicielle revient à redoubler de vigilance : donc nécessité d’une gestion très fine d’Hudson.
  • Les outils mis à disposition des utilisateurs  sont développés en interne. Les utilisateurs doivent être formés spécifiquement aux outils maison.
  • De plus, un peu d’empathie envers les utilisateurs peut rapidement montrer qu’il est difficile de capitaliser, voire de motiver sur l’utilisation d’outils maison.
  • L’évolution des technos (html5, développements sur mobile, sur tablette…) oblige à veiller quotidiennement à la mise à la page des outils mutualisés
  • Cela court-circuite un peu la démarche agile (pourquoi ne pas faire confiance aux équipes hein ?)
  • Imposer des couvertures de test minimales aux développeurs peu habitués à développer des tests automatisés sur leurs applications (eh bien oui, cela existe encore en 2011), conduit d’une part à de la « sur-qualité », ou le fait de tester du code non pertinent juste pour atteindre le seuil fatidique –exemple concret : tester les accesseurs des beans java -, ou encore avoir à gérer une liste de dérogations pour valider la livraison d’une appli non testée mais critique.
  • Il faut aussi définir et se mettre d’accord sur les règles PMD/Checkstyle qui valident ou non une livraison.

A partir de ces constatations, je vous propose quelques réflexions :

Pourquoi imposer des outils, des frameworks aux équipes de développements ?

Tout simplement parce qu’il y a des contraintes :

  • Contractuelles : l’intégration aux solutions IBM (Websphere, DB2…)
  • Techniques : L’existant sur lesquelles la nouvelle application doit se reposer détermine souvent ce point.
  • Financières : Utiliser des outils sous licence libre revient moins cher, et permet de ne pas dépendre d’une société tierce
  • Idéologiques : Certaines sociétés n’imposent que des outils libres et ouvertes afin de se faire une image au près de communautés

Pourquoi ne pas faire confiance aux équipes de développements?

A cette question, mon chef/scrummaster me souffle à l’oreille que dans leurs équipes de développement, on retrouve surtout des profils juniors, des stagiaires, des ingénieurs cherchant à évoluer dans le métier bancaire, d’anciens du métier bancaire… bref, très peu de geeks cherchant à capitaliser de nouvelles connaissances.

Chaque pole contient toutefois un référent technique (parfois issu de nos équipes transverses) qui adhère aux frameworks communs et qui – souvent – demeure l’unique interlocuteur de notre équipe transverse.

Que se passerait-il si les différentes équipes avaient toute la latitude sur les choix des technos et des outils ?

Les équipes bougent, changent, un turn-over constant existe dans une banque comme dans toute société. On imagine difficilement qu’un leader technique nouvellement arrivé effectue un audit rapide de ce qui a été fait précédemment obtienne quelques mois de budget pour une refonte technique totale. Ni même que pour avoir 36 applications à faire, il avoir 36 serveurs configurés séparément. Au final, à moins d’une communication optimisée au maximum entre les équipes (Scrum de scrums ?), on arriverait à une cacophonie ingérable, il  faut l’avouer.

Où se trouve l’endroit idéal ou mettre ce curseur ? Homogénéisation ou  Autonomisation ?

Ça n’est bien sûr pas aux équipes de développement de définir l’ensemble du périmètre technique, ni au client de dicter ligne par ligne le code aux développeurs.

Placer un curseur entre ces deux extrêmes est complexe : il s’agit de définir les périmètres d’où découle tout le fonctionnement d’un SI.

Pour répondre à cette question, je me propose de dresser une liste de rôles que pourrait avoir une équipe transverse.

Une telle équipe pourrait avoir pour rôle :

  • d’être le garant de qualité des développements
  • de mettre en place les critères d’intégration et de qualité minimum au sein d’un SI (quel que soit le contexte technique)
  • de s’assurer que les outils de reporting soient utiles et utilisés.
  • de pouvoir fournir à chaque  instant l’état des développements actuels
  • de proposer, de conseiller  sur les outils à utiliser ou à mettre en place sur les équipes de développeurs (attention, pas forcément à les administrer)
  • de proposer et de conseiller sur les méthodes de gestion de projets facilitant le dialogue entre développeurs et utilisateurs…

Comment une telle organisation risque d’évoluer ?

De nombreux paramètres sont à prendre en compte pour donner réponse à une telle question, alors autant faire une réponse courte :

Si l’équipe transverse arrive à communiquer, maintient un dialogue constant entre les différentes équipes (direction – MOE – MOA – développeurs – administrateurs), reste garante de la qualité, maintient et fait évoluer les outils mutualisés, essaie d’induire de bonnes pratiques tels que le cycle TDD, la TDR… alors oui, la présence d’une telle équipe se justifie.

Pour conclure

Ce sujet est vaste et complexe, et mesurer tous les enjeux sur le choix ou non d’une telle organisation demande une réelle expérience, une réelle qualification sur les bonnes pratiques, les méthodes agiles,et surtout un gros effort sur la communication des rôles des équipes transverses.  Je me permettrai enfin de rappeler le premier des 4 piliers du manifeste agile : l’interaction avec les personnes plutôt que les processus et les outils.


Conférence Agile France 2011: Les sessions Valtech

Thursday, May 19th, 2011

 

Valtech sera présente au rendez-vous incontournable de la communauté Agile française qui se déroule le 26 et 27 Mai au Chalet de la Porte Jaune. Pour cette édition, diverses conférences seront animées par des consultants Valtech :

« Dans la peau du manager agile »

Présenté par Jean-Claude GROSJEAN, COACH AGILE  et  Consultant UX

Quand il s’agit d’agilité, ne laissez pas vos Managers au bord du chemin ! Aidez-les plutôt à devenir des managers Agiles… et à maîtriser l’évolution de leur métier. Entre nécessité et opportunité, le métier de Manager Agile (au sein d’une organisation agile) devient un savant compromis entre le maintien de certaines responsabilités, l’abandon de certaines autres et l’acquisition de nouveaux savoir-faire et savoir-être… L’ère est au management Agile & Lean.

“Quand Product Owner rime avec Marketeur – Agile UX et ATDD”

Présenté par Hélène Granboulan-Bensalem, Consultante Senior & Formatrice, Analyste Agile et Jean-Claude GROSJEAN, COACH AGILE  et  Consultant UX

Le marketing donne naissance à des projets particulièrement créatifs & réactifs. L’expérience montre que l’agilité permet de répondre à ce contexte et à ses véritables enjeux: livrer à temps, un produit opérationnel, que l’on sait adapter jusqu’au dernier moment. Cette session se propose d’illustrer les responsabilités, les pratiques et certains outils du rôle de Scrum “Product Owner” dans lequel le marketeur va se glisser : Agile UX (expérience utilisateur agile), ATDD (spécifier ensemble par l’exemple), et plus encore…

 

“Une usine logicielle pour une usine, vers le déploiement continu en production”

Présenté par Claude Falguière,  Consultante Senior Java et Maxime Lemanissier (ancien Valtech, PhotoBox)

Retour d’expérience sur la mise en place d’une usine logicielle sur un ensemble d’applications qui gèrent un site de production (Java, Flex, Python).

Pour conserver l’aspect très réactif des déploiements actuels mais améliorer la qualité, nous voulons mettre en place un processus de déploiement continu jusqu’à la production.


 

 

“Lire du code”

Présenté par Etienne Charignon, Consultant et Extreme Programmer

Au cours de notre parcours de formation de programmeur ainsi que dans notre travail, nous dépensons beaucoup d’énergie à apprendre à écrire du code.

Je vous propose ici de nous arrêter quelques minutes sur cet aspect méconnu et qui occupe pourtant la plus grande partie du temps d’un développeur : lire le code.

 

“Product Owner : Valorisez vos Epics”

Présenté par Yannick Ameur, Consultant Senior et Coach Agile

Il s’agit d’un atelier pour les PO pour leur montrer les différences entre une gestion de type concurrentiel interne à l’entreprise et une gestion Collaborative des différents PO  responsable de leur domaine.


 


 

“10 ans après… Ma première expérience agile”

Présenté par Xavier RENAUDIN, Consultant Confirmé et certifié Scrum Master  et Katia Aresti (Xébia)

Un échange entre Katia, qui découvre le monde de l’agilité sans aucune formation théorique et Xavier, Scrum Master essayant d’appliquer ses connaissances théoriques dans l’Agilité.  Un échange autour d’un retour d’expérience.

 

 

Les inscriptions sont encore ouvertes. Soyez nombreux à l’évènement Agile de l’année ;)


Valtech accueille Alistair Cockburn, le 28 mars à Paris

Thursday, March 24th, 2011

Alistair Cockburn, l’un des leaders de la communauté Agile, sera à Paris lundi 28 mars.
A cette occasion, Valtech invite dans ses locaux tous les agilistes curieux de le rencontrer.

 
Programme de la matinée :

  • 9h30 – 10h00 : Accueil / Petit déjeuner
  • 10h00 – 12h00 : Session de brainstorming autour de l’agilité avec Alistair Cockurn

 
2 thèmes abordés au cours de cette session :

  • “Advanced Agile” : discussion autour de l’état de l’art de la démarche Agile en France
  • ICAgile Program“: présentation du programme de certification Agile

 
Plus d’infos sur Alistair Cockburn :

Alistair est un des initiateurs du mouvement Agile ayant participé en 2001 à l’écriture du manifeste Agile. Il est connu dans la communauté pour ses écrits autour de la spécification logicielle par les Uses Cases. Il a fondé  Cristal Clear, une des méthodes Agiles. Plus récemment, en février dernier, Alistair a rassemblé les leaders de la communauté Agile pour fêter les 10 ans du Manifeste.

 
Inscription & Accès :

Si vous êtes intéressé(e), c’est avec plaisir que Valtech vous accueille pour cette occasion.
Cet événement gratuit est ouvert à tous.

 

Séminaire gratuit à Toulouse : Agilité, ne ratez pas le train !

Friday, January 14th, 2011

Le 11 février matin, Valtech Training vous propose un séminaire gratuit à Toulouse avec retour d’expérience client.

Pour la partie conférence proprement dite, les points abordés seront :

  • Origines et raisons du Manifeste Agile
  • Ce que n’est pas l’agilité : cassons les caricatures
  • Introduction aux frameworks agiles (Scrum, XP et Lean)
  • Contraintes et flux : vos clients sont agiles !
  • Mise en œuvre : agilité organisationnelle
  • Contractualisation agile
  • Quel ROI attendre ?

Le retour d’expérience sera réalisé par Richard Hugues, Lean Software Development Director au sein d’Arkadin Montpellier, qui exposera la mise en œuvre concrète des méthodes agiles dans sa société :

  • Comment Arkadin a mis en œuvre Scrum ?
  • Les difficultés rencontrées
  • Les bénéfices pour Arkadin et ses équipes

En savoir plus et s’inscrire au séminaire sur les méthodes agiles du 11 février à Toulouse.

Découvrez également notre offre de formation sur les méthodes agiles.

Scrum User Group : une soirée e-Commerce, banque, startup et coaching agile

Monday, November 8th, 2010

Valtech accueillera la prochaine soirée mensuelle du French Scrum User Group. Ça se passe au 103 rue de Grenelle dans le 7ème arrondissement de Paris. Le rendez-vous est à 18h30 le jeudi 18 novembre 2010.

L’évènement est gratuit, une simple inscription ici suffit.

Le programme a été finalisé. Après une introduction de Xavier Warzee, l’actuel président du French Scrum User Group, deux parcours en parallèle vous seront proposés:

Retours d’Expérience Agile

Dans l’auditorium, 3 présentations se succèderont:

  • Transformation Agile alliant Scrum, Kanban et ‘lab days’ chez PriceMinister  par Martin Sudmann (40 min)
  • Expérimentation de Scrum & XP dans une DSI de culture Cascade dans le secteur bancaire par Céline Stauder (30 min)
  • Scrumers, l’outil et l’adoption de Scrum dans une start-up par Ludovic Galabru (30 min)

Techniques de Coaching

Dans une autre salle, un atelier sera dédié à une technique de facilitation.

Les places à l’atelier étant limitées à 15 personnes, vous pouvez vous inscrire spécifiquement à partir du lundi 8 novembre sur cette page dédiée.

En clôture, un cocktail vous permettra de rencontrer les participants à la rencontre.

Un REX exprimé par des exemples

Sunday, October 17th, 2010

Des scénettes pour illustrer quelques anti-patterns organisationnels

On parle souvent de retour d’expérience (REX). Pour décrire des anti-patterns organisationnels en respectant l’anonymat des projets concernés, je vous propose ici du TDREX.  C’est la mouvance TDD / TDR (Test Driven Development/ Test Drivent Requirement, c’est-à-dire développements / spécifications dirigés par les exemples), qui m’a inspirée. J’ai donc inventé des scénettes – des exemples fictifs – pour exprimer un retour d’expériences difficiles.

Anti-pattern 1 : pas de communication coordonnée

Les différents acteurs du projet communiquent deux par deux au lieu de réunir toutes les personnes impliquées.

Exemple : Marc, Sophie et Eric

Marc et Sophie travaillent sur le même projet avec Eric. Marc prépare les ordinateurs, Sophie forme et explique aux utilisateurs où vont être installés les logiciels, et Eric livre les ordinateurs aux utilisateurs.

Pour s’accorder sur la date de livraison des ordinateurs, qui doit être la plus tôt possible…

1ère version de l’histoire : l’anti-modèle (anti-pattern)

Eric va voir Marc pour savoir quand ils seront préparés, puis il va voir Sophie pour savoir quand elle pourra expliquer. Marc a répondu le 5 octobre (en fait, il peut avoir fini entre le 1 et le 7). Sophie répond (more…)

RAD et agilité

Monday, August 30th, 2010

J’ai fait du RAD il y a quinze ans, était-ce déjà de l’agilité ?

Il arrive d’entendre cette question lorsque l’on fait découvrir l’agilité à ceux qui sont passés sur les plateaux de développement il y a quelques années. A tous ceux qui se posent la question, voici une mise au point sur le sujet. Dans cet article, on considère que l’acte de naissance de l’agilité est le manifeste agile en février 2001. La méthode RAD est quant à elle attribuée à l’américain James Martin qui la formalise dans son livre Rapid Application Development publié en 1991.
RAD - Humour

Le RAD formalisé

La méthode RAD s’est complétée au cours du temps avec les ajouts de 1994 versés notamment par le franco-canadien Jean-Pierre Vickoff. Si bien qu’il est difficile rétrospectivement de reconnaître les valeurs originelles de RAD… C’est précisément cette revendication agile tardive qui est parfois reprochée au RAD dans des débats passionnés avec les supporters de chaque camp. Mon objectif étant de ne pas rajouter de l’huile sur le feu de ce débat stérile (“ma méthode est plus grosse que la tienne” ;-) ), je tenterai de rester factuel dans cet article.
Ce qui est sur, c’est que cette méthode apparaît en réaction au cycle de développement en cascade. On pense alors que c’est la durée qui est le paramètre clé qui fait échouer les projets: on veut améliorer l’adéquation aux besoins en rencontrant plus vite les utilisateurs: Limitation dans le temps du projet RAD de 90 jusqu’à 120 jours maximum

Et dans la réalité ?

Derrière toute théorie, il y a une mise en application, plus ou moins fidèle au modèle… Les coachs agile en savent quelque-chose !
Comment le RAD a-t-il été appliqué ?
La vitesse de développement sera accélérée par des outils !
On a fixé la technologie sur tous les plans: la base de donnée, la technologie de communication client/serveur et les outils de développement. C’est cette calcification de tous ces paramètres qui permet la capitalisation sur des outils de productivité.
Les éditeurs de l’époque ont bien compris d’ailleurs la position de force que cela pouvait leur procurer.
La focalisation est forte sur la donnée dans la base relationnelle. Ce sont les heures de gloire de Merise en France. Le développeur conçoit ensuite des écrans en glisser/déposer à partir des champs de la base. La dynamique client est codée par des scripts sur les composants d’interface graphique.
A long terme de la sur-complexité et de la duplication apparaît bien souvent dans les traitements côté client. Les procédures stockées peuvent subir aussi de nombreux ajouts qui peuvent en altérer la clarté.
Les personnes qui ont pratiqué le RAD se sont semble-t-il fortement préoccupés des outils qu’on a appelé CASE pour Computed Aided Software Engineering tels que PowerBuilder, OracleForms et autres L4G.

RAD et agilité

Voici des exemples de différences entre le RAD et l’agilité:

  • [Edit]les cycles itératifs en RAD sont plus longs (90~120 jours) et ressemblent a du “mini tunnel” (contre 2 semaines idéalement en SCRUM par exemple) L’itération en RAD s’inscrit seulement dans la phase de “réalisation”. Elle est bornée par un “focus” qui provoque une intégration et permet une démonstration à l’utilisateur.[/Edit]
  • il y a toujours des phases de planification, design et développement séparés (contre un design émergeant en eXtreme Programming par exemple)
  • les découpages temporels impartis aux phases du RAD sont assez stricts (moins de souplesse)
  • les rôles sont apparus tardivement dans RAD (comme cela existe en SCRUM ou en XP)
  • pas de préconisations pour les estimations collaboratives de la charge, les notions de reste à faire et de suivi (présent en XP et en SCRUM)
  • il n’y a pas vraiment de notions de rétrospective et d’amélioration continue

Et voici quelques points communs:

  • logiciel fonctionnel prépondérant à une documentation exhaustive, pragmatisme
  • “Time-boxing” (limitation du temps)
  • mise en avant de l’équipe intégrée (SWAT)

Aujourd’hui

Les raisons du succès du RAD ne sont pas éteintes. On peut aussi ajouter que le RAD n’est pas mort, on trouve des éditeurs comme PCSoft en France par exemple qui revendiquent une base de clients pour qui le RAD fonctionne très bien. Un éditeur comme Microsoft par exemple permet encore aujourd’hui de mettre en pratique le développement RAD avec la programmation .Net basée uniquement sur les DataSets. A l’heure de l’open-source, ne serait-on pas capable de composer, autour d’une pile logicielle standardisée (telle JavaEE ou .Net) une suite d’outils pour faire du RAD ? La place du test devrait en tous cas y être prépondérante. Ruby On Rails qui a popularisé la technique de l’échafaudage (ou scafolding) qui permet de générer les vues web au dessus d’un schéma relationnel s’inscrit dans cet héritage qui mélange outillage productif, génération de code et framework de tests avancés.
En tous cas, si le RAD a montré une chose, c’est que tout framework, outil ou méthode aussi performant qu’il soit, ne saurait être efficace qu’avec une organisation pertinente où les individus sont respectés et la communication est assurée.

Conclusion

Le succès du RAD dans les années 90 a permis de se rendre compte qu’il existait une façon plus souple de produire du logiciel que le cycle en cascade (l’évolution des langages de programmation n’y est pas étrangère non plus). La focalisation client et les prémices du développement itératif ont permis aux outils RAD de se déployer massivement.
Aujourd’hui, on a pris de la maturité. Par exemple, on attend d’un développeur agile plus de responsabilité en développant du code “durable” (testé). Il a aussi une exigence de compréhension de la dynamique d’équipe dans laquelle chacun doit trouver sa place. S’il le faut, l’équipier ira lui-même chercher les outils pour améliorer la productivité de l’équipe.
L’apport de la méthode RAD à permis d’expérimenter à grande échelle les architectures 2 tiers et d’en identifier les limites. On a aussi pu voir à grande échelle l’exploitation d’un buzzword par l’industrie IT et les dérives au moment de déployer la méthode à travers simplement des outils.
Vous m’avez compris, l’intention initiale était louable et mérite notre intérêt encore aujourd’hui, ne serait-ce qu’en termes de leçons à retenir.

Merci à tous les consultants Valtech qui ont participé à l’élaboration de cet article.

Indispensable été

Monday, August 9th, 2010

L’été est une période agréable où l’on peut partir en vacances et prendre du repos. Pour ceux qui sont déjà ou pas encore partis, c’est aussi une période révélatrice de l’”indispensabilité” de certains collègues.

Si on trace le schéma du cycle de développement classique, on trouve ces activités de base :
Traditionnal software developement activities
(more…)

Alistair Cockburn anime une formation CSM

Tuesday, February 2nd, 2010

Dr Alistair Cockburn animera une session certifiante ScrumMaster du 22 au 24 février à Paris. Pour les dernières places, le prix a été porté de 2 400 à 1 800 €. La CSM suivante se tiendra en octobre 2010 avec Craig Larman.