lundi 15 octobre 2012

Les étapes de l'apprentissage du TDD

Introduction

Depuis des années que je mets en oeuvre le TDD, ma pratique et ma vision ne cessent d'évoluer, surtout ces derniers temps en accompagnant des équipes de développement, en essayant de les aider à migrer vers la mise en place de tests unitaires, et bien sûr, l'approche TDD.

Récemment, en analysant les freins exprimés par une équipe, et en étudiant leurs difficultés, j'en suis arrivé à la conclusion que l'apprentissage du TDD se découpe en 3 étapes que je vous partage aujourd'hui.

vendredi 12 octobre 2012

Agile Tour Marseille 2012


Hier, pour la 3e année consécutive, j'ai participé à Agile Tour Marseille 2012, et 2e année en tant qu'orateur (après un atelier "TDD en coding-dojo" pour l'édition 2011). Grosse bonne journée dont voici quelques retours en suivant les sessions auxquelles j'ai assisté.


jeudi 4 octobre 2012

Développement et conception : mon approche P(N)OO

Ces derniers temps, j’ai eu plusieurs occasions pour échanger au sujet de l’architecture du code, comment concevoir ses classes, ses objets, leurs liens, leurs interactions, leurs tests, etc … Il y a eu des échanges avec des développeurs qui ont leurs visions, qui s’interrogent, qui cherchent la bonne voie vers l’excellence. Et il y a eu des interventions auprès d’équipes qu’il m’a fallu guider, qui attendaient de moi une réponse, et avec qui j’ai partagé ma vision, plutôt pragmatique même si ce n’est pas la pure beauté du geste …

Je vous la propose aujourd’hui en espérant vos avis et réactions.

jeudi 13 septembre 2012

Développement logiciel agile : informations sur l'outillage


Introduction

De plus en plus d’entreprises et d’équipes s’intéressent aux outillages modernes permettant d’industrialiser et automatiser leurs productions logicielles. Et récemment, à plusieurs reprises, lors d’échanges avec des clients, j’ai pu me rendre compte que les confusions sont nombreuses entre les différents outils, leurs rôles, leurs intérêts, leurs interactions, etc …

Je vous propose donc ce petit article pour essayer de recenser ces outils avec des présentations rapides et succinctes. Nous parlerons donc de :

  • Gestionnaire de sources et de versions
  • Système de build
  • Gestionnaire de repositories
  • Séquenceur pour intégration continue

mercredi 5 septembre 2012

Innovation Games - Formation - REX

Introduction

Le 19 juin dernier, j'ai assisté à la formation "Innovation Games" avec Claude Aubry et Alexandre Boutin. En voici mon retour et mes impressions (désolé pour le délai).

La journée s'est articulé autour de 8-9 jeux, en alternant pratique et théorie générale sur les jeux.

Parmi ces éléments de théorie, j'ai bien aimé le graphique présenté par Alex représentant :
  • "Ce que je sais" : un toute petite tranche du camembert
  • "Ce que je sais que je ne sais pas" : un petit tiers
  • "Ce que je ne sais pas que je ne sais pas" : le reste, et c'est là que se situe l'innovation ! (*)
Un autre point important, "Utiliser des outils spécifiques pour résoudre des problèmes spécifiques". Et c'est tout l'enjeu des Innovation Games et autre ateliers : bien les connaitre et maîtriser pour savoir lesquels utiliser, à quels moments et dans quels buts ...

Sachant que chaque atelier peut être classifié (Bas, moyen ou élevé) selon différentes caractéristiques :
  • Niveau d'ouverture d'esprit
  • Vision du future
  • Effort de préparation côté client
  • Effort de préparation côté producteur
  • Effort de préparation matériel et logistique
Et maintenant, le retour sur les différents ateliers :
  • Carte de visite
  • Constellation
  • Buy a feature
  • Product Box
  • Remember the future
  • Speed boat
  • Spider Web
  • Start your Day
  • Prune the Product Tree

jeudi 21 juin 2012

Ateliers et jeux agiles : découvertes et retours d’expérience


Introduction


Depuis quelques mois, j’interviens auprès du service informatique « Boite à Outils » du groupe SAMSE à Grenoble : conseils et accompagnement en ingénierie agile. 

L’agilité est très présente depuis des années au sein des services informatiques. Animés par une volonté d’entreprise d’élargir l’agilité aux autres services, les agilistes du groupe ont organisé, il y a quelques semaines, des ateliers pour faire découvrir l’agilité au travers de jeux. J’ai eu la chance de pouvoir participer à certains de ces ateliers et ainsi de faire des découvertes dont voici des retours et commentaires.

dimanche 10 juin 2012

Déployer une application Play! sur le cloud

Le but de cet article est de présenter une solution simple que j'ai mis en place, si ça peut servir à d'autres ...

Introduction - Contexte


Mon besoin est simple. Pour un client, j'ai commencé à développer une application avec Play! framework version 2. Les développements se font sur un poste Windows. L'hébergement doit se faire sur un VPS (Virtual Private Server) sur le cloud.

Pour ce projet, le développement se fait en mode agile sur toute la ligne. Le déploiement de l'application doit donc se faire souvent, et donc de façon automatisée et rapide. Les objectifs sont les suivants : ne pas me faire perdre de temps à chaque déploiement, avoir une opération sûre, donc pouvoir déployer aussi souvent que nécessaire et mettre souvent des versions à disposition de mon Product Owner et du client.

Je présente ici une solution que j'ai mise en place suite à des recherches ici et là, elle est simple mais efficace et me satisfait (pour l'instant).

