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
"Very articulate for a programmer, literally wrote the book. Very informative"Alexander Jones, mkodo on 8th Nov 2018
"Very good"Dan Allford, Broomehill LTD on 8th Nov 2018
"Awesome, inspiring. You feel like there's at least a year of research backing each of Michael's sentences."Delegate on 8th Nov 2018
"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
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
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.