View Schedule & Book More dates available

Next up:


Want to get more out of your legacy systems: more performance, functionality, reliability, and manageability? Join this course and learn how Technical Debt is a catch-all term that we use for entropy in software development, and techniques along the continuum of team-coordinated refactoring, rewriting, and advanced team practice to maximize the potential of your existing code base.

Systems grow, become unruly, and difficult to work with. When this happens, we often know that we can do better, but it is hard to take concrete actions which help us get a strong a sense of control over the evolution of an entire code base. In this course, Michael Feathers will share what he has learned about efficiently making big changes in large software projects.

This course contains material beyond what Michael outlined in his classic book Working Effectively in Legacy Code and is more focused on large scale change.

Learn how to:

  • Identify various types of technical debt
  • Assess the amount of technical debt in your codebase
  • Develop design plans for large-scale refactoring and debt mitigation
  • Alter team and organizational processes to make refactoring a first-class practice

  • What the community says

    "Excellent knowledge base."

    Delegate on 4th Jun 2019

    "He was very knowledgeable on the subject matter and presented it quite well"

    Delegate on 4th Jun 2019

    "Awesome, inspiring. You feel like there's at least a year of research backing each of Michael's sentences."


    "Very articulate for a programmer, literally wrote the book. Very informative"

    Alexander, mkodo

    "Very good"

    Dan , Broomehill LTD

    About the Author

    Michael C. Feathers

    Michael Feathers is founder and Director of R7K Research & Conveyance, which specialise in software and organisation design, and was previously Chief Scientist of Obtiva. He has worked with hundreds of organisations to revitalise their code as well as support in process change and software design. Michael is a powerful voice on the relationship between complex code evolution and output efficiency within organisations.


    Topics covered include:

  • A Pragmatic Definition of Technical Debt
  • Design Decision Cards
  • Feature Probes
  • Scratch Refactoring
  • Design Direction Tagging
  • Limited WIP Refactoring
  • Design Quality Trend Analysis
  • Systematic Refactoring/Rewriting

  • Audience


    For managers and developers with knowledge of software development.


    While there is no actual coding in this course, delegates will need to have knowledge of reading code, and must feel comfortable working with code samples (provided in C#, C++ and Java) to illustrate refactoring techniques, and running the resultant code through the relevant test suite.

    Bring your own hardware

    Delegates are required to bring their own laptop to this course with a Text Editor (similar to TextMate, vi, or emacs) and an IDE suitable for coding in C#, C++ or Java as preferred.

    A full installation guide for the course software will be provided with your joining instructions.