Articles de éric :
Mon top 5 des meilleures façons d’améliorer votre code
Je serai à la communauté .NET d’Ottawa le 5 avril prochain pour présenter la conférence ‘Mon top 5 des meilleures façons d’améliorer votre code’. La conférence se déroulera en anglais.
Vous devez y être! Vous découvrirez cinq pratiques efficaces qui amélioreront la clarté de votre code .NET.
Je vous y attends!
Achievements : seulement pour les jeux ou pour l’Agilité aussi?
J’ai récemment découvert un ajout intéressant à Visual Studio : les achievements (réalisations). Il s’agit d’un plugiciel que l’on peut installer dans notre environnement de développement et qui permet d’obtenir des médailles (ou badges) que l’on appelle achievements.
Un jeu d’enfants, pas vraiment
Le concept est inspiré des plateformes de jeu. Dans la plupart des jeux modernes, il existe ce concept d’achievement que l’on peut débloquer en réalisant certains exploits lors de nos quêtes. Par exemple, réussir à ramasser tous les jetons d’un niveau ou réussir sans se servir de pouvoir spécial.![]()
Je prédis que le projet passera comme un ouragan…
On sait maintenant que les projets traditionnels de type waterfall ne sont pratiquement jamais livrés dans les délais et les budgets fixés. C’est pourquoi il y a autant d’engouement pour les projets Agiles.
L’Agilité n’apporte pas toutes les réponses. En fait, l’Agilité pose beaucoup plus de questions qu’elle ne fournit de réponses. Ce sont les réponses à ces questions qui permettent d’exposer les problèmes. Le plus gros défi, ensuite, est d’attaquer et de régler ces problèmes.
Vous avez dit DDD, Demo Driven Design?
Être agile
Pour moi être agile c’est savoir s’adapter, éviter les mauvais coups. Un boxeur agile ne frappera pas nécessairement plus fort ou précis mais il recevra moins de coup. Un joueur de hockey agile ne comptera pas nécessairement plus de but mais il pourra se rendre plus souvent dans la zone pour le faire.
Un développeur agile n’est pas vraiment plus rapide qu’un autre, il sait juste éviter les récifs comme s’il descendait les rapides en kayak. Le développeur agile voit venir les coups et sait les éviter. Il sait même se mettre dans une situation où il sera en meilleure posture pour les éviter.
S’adapter c’est développer ses forces pour contrer les problèmes rencontrés. S’adapter c’est aussi laisser de côté ce qui ne fonctionne pas et utiliser ce qui fonctionne. La nature a évolué depuis des millions d’années comme ça. Il faut arrêter de faire ce qui ne fonctionne pas pour ne pas se faire déclasser pas les autres.
Top 5 des meilleures façons d’améliorer votre code
“Think once read many.” Arrêtez de redécouvrir ce que vous avez déjà trouvé. Durant cette présentation, Éric présente 5 façons économiques et efficaces de remanier votre code pour en améliorer la clarté. Vous devez prendre le temps de rendre votre code lisible une seule fois pour éviter que les autres y consacre du temps à nouveau.
La réussite du Samedi.NET 2011
Samedi le 12 mars 2011 avait lieu le Samedi.NET sur les patterns de présentation organisée par la Communauté .NET de Montréal. Lors de cette conférence d’une journée plus de 100 personnes se sont déplacés pour entendre parler d’architecture. Les 5 conférenciers se sont succéder pour faire de cette journée une réussite.
En introduction, Mario Cardinal et Erik Renaud ont mis la table en mettant en perspective l’importance de prendre les bonnes décisions au bon moment. Il faut retenir que certaines décisions sont parfois irréversibles ou très couteuse à changer plus tard.
Pascal Laurin nous a présenté la base de réflexion de la programmation orienté objet en parlant des 5 principes SOLID. Ces principes sont la fondation des patrons de conception popularisés par plusieurs auteurs dont la fameuse « gang of four ».
Eric de Carufel démontré à l’aide d’exemple de code la façon d’injecter des dépendances pour faciliter les tests unitaires. Il a même profité de l’occasion pour démystifier le concept de conteneur d’inversion de contrôle (genre Unity) avec une implémentation fonctionnelle d’une cinquantaine de lignes de code.
Ensuite Maxime Rouiller nous a introduits au patron de décorateur. Sa métaphore avec le concept des poupées russes a été aussi efficace que le code qu’il a écrit pour nous le démontrer.
Après le dîner, Mario Cardinal nous a démystifiés de patron MVP et ses deux saveurs, la vue passive et le contrôleur superviseur. Comme toujours ses anecdotes ont été très pertinentes pour faire comprendre ce qui arrive quand on ne fait pas attention à ce que l’on fait.
Maxime a suivi avec une version express de sa légendaire présentation sur le patron MVC. Il en connait tellement les recoins qu’il peut la faire sans filet.
Eric nous a ensuite parlé rapidement du patron MVVM introduit et principalement utilisé pour le développement d’application Silverlight et WPF. Encore une fois, il a utilisé les concepts ce de patron pour amener les tests unitaires dans le décor.
Erik Renaud a brillamment conclu la journée avec une comparaison des trois patrons de présentation. Il en a fait ressortir les similarités ainsi que les différences.
Vous pouvez trouver la matériel de cette journée dans la section “Communauté –> Documents” du site de la Communauté .NET Montréal.
Une belle réussite de Pyxis à CAE Santé
Dernièrement, CAE Santé annonçait le déploiement d’un système de gestion de centre d’entraînement médical avec le CHU Sainte-Justine.
Saviez-vous que Pyxis a collaboré à ce projet?
Pyxis est très fière des résultats de la mise en place de Scrum pour la réalisation de ce projet. Trois collaborateurs ont participé au projet. Marc-André Filion-Pilon occupait le rôle de Scrum Master, veillait à la gestion du projet et agissait à titre de facilitateur. Erik Lebel et Éric de Carufel ont agi à titre de développeurs .NET. Leur expérience a permis d’aider l’équipe dans l’application de pratiques Agiles d’ingénierie logicielle.
Ce que Scrum a permis à l’équipe de CAE Santé
L’emploi de la méthode Scrum pour la réalisation du projet a permis d’atténuer plusieurs risques, notamment en favorisant des cycles courts de développement (sprints de 2 semaines). Ceci a permis la révision en continu des priorités et l’adaptation du processus en fonction des succès et problèmes rencontrés. De plus, nous avons utilisé plusieurs artefacts simples et efficaces de Scrum pour assurer la visibilité relativement à l’avancement du projet (carnet de tâches du sprint et de la livraison, graphiques d’avancement, etc.).
Au niveau des besoins, il était essentiel de les clarifier et de les prioriser conjointement avec le client et les utilisateurs finaux. Le rapprochement avec les utilisateurs et une plus grande implication de leur part ont permis de gérer les attentes tout en assurant une grande transparence.
Défis techniques
Un des plus grands défis d’un projet de développement ayant un délai très court et un important périmètre est de ne pas couper dans la qualité (perçue ou interne). Or, ce risque a été pris en compte en favorisant des déploiements rapides, ce qui a permis de faire des tests et de recevoir du feed-back rapidement. De plus, l’utilisation de patrons et de cadres transversaux dans l’application permet du développement plus rapide, uniforme et fiable.
Bravo à toute l’équipe qui a réalisé ce beau projet!



