Un rapide résumé de la 2ème journée des valtech days 2008 :

9h15 : Présentation et introduction de l’Open Space Technology
Eric Lefevre présente pour la seconde année, les concepts de l’Open Space Technology. Pour faire simple, c’est un moyen de partager autour de sujets définis et votés par tous les participants. Cet Open Space est le plus grand organisé jusqu’à aujourd’hui en France.
Il s’en est suivi un défilé de personne qui annonçait leur sujet au micro pour ensuite le déposer sous forme de post-it sur le mur. Après un vote chaotique, la journée a pu réellement commencé …

10h45 : Session Coding Dojo Randory
J’ai commencé par me rendre à une session de Coding Dojo qui diffère de celle présentée hier dans le fait que les personnes qui sont devant le clavier tournent toutes les 5 minutes. Tout le monde peut donc participer. Le sujet était de réfactorer du code legacy pour le rendre plus lisible. L’exercice fut soldé par un échec du aux divergences de “philosophie” des intervenants. J’ai été horrifié surpris que certaines personnes proposent de mettre des commentaires pour rendre plus lisible des noms de variables incompréhensibles … (et je ne parle pas de la valeur de certains tests)
Vous pourrez trouver sur ce lien les notes prises au fur et à mesure de la session.
Nous pouvons retenir que pour réfactorer du Code Legacy, il faut :

  • Bien lire le code avant d’écrire une seule ligne !
  • Écrire des tests pour faire la recette
  • Réfactorer par les tests (= Filet de sécurité)

Après, j’ai fait un peu le “papillon” et j’ai échangé avec des connaissances de Valtech. J’ai pu voir/discuter sur :

Traçabilité des exigences
Je suis resté quelques instants dans cette session et j’en ai retenu :

  • Qu’il y a souvent un problème de glossaire entre les développeurs et les clients, il est donc nécessaire d’écrire un glossaire
  • Qu’il est intéressant de mettre en place le TDR et d’avoir des spécifications éxecutables

J’ai installé Fit & Fitnesse dans mon projet actuel, mais malheureusement, la partie fonctionnelle de l’équipe n’a pas voulu s’y faire :( Il faut que je trouve la présentation de GreenPepper faite aux Xp Days car d’après les échos elle est intéressante et donnes de bons “arguments” pour intéresser les “clients”.

Cloud computing
Cette session a eu lieu la veille mais a été élu pour être rejouer cette journée. Les concepts autour du PaaS et IaaS sont maintenant plus claires pour moi et l’idée d’héberger une spreadsheet Scrum sur Google Docs me plait beaucoup, affaire à suivre ;)

Planning Poker
Petite discussion en début d’après midi autour du planning poker, j’ai même pu récupérer un jeu (Merci à Laurent Bossavit ). Je vais tenté l’expérience au prochain scrum planning ;)

Briques de développements .NET
On peut dire que .NET n’est pas très représenté aux Valtech Days, que ce soit dans les sessions ou les participants. J’ai quand même pu discuter autour d’une petite table dans le hall des briques .net. La question de départ était simple : “Qu’est-ce que vous installez sur votre machine pour réaliser vos développements .NET ?” Nous avons donc lister une multitude d’outils et de frameworks. La liste devrait normalement apparaître sur le wiki Valtech !

Discussion autour de Scrum, l’intégration continue, …
Toujours dans le hall, j’ai pu échangé autour de mes expériences autour de Scrum avec mon ancien chef, avec une démo de Google Docs pour gérer le sprint backlog, c’est tellement plus souple que RallyDev … il faut que je teste sur mon prochain projet !

Ensuite, je me suis fait convaincre de tester Hudson (intégration continue) sur un projet .NET, chose que j’ai faite aujourd’hui mais j’en parlerai dans un autre article.

Programmation Post-Moderne
Alors, je suis arrivé au milieu de cette session et je dois avouer que je n’ai pas tout saisi mais le sujet a éveillé ma curiosité, si comme moi, rien que le nom vous titille, google remonte quelques liens intéressants ;)

