Blog entries

  • Une mise en place de l‚ÄôeXtreme Programming - ce que j'en retiens

    2010/05/20 by Arthur Lutz
    http://rubyonrails.org/images/rails.png

    Je suis all√© √† la pr√©sentation de "Une mise en place de l‚ÄôeXtreme Programming" pr√©sent√© par Karine Sabatier dans le cadre d'Agile Nantes. On y a parl√© plut√īt Ruby on Rails que python, mais surtout de m√©thodes agiles et XP.

    Voici quelques points que j'ai retenu de cette présentation tout à fait pragmatique d'une mise en pratique des principes XP :

    • Le principe de "Convention over configuration" : pr√©f√©rer la convention (notamment pour la programmation) plut√īt que la contrainte par la configuration. Dans Ruby On Rails, les conventions sont tr√®s fortes, pour faire une application on ne peut pas s'√©loigner du mod√®le MVC : les mod√®les sont dans "model", les views sont dans "views" etc... √Ä ce sujet, la conf√©renci√®re a fait r√©f√©rence √† deux types de designs que je ne connaissait pas : le DDD Domain-driven Design et Behavior Driven Development.
    • Utilisation de m√©taphores : trouver un langage commun avec le client mais aussi avec les utilisateurs
    • Application de d√©ploiement ruby on rails : Capistrano, bien qu'√† Logilab nous privil√©gions le d√©ploiement par paquets et d√©p√īts debian, en python on pourra jeter un coup d'Ňďil √† Fabric.
    http://retrospectiva.org/extensions/overview/images/product_backlog.png?1265550417
    • Leur projet XP utilisait le logiciel de gestion de projet Retrospectiva. Celui-ci ressemble sur bien des points √† JPL (Jeux de Planification Logiciel) disponible sur le framework CubicWeb (http://www.cubicweb.org). Cot√© int√©gration continue : CruiseControl , en python nous privil√©gions apycot.
    • Ce projet a essay√© l'utilisation de Selenium pour ces tests web. Le constat est le m√™me que chez Logilab : la premi√®re fois que ca marche c'est utile et apporte une grande satisfaction, dans un deuxi√®me temps ca reste tr√®s difficile √† maintenir. Nous regardons √† pr√©sent plut√īt du cot√© de Windmill qui a √©t√© int√©gr√© √† la version 3.9 de cubicweb.
    • Une mention a √©t√© fait d'une soci√©t√© fonctionnement uniquement en mode agile Pyxis.

  • Retour Agile Tour Nantes 2012 - pr√©sentation et pistes √† explorer

    2012/12/04 by Arthur Lutz

    Nous utilisons les méthodes agiles depuis la création de Logilab. Nous avons parfois pris des libertés avec le formalisme des méthodes connues, en adaptant nos pratiques à nos clients et nos particularités. Nous avons en chemin développé nos propres outils orientés vers notre activité de développement logiciel (gestion de version, processus sur les tickets, intégration continue, etc).

    https://www.logilab.org/file/113044?vid=download

    Il est parfois bon de se replonger dans la théorie et d'échanger les bonnes pratiques en terme d'agilité. C'est pour cette raison que nous avons participé à l'étape nantaise de l'Agile Tour.

    Logiciels libres et agilité

    Plut√īt que d'√™tre simples spectateurs, nous avons pr√©sent√© nos pratiques agiles, fortement li√©es au logiciel libre, dont un avantage ind√©niable est la possibilit√© offerte √† chacun de le modifier pour l'adapter √† ses besoins.

    Premi√®rement, en utilisant la plate-forme web CubicWeb, nous avons pu construire une forge dont nous contr√īlons le mod√®le de donn√©es. Les processus de gestion peuvent donc √™tre sp√©cifiques et les donn√©es des applications peuvent √™tre √©troitement int√©gr√©es. Par exemple, bien que la base logicielle soit la m√™me, le circuit de validation des tickets sur l'extranet n'est pas identique √† celui de nos forges publiques. Autre exemple, les versions livr√©es sur l'extranet apparaissent directement dans l'outil intranet de suivi des affaires et de d√©compte du temps (CRM/ERP).

    Deuxièmement, nous avons choisi mercurial (hg) en grande partie car il est écrit en python ce qui nous a permis de l'intégrer à nos autres outils, mais aussi d'y contribuer (cf evolve).

    Notre présentation est visible sur slideshare :

    http://www.logilab.org/file/113040?vid=download

    ou à télécharger en PDF.

    Behaviour Driven Development

    Le BDD (Behaviour Driven Development) se combine avec des tests fonctionnels haut niveau qui peuvent √™tre d√©crits gr√Ęce √† un formalisme syntaxique souvent associ√© au langage Gherkin. Ces sc√©narios de test peuvent ensuite √™tre convertis en code et ex√©cut√©s. Cot√© Python, nous avons trouv√© behave et lettuce. De mani√®re similaire √† Selenium (sc√©narios de test de navigation Web), la difficult√© de ce genre de tests est plut√īt leur maintenance que l'√©criture initiale.

    https://www.logilab.org/file/113042?vid=download

    Ce langage haut niveau peut néanmoins être un canal de communication avec un client écrivant des tests. À ce jour, nous avons eu plusieurs clients prenant le temps de faire des fiches de tests que nous "traduisons" ensuite en tests unitaires. Si le client n'est pas forcément prêt à apprendre le Python et leurs tests unitaires, il serait peut-être prêt à écrire des tests selon ce formalisme.


  • Compte rendu meetup Agile Nantes - #lego4devops

    2016/01/08 by Arthur Lutz

    Mercredi soir, j'ai participé avec beaucoup de plaisir au meetup mensuel d'agile nantes "Vos voeux 2016 et Lego4DevOps.

    Au delà d'une session "papillons repositionables" pour que les participants expriment leurs souhaits pour les sessions mensuelles de cette année, nous avons joué à #lego4devops, jeu de lego inspiré de lego4scrum.

    √Čtant int√©ress√© par les probl√©matiques que l'approche devops cherche √† r√©soudre j'√©tais assez content de participer √† cet atelier. En r√©sum√©, il s'agit d'un jeu o√Ļ une √©quipe ops et une √©quipe dev doivent collaborer pour livrer des fonctionnalit√©s √† un client sur une plateforme qui doit avoir un maximum de disponibilit√© (et donc de stabilit√©). Chaque session de d√©veloppement / mise en production (3 minutes) est entrecoup√©e d'une petite session de r√©trospective (4 minutes) pour discuter des am√©liorations √† apporter. On compte √† chaque fin d'it√©ration le nombre de fonctionnalit√©s livr√©es, le nombre de fonctionnalit√©s en production et la disponibilit√© de la plateforme.

    Photo de Axel Villechalane

    Photo de Axel Villechalane

    On voit rapidement des problèmes (et des solutions) similaires à ce qu'on peut retrouver en entreprise, les animateurs ajoutant des exemples ou anecdotes mettant en avant ces travers et le rapportant aux bonnes pratiques du mouvement devops.

    Le jeu est disponible en licence creative commons, les PDFs sont disponibles ici : jeu #lego4devops. À faire tourner, essayer et améliorer. Merci à l'association Agile Nantes ainsi qu'à Sébastien Fauvel et Cécile Especel.

    http://www.agilenantes.org/wp-content/themes/agilenantes_theme/img/logo_agilenantes_200.png