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

"Although I am not a developer (tester by trade), this course gave me an excellent insight to the dev point of view - particularly around regression touchpoints and efficient best practice. Very helpful!"

Paul Douglas, News UK

"I learnt some good tricks - thanks!"

Jem Marsh, News UK

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.

Prerequisites

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.

Overview

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

"Although I am not a developer (tester by trade), this course gave me an excellent insight to the dev point of view - particularly around regression touchpoints and efficient best practice. Very helpful!"

Paul Douglas, News UK

"I learnt some good tricks - thanks!"

Jem Marsh, News UK

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.

Program

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

Audience

For managers and developers with knowledge of software development.

Prerequisites

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.