La journée arrivant à sa fin, une rétrospective a été faite pour faire un constat des deux journées et trouver des axes d’amélioration. Les Valtech days se terminant sur une conclusion et un ensemble de remerciements des différents acteurs de ces deux jours. Une soirée était proposée mais je ne m’y suis pas rendu faute de fatigue.

Normalement les slides et les vidéos seront disponibles début novembre sur le site des Valtech Days.

Pour ma part, j’ai trouvé ces deux journées enrichissantes et je serai présent l’année prochaine ;)

Je me suis rendu aujourd’hui aux Valtech Days 2008. La journée était composée de 34 sessions autour de 4 axes : Agilité, Industrialisation, Architecture et E-Business.

Il fallait donc faire son choix parmi 4 sessions en parallèle, voici le parcours que j’ai réalisé avec un petit résumé/avis :

9h00 : Introduction annonçant que les sessions seront filmés et disponible début novembre en ligne, on pourra donc suivre ce que l’on a raté. C’est une bonne chose :)
Cette introduction fut suivi par une Keynote par Jeff McKenna de chez Serena, qui est un vieux de la vieille en agile. Il a participé à de nombreux projets agiles et nous a rapidement décrit son expérience et sur le fait que l’agilité est de plus en plus mise en place.
Il a également fait une analogie entre la conduite automobile et l’adaptabilité aux changements que je vais me faire un plaisir de réutiliser :)

10h00 : Rétrospectives
Une session animée de concert par deux personnes qui décrivait en parallèle les rétrospectives d’itération et les rétrospectives de projets, en énumérant les points communs comme les différences.
J’ai récupéré quelques exercices à mettre en place à la fin de mes itérations, sachant que, comme noté dans la présentation, les rétrospectives sont une habitude à prendre et que chaque intervenant doit en respecter les règles.

11h15 : Coding Dojo TDD en ruby
Cette session a mis en application une pratique que je ne connaissais pas : le CodingDojo. Cela consiste à réaliser en “temps réel” un exercice simple de programmation dans un temps imparti. Ici, ils ont mis en place un algo pour vérifier des propositions de Mastermind, le tout piloté en TDD en ruby et aidé via Autotest
C’est un exercice sympathique et je vais voir pour me rendre un soir à l’une de leur réunion !

14h30 : Lean Software Development
Cette présentation était simplement une définition de Lean et les concepts à mettre en place dans le développement de logiciel. Faut vraiment que je prenne le temps de lire le livre

15h30 : Êtes-vous prêt pour la production ?
Alors ici, un sujet très intéressant pour moi car mon projet au forfait va “bientôt” passer en production chez le client et comment dire … grâce à la présentation, je me pose plein de bonnes questions !
Julien Delhomme a souligné des faits que l’on connait malheureusement :

  • Les développeurs ne se soucient pas de la mise en production
  • Très peu de communication entre les développeurs qui ont la connaissance du logiciel et l’équipe de production qui a la connaissance de l’infrastructure
  • Agile met en avant le fait qu’il faut livrer fréquemment, mais ne dis pas vraiment comment …
  • etc.

16h45 : Faciliter l’adoption de l’agilité
Présentation rapide de la mise en place de l’agilité dans une équipe/entreprise et introduction du livre blanc sur l’agilité rédigé par les équipes Valtech.
Il faudra que je récupère ces slides, je pense que ça va me servir pour certaines missions ^^

17h00 : Qu’avez-vous testé aujourd’hui ?
Une autre présentation rapide de 15 minutes sur l’évolution des concepts autour des tests :

Valeurs vieillissantes

  • Tester pour trouver les anomalies
  • Organiser des campagnes de tests
  • Spécialiser les métiers de test

Valeurs modernes

  • Tester pour spécifier
  • Tester en permanence
  • Partager la responsabilité des tests