Les grandes opérations nécessaires sont les suivantes :

  • En local, packager l'application pour avoir un ensemble cohérent et autonome pour exécuter l'application sur le serveur
  • Transmettre le(s) fichier(s) sur le serveur
  • Sur le serveur, arrêter l'application en cours, et la relancer avec la nouvelle version

lundi 30 avril 2012

Mix-IT 2012 : retours


Introduction

Jeudi 26 avril avait lieu Mix-IT 2012 à Lyon, une conférence visant à mixer agilité, écosystème Java et Innovation IT et j’ai enfin pu y aller : en voici mon retour.

Avant de rentrer dans les détails des sessions que j’ai suivies, un mot sur l’organisation : impeccable ! Très bon accueil, bonne organisation, affichages efficaces, collations irréprochables. Côté programme, une grande diversité et des sessions de qualité : le problème est alors de devoir faire des choix ! Côté point d’amélioration : circulation un peu serrée entre les sessions et écrans un peu bas pour les projections en session, il valait mieux être devant. Mais bon, c'est mineure !

Après les mots d’accueil, nous avons eu une intervention de Martin Gömer (Google France) qui nous a parlé du nouveau Chrome pour Android et a fait sa pub de recrutement ... Pas trop compris ce que ça faisait là ... Mais bravo pour l'écharpe et pour la capture d'écran animée ...

jeudi 5 avril 2012

Les tests unitaires sont-ils toujours si rentables ?

Chez un client, les membres de l'équipe, que j'accompagne pendant quelques semaines, m'avaient demandé de leur proposer quelque chose pour aborder la question des tests unitaires et du TDD, dont ils ont entendu parler mais ne pratiquent pas du tout, ce qui ne les empêchent pas de produire en toute qualité, avec un nombre réduit d'anomalies.

Je leur ai naturellement proposé une journée "Tests unitaires et TDD", formule déjà éprouvée chez d'autres clients, avec un programme progressif :
  • Présentation théorique (2h) :  coût de correction des bugs, pourquoi tester, tests unitaires, mocks, TDD, bonnes et mauvaises pratiques, conseils et pièges, lien avec l'agilité, intégration continue, etc ...
  • Démonstrations sous forme de Kata (1h30) : exemple basique, exemple simple, introduction aux mocks avec Mockito, ...
  • Et l'après-midi, mise en pratique pour les participants sous forme de coding-dojo Randori (3h30) : tests simples avec JUnit, puis sujet propice à la mise en oeuvre des mocks, cette session me permettant de guider les participants, les accompagner, d'insister sur les bonnes et mauvaises pratiques, tout en leur offrant un espaces d'expérimentation où ils peuvent toucher du doigt les tests unitaires en approche TDD
  • Conclusion, rétrospective, ROTI

jeudi 15 mars 2012

Tests et automatisation : pourquoi et comment ? Ou comment j’ai été convaincu pour Selenium

Introduction

Aujourd’hui, j’ai eu la chance de participer à une séance de présentation et d’échanges, inter-services, autour du sujet « tests et automatisation » : vaste sujet !

La séance, proposée et animée par Laurent, était sur la forme de « forum ouvert » (« open space » pour les anglophones), un peu préparé pour guider la séance.

Une introduction, avec quelques généralités sur les tests, a permis d’introduire les termes comme JUnit, Selenium, Jenkins, Sonar, … ainsi que d’aborder très rapidement la question « pourquoi des tests ? » en évoquant : la sérénité, la non-régression, le codage plus rapide, etc …

Ensuite Laurent a proposé et présenté plusieurs sujets, auxquels les participants en ont ajouté quelques uns. Après une séance de vote (type « buy a feature »), une première session avec 2 ateliers en parallèle s’est mise en place :

  • Présentation et démonstration Sonar
  • Les tests, par quoi commencer ? Selenium et/ou JUnit
    et/ou Jenkins ? 

Connaissant un peu Sonar, je me suis orienté vers le 2e atelier, d’autant plus que les membres de l’équipe que j’accompagne y étaient, et que le sujet est plus d’actualité pour ma mission.