Nous croyons chez Arpinum qu’être agile est le meilleur moyen actuellement de produire les logiciels.
Ce principe guide à la fois la façon dont nous collaborons avec nos clients, mais forge également nos disciplines de développement.
Nous utilisons essentiellement l’eXtreme Programming comme guide de nos développements, et nous pratiquons donc sans concession le Test-Driven Development, le refactoring, l’intégration continue, le pair programming.
En tant que professionnels, nous savons que ces disciplines sont le meilleur moyen de réduire les défauts, tenir les délais et livrer des logiciels qui fonctionnent.
Elles sont donc non négociables. Vous ne demanderiez pas à votre chirurgien de ne pas se laver les mains pour gagner un peu de temps.
Travailler avec nous est donc différent : nous vous demandons de nous faire confiance sur nos pratiques et nos estimations, et en contre partie nous vous mettons réellement aux commandes de votre projet.
Une équipe de développement sérieuse doit nécessairement avoir une stratégie de test. Bien sûr, tout le monde vous dira que l’application fournie est testée, mais, bien souvent, la stratégie consiste essentiellement à cliquer frénétiquement un peu partout dans l’application la veille de la livraison. Cette approche a bien des défauts :
Notre stratégie s’appuie donc sur différents niveaux de tests automatisables :
Au plus bas niveau, nous pilotons notre développement par les tests. Oui, nous écrivons les tests avant même le code censé les faire passer. Cette pratique au premier abord contre intuitive, apporte en fait énormément de bénéfices :
Une des grandes difficultés dans le développement d’un logiciel est de savoir si une fonctionnalité répond au besoin. Pour couvrir ce problème, nous rédigeons en début d’itération, conjointement avec le client, les tests d’acceptation de chacune des histoires à faire ; puis nous automatisons leur exécution.
Ainsi, les critères ne sont plus flous, mais précis et exécutés sur l’application directement. Cette pratique nous permet :
Ces tests ne passent pas par les écrans, garantissant ainsi d’être au plus proche du métier.
Enfin, il faut pouvoir vérifier que l’application correctement assemblée et configurée fonctionne. Ici, nous allons pouvoir tester l’application à travers son interface utilisateur, et également vérifier la facilité d’utilisation.
Si vous venez dans nos bureaux, une des premières choses que vous remarquerez est que nous travaillons systématiquement en binôme.
Contrairement aux apparences, cette pratique permet de travailler plus vite et mieux. Travailler à deux permet de rester concentrés sur une tâche, de détecter plus vite des erreurs, de confronter nos idées et de transmettre de manière homogène les connaissances.
Avoir un deuxième avis en permanence permet d’éviter de rester bloqué seul pendant des heures sur un problème.
Nous savons par expérience que devenir agile, ou devenir un meilleur professionnel, ne peut pas s’enseigner de manière théorique. Seule la pratique avec un mentor permet d’étayer ses connaissances et gagner la qualité et la vitesse d’un professionnel.
C’est pourquoi, lorsque nous accompagnons des équipes, nous appliquons essentiellement des formules d’apprentissages plutôt que du consulting. Nous ne vous disons pas comment faire, nous faisons avec vous. Ainsi nous allons en même temps que vous, apprendre ce qui fonctionne le mieux dans votre environnement, tout en vous transmettant les bases indispensables. Nous allons beaucoup vous écouter et vous poser de nombreuses questions, pour que les réponses émanent de vous.