17h15 : Hudson
Dernière présentation de 15 minutes de cette session qui a tenté de présenter l’outil d’intégration continue Hudson… euh rien à dire, présentation bof :(

17h45 : Useability : Not just a pretty interface
Pour terminer la journée, j’ai assisté à cette session qui mettait en avant les différences de représentation/conception entre l’utilisateur avec sa vision de l’interface (IHM, ergonomie) et sa mise en application dans le logiciel. Certaines pratiques ont été décrite pour tenter d’améliorer ce souci.
Seule session en anglais que j’ai suivi de la journée, j’espère que j’ai bien tout compris :p

Conclusion
Ce fut une journée intéressante, qui m’a permis de (re)voir certains sujets et donner envie d’en approfondir d’autres. Mais surtout j’ai pu revoir certaines personnes !
Vivement demain pour l’Open Space Technology

edit: Je viens de corriger la macro qui contenait un petit bug !

J’ai amélioré ma macro pour lancer les tests unitaires via TestDriven.net

L’ancienne version contenait en dur le nom de la solution et du projet contenant les tests, ce qui n’est pas très optimal quand on a plusieurs projets en parallèle. Cette nouvelle version lance les tests sur le premier projet contenant le mot “Test” dans son nom, voici son code :


    Sub RunAllTests()
        Dim solutionExplorer As Window = DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer)
        Dim solution As UIHierarchyItem = solutionExplorer.Object.UIHierarchyItems.Item(1)
        Dim project As UIHierarchyItem

        For Each item As UIHierarchyItem In solution.UIHierarchyItems
            If item.Name.Contains("Test") Then
                project = item
                Exit For
            End If
        Next

        solutionExplorer.Activate()
        project.UIHierarchyItems.Expanded = True
        project.Select(vsUISelectionType.vsUISelectionTypeSelect)
        DTE.ExecuteCommand("TestDriven.NET.RunTests")
    End Sub
 

Bons tests !

Twitter or not!

21 avril, 2008

Faute de temps ou d’envie, je n’écris pas beaucoup sur ce blog, ce n’est pas pour autant que je n’ai pas quelques bons liens ou infos à transmettre, j’ai donc choisi d’utiliser la solution de micro-blogging Twitter

Quels sont les avantages d’utiliser Twitter :

  • Messages plus fréquents : étant légèrement overbooké, je n’accorde pas de temps à la rédaction d’article pour mon blog, la rédaction d’un message limité à 140 caractères dans twitter est beaucoup plus rapide
  • De l’info rapide : Je ne suis pas partisan des billets “liens du jour”, par contre je trouve que twitter convient parfaitement pour communiquer un lien que je trouve intéressant
  • Partage d’info : twitter permet facilement de communiquer et d’échanger des infos entre utilisateurs, de suivre certaines personnes pour avoir les dernières news ou scoop :)

Donc si vous souhaitez me suivre via twitter, voici le lien : http://twitter.com/mpli

J’ai également rajouter un widget sur le blog reprenant mes derniers messages.

A tout de suite sur twitter ;)

Raccourci pour TestDriven.NET

21 février, 2008

Dans ma boite à outils du développeur, j’utilise TestDriven.NET qui facilite grandement le lancement des tests unitaires au sein de Visual Studio.

Mais je dois avouer que j’étais fatigué de :

  1. saisir la souris pour faire un clic droit “Run Test(s)” dans mon code
  2. avant chaque archivage de modification, prendre la souris, trouver le projet de test dans la solution, faire un clic droit et “Run Test(s)” pour lancer tous les tests unitaires…

Après quelques petites recherches, on peut facilement résoudre le premier point en assignant une combinaison de touche à la commande “TestDriven.NET.RunTests” qui s’occupe de lancer le(s) test(s) suivant ou on se trouve.

Pour résoudre le second point, j’ai du faire une macro qui sélectionne le bon projet dans la solution et éxécute la commande magique dessus.

Voici donc la macro qui m’épargne des mouvements inutiles :) :


    Sub RunAllTests()
        DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
        DTE.ActiveWindow.Object.GetItem("NomSolution\NomProjet").UIHierarchyItems.Expanded = True
        DTE.ActiveWindow.Object.GetItem("NomSolution\NomProjet").Select(vsUISelectionType.vsUISelectionTypeSelect)
        DTE.ExecuteCommand("TestDriven.NET.RunTests")
    End Sub
 

Il suffit de modifier “NomSolution\NomProjet” avec les bonnes informations et d’assigner la macro à un raccourci clavier (ou au pire de la placer dans la barre d’outils pour gagner quelques clics).

Si vous avez d’autres astuces pour améliorer la productivité, je suis preneur ;)