Elapse

Working Effectively with Legacy Code (Michael Feathers)

Résumé

Découvrez pratiques et techniques pour vous aider à travailler efficacement et réusiner votre code patrimonial.

Durée: 2 jours

Cette formation n'est actuellement pas au calendrier, mais elle est disponible sur demande en formation privée ou sur mesure.

Envoyer >

Témoignages à propos du livre





Click here for English version (or scroll down) 

 

Vous travaillez avec du code patrimonial (Legacy Code) et avez l’impression d’y naviguer à l’aveuglette ? Vous aimeriez avoir la confiance nécessaire pour l’améliorer, le réusiner (refactoring) et le tester sans risquer de tout casser ?

Description du cours

Lorsque l’ajout de fonctionnalités à une application existante devient une tâche ardue et risquée, que la capacité de l’équipe à maintenir le rythme des livraisons diminue ou que la qualité du produit n’est plus celle qu’elle était, on est en droit de se demander s’il y a des façons simples de sortir de ce cercle vicieux.

Durant cette formation, basée sur son livre Working Effectively with Legacy Code, vous apprendrez comment redonner vie et tester de larges bases de code qui se sont détériorées avec le temps (code patrimonial/legacy code). Micheal Feathers propose des techniques éprouvées pour réusiner du code existant de façon efficace et en toute sécurité.

Non seulement la qualité du produit et la productivité de votre équipe seront à la hausse, mais nous vous parions que le plaisir de développer le sera aussi!

À propos de Michael Feathers

Michael Feathers Closeup Color Transparent

Pionnier et chef de file du mouvement Agile, Michael Feathers est internationalement connu pour son livre Working Effectively with Legacy Code (Prentice Hall, 2004), une référence mondiale classée au 3e rang des meilleurs livres en Agilité.

Également auteur de CppUnit, un des premiers frameworks de tests unitaires en C++, Michael possède plus de 20 ans d’expérience en développement logiciel pour de prestigieuses  entreprises telles que Groupon, Obtiva et Object Mentor de Robert C. Martin (Uncle Bob).

Michael est maintenant le fondateur et directeur de R7K Research & Conveyance, une entreprise spécialisée dans la conception de logiciels et de structures organisationnelles où il met ses années d’expérience au service de ses clients pour les guider dans l’amélioration de leurs pratiques de programmation Agile, le développement piloté par les tests (TDD), le réusinage et la conception orientée-objet (OO). 

Pourquoi suivre la formation?

  • Vous voulez attaquer votre patrimoine et votre dette technique efficacement
  • Vous voulez le réusiner (refactoring) de manière sécuritaire sans empirer votre situation
  • Vous ne savez pas comment tester votre patrimoine efficacement
  • Vous ne savez pas par où commencer
  • Vous avez besoin d’astuces de pros
  • Vous avez des questions particulières concernant votre situation complexe

Objectifs de la formation

À la fin de l'atelier, vous serez en mesude de :

  • Comprendre ce qu'est le code patrimonial (Legacy Code)
  • Comprendre comment briser les dépendances dans du code patrimonial
  • Apprendre plusieurs techniques pour briser les dépendances externes et internes
  • Apprendre quand utiliser ces techniques 
  • Apprendre un ensemble de stratégies pour le réusinage de code
  • Apprendre à identifier des points d'inflexion du design qui permettent de faire des changements efficacement
  • Comprendre le concept de couverture de test pour ces points d'inflexion
  • Comprendre comment écrire des tests efficaces pour du code patrimonial

Contenu

Note: La formation se déroulera en anglais. 

Jour 1

  • Introduction
  • Les tests comme outil de développement
  • Détection des points d'inflexion du design
  • Briser les dépendances : découverte et séparation
  • Briser les dépendances cachées  
  • Tests de charactérisations
  • Réusinage pour améliorer la compréhension du code 
 

Jour 2

  • Stratégies pour tester des méthodes longues
  • Stratégies pour traiter des conditions profondément imbriquées
  • Planifcation de réusinage à grande échelle et réduction de la dette technique

Méthodologie

Ateliers interactifs basées sur des démonstrations, des exercices pratiques, des examples, et des échanges sur les cas concrets avec les participants.

Public visé

Architectes, développeurs ou toute autre personne ayant à développer des logiciels. 

Cette formation est conçue pour des architectes, concepteurs et développeurs de tous les niveaux. Les débutants pourront apprivoiser principes, patrons de conception et pratiques, alors que les développeurs plus expérimentés pourront raffiner leurs habilités et compétences en apprenant comment utiliser ces concepts de façon plus efficace.

Préalables

  • Les participants devraient avoir de l'expérience avec Java, C#, VB.NET ou C++.
  • Vous devez apporter un ordinateur portable avec un environnement de développement Java, C#, VB.NET ou C++. 

 

 

 


Course description

In this class, you will learn how to bring back to life large code bases that have deteriorated over time (Legacy code). When adding new functionality to an existing application becomes a risky and arduous task, when the velocity of the team and the quality of the product keeps dropping, it may be time to ask ourselves how we can get out of that vicious circle. 

Michael Feathers presents some industry-tested techniques to refactor existing code safely and efficiently. Test Driven Development (TDD) and Refactoring are powerful tools when wielded properly. You will learn how to improve existing systems and make them easier to maintain and evolve. Not only will it help improve the quality of your product and the velocity of your team, we bet it will also make it much more pleasurable to continue developing it in the future.

About Michael Feathers 

Michael Feathers Closeup Color Transparent

Michael Feathers is one of the pioneers and leaders of the Agile movement. He provides training, coaching and mentoring services in Agile/XP programming practices, test-driven development, refactoring, object-oriented design, Java, C#, and C++. Michael has over 20 years of experience in developing world-class software solutions

Michael Feathers is the founder and Director of R7K Research & Conveyance, a company specializing in software and organization design. Prior to forming R7K, Michael was the Chief Scientist of Obtiva and a consultant at Object Mentor of Robert C. Martin fame (Uncle Bob). Over the years, Michael has spent a great deal of time helping teams after design over time in code bases. Michael is also the author of the book "Working Effectively with Legacy Code"(Prentice Hall, 2004), a significant contribution that stands as one of the 3 best Agile books. He is also the author of the CppUnit unit test framework for the C++ language.

Course objectives

By the end of this workshop, you will:

  • Understand what legacy code is
  • Understand how to break dependencies in legacy code
  • Learn a variety of techniques for breaking external and internal dependencies
  • Understand when to employ each of the techniques
  • Learn a variety of strategies for code refactoring
  • Learn how to identify change points
  • Learn how to find an inflection point
  • Understand the concept of test coverage for inflection points
  • Understand how to write effective tests for legacy code

Content

Day 1

  • Introduction / Testing as a Programmer’s tool
  • Seam identification
  • Breaking Dependencies – Sensing and Separation
  • Breaking Hidden and Manifest Dependencies
  • Characterization Testing
  • Refactoring Toward Understandability
 

Day 2

  • Strategies for Getting Large Methods under Test
  • Dealing with Deeply Nested Conditionals
  • Planning Large-Scale Refactoring and Technical Debt Reduction

Methodology

Interactive workshop with presentations based demonstrations, practical exercises, examples, and discussions of real life experiences with the participants.

Who should attend?

Architects, developers and anybody who writes software for a living. 

The course is designed for architects and developers with all levels of experience using the Java, C# or C++ programming language. Beginners will obtain a firm grounding in the principles, patterns and practices, while experienced developers will be able to sharpen and refine their skills by learning how to apply the concepts more effectively.

Prerequisites

  • Participants should have experience in Java, C#, VB.NET or C++.
  • You must bring a laptop computer with a Java, C#, VB.NET  or C++ programming environment.

Votre allié en développement logiciel Agile

Calendrier des formations

TDD avancé

Formation TDD Avancé offerte à Montréal les 21 et 22 septembre 2017.

Montréal (ÉTS), 21 septembre 2017

BDD: analyse et spécification des besoins par l’exemple

BDD: analyse et spécification des besoins par l’exemple offerte à Montréal le 5 octobre 2017.

Montréal (ÉTS), 05 octobre 2017

Tests et assurance qualité en agilité

Formation Tests et assurance qualité en agilité offerte à Montréal le 6 octobre 2017.

Montréal (ÉTS), 06 octobre 2017

Fonctionnement et gestion d'une équipe Scrum

Fonctionnement et gestion d'une équipe Scrum offerte à Montréal le 10 octobre 2017.

Montréal (ÉTS), 10 octobre 2017

BDD: analyse et spécification des besoins par l’exemple

BDD: analyse et spécification des besoins par l’exemple offerte à Québec le 10 octobre 2017.

Québec, 10 octobre 2017

Développement piloté par les tests (TDD)

Formation Développement piloté par les tests (TDD) offerte à Québec les 19 et 20 octobre 2017.

Québec, 19 octobre 2017

Professional Scrum Master (PSM)

Formation Professional Scrum Master offerte à l'École de Technologie Supérieure de Montréal du 26 au 27 octobre 2017.

Montréal (ÉTS), 26 octobre 2017

Concepts orientés-objet avancés appliqués au développement agile

Formation "Concepts orientés-objet avancés appliqués au développement agile" offerte à Montréal les 26 et 27 octobre 2017.

Montréal (ÉTS), 26 octobre 2017

Gestion de projet Agile : les principes fondamentaux

Formation Gestion de projet Agile : les principes fondamentaux offerte à l'École de Technologie Supérieure de Montréal.

Montréal (ÉTS), 10 novembre 2017

Tests et assurance qualité en agilité

Formation Tests et assurance qualité en agilité offerte à Québec le 13 novembre 2017.

Québec, 13 novembre 2017

Concepts orientés-objet avancés appliqués au développement agile

Formation Concepts orientés-objet avancés appliqués au développement agile offerte à Québec les 23 et 24 novembre 2017.

Québec, 23 novembre 2017

Développement logiciel Lean : les principes fondamentaux

Formation Développement logiciel Lean : les principes fondamentaux offerte à l'École de Technologie Supérieure à Montréal en novembre 2017.

Montréal (ÉTS), 24 novembre 2017

Développement piloté par les tests (TDD)

Formation Développement piloté par les tests (TDD) offerte à Montréal les 6 et 7 décembre 2017.

Montréal (ÉTS), 06 décembre 2017

Consulter le catalogue>

Nouvelles

Conférences internationales WICSA et CompArch à Montréal

Conférences internationales WICSA et CompArch à Montréal

29 avril 2015

Formations offertes au printemps

Différentes formations spécialisées en génie logiciel et développement Agile sont encore disponibles pour vous ce printemps. Découvrez-les et réservez votre place dès maintenant !

06 février 2015

Deux de nos formateurs agréés par Emploi Québec

Nos formateurs, Félix-Antoine Bourbonnais et Pascal Roy, sont maintenant agréés dans le cadre de la Loi favorisant le développement et la reconnaissance des compétences de la main d’oeuvre d’Emploi Québec.

19 janvier 2015

Retour sur l’Agile Tour de Québec, édition 2014

L'édition 2014 de l’Agile Tour de Québec a été un vif succès pour l'équipe d’Elapse Technologies. Les salles étaient pleines et les critiques élogieuses.

10 novembre 2014

Elapse appuie le Global Day of Code Retreat à Québec

L'équipe d'Elapse commandite le Global Day of Code Retreat de Québec du 15 novembre prochain.

09 octobre 2014

Toutes les nouvelles>

Blogue développement Agile

Étude sur l’économie créative: Éléments du succès de 9 entreprises agiles

Présentation des faits saillants d'une étude sur l'économie créative qui a permis de vi...

09 décembre 2015

Boxstarter : Comment standardiser et simplifier la configuration d’un poste de développement

Boxstarter est un outil qui peut vous aider à simplifier et standardiser l'installation...

07 octobre 2015

Tout le dossier Agile 2015

Pour aider nos lecteurs à revoir tout notre dossier #Agile2015, voici les liens vers no...

23 septembre 2015

Agile 2015: Nos impressions et les tendances (partie 3/3)

À la fin du mois d’août, Pascal et Félix-Antoine sont allés à la plus grande conférence...

17 septembre 2015

Agile 2015: Nos impressions et les tendances (partie 2/3)

À la fin du mois d’août, Pascal et Félix-Antoine sont allés à la plus grande conférence...

17 septembre 2015

Tous les billets>