mobile menu icon
Changing Legacy Code

In this training we’ll learn how to evolve and improve legacy code in a safe and effective way.

We’ll learn how to break dependencies in order to test legacy code, and how to gradually and sustainably improve its design.

The training will be comprised of a combination of theory sessions that present different techniques and strategies, and exercises to apply them.

teaching logo Information

20 hours
On-site or remote
590€ / person
(V.A.T. not included)
For open dates 50% discount for underrepresented groups in technology
I'm interested!
// Contents
1. Legacy Code.
1.1. Problems and challenges.
1.2. Economic implications.
2. Evolving legacy code: techniques.
2.1. Cover & Modify.
2.2. Dependency-breaking techniques.
2.3. Characterization tests.
--- 2.3.1. Chracterizing legacy code.
--- 2.3.2. Applying structural Testing.
--- 2.3.3. Applying mutation Testing.
--- 2.3.4. Coverage criteria (optional).
2.4. Other ways of characterizing legacy code.
--- 2.4.1. Golden Master + Sampling.
--- 2.4.2. Approval Testing.
2.5. Making changes.
--- 2.5.1. TDD & planned refactorings.
--- 2.5.2. Splinter Pattern & other especial refactoring techniques.
--- 2.5.3. From inheritance-based seams to dependency injection (optional).
2.6. Finding testing points and identifying changing points.
2.7. Shortcuts: sprouting & wrapping.
2.8. Incremental rewrites.
--- 2.8.1. ¿Why incrementale rewrites?.
--- 2.8.2. Branch By Abstraction.
--- 2.8.3. Strangler Fig Application.
--- 2.8.4. Testing in production with experiments (optional).
3. Evolving legacy: strategies
3.1. Technical Debt, economic implications and management.
3.2. Prioritizing and triaging technical debt.
--- 3.2.1. Hotspots analysis.
--- 3.2.2. Product Hurricane Maps.
3.3. Some strategic patterns (optional).
// Languages

At the moment the examples and katas are ready for Java and C#, but if you wish to use another language please let us know.

// Requirements
We will send you an email telling you everything you need to install before the course.
// Who is it intended for?

Primarily for programmers working with the object-oriented paradigm.

// For companies or open to the community

The course can be held for companies (closed for the hiring company) or open to the community. We try to run one open edition every term. Small companies often send people to our open courses. If you would like to be notified of upcoming open editions, please fill in this form.

Please note that courses for companies take place once we have been booked by the client. We will need to know the date at least one month in advance in order to be able to schedule them.

teaching logo Information

20 hours
On-site or remote
590€ / person
(V.A.T. not included)
For open dates 50% discount for underrepresented groups in technology
I'm interested!
¡OK! I am interested in taking the Changing Legacy Code Course

If you wish to apply or if you still have any questions about this course, please contact us at contact@codesai.com or fill out the contact form.

We will try to get back to you as soon as possible!

Send Message