Many old digital systems have been working well for long time, but without automated tests they become increasingly difficult to modify.
Meanwhile the world keeps changing and the need to upgrade is pressing, but re-building everything is not an option.
Like a vintage car can shine after some proper maintenance, it is possible to split monoliths, break down dependencies, retrofit tests, and make old systems maintainable.
This course will give teams all the advanced technical knowledge needed for working effectively with legacy code.
The most important knowledge of teams is not technical, but about the business. That's what is embedded in the current system, so the best candidates for improving it are the people already there. Technical skills are easier to learn with Alcor Academy.
At first, we practice on advanced techniques for changing the code staying in green, breaking down dependencies and essentially making untestable code testable, using small tailored exercises.
Afterwards, we learn how to retrofit tests properly, identifying what the actual correct behaviour of the system should be.
Finally, we collaborate on a custom made exercise, inspired by a real-life “big ball of mud” scenario, with external dependencies and obfuscated code.
Legacy
Code Smells
Refactoring Calisthenics:
Dependencies
Characterization
Tests
Advanced Refactoring
Applied I
Advanced Refactoring
Applied II
Learn by doing:
Presentation Day
Delivery type | Coaching and Training lessons |
Total Course Duration | ~18 hours |
Lesson Duration | ~3 hours (half working day) |
Location | 100% online or on premises |
Format | Slides and hands-on collaborative coding and/or modeling |
Level | Advanced |
Module Attendees | 4-8 (if 100% Online max 6 attendees) |
Coding style | Mob programming (or Pair programming) |
Programming language | Any (see notes) |
Notes | This is a course based on very hands-on modules. The attendees will write code in mob programming (or pair programming eventually). Mob programming tool-set will be setup in advance ad-hoc, depending on the chosen technology. (If the pair programming option is agreed, participants should have a laptop prepared with their chosen development environment, a unit testing framework and optionally a mocking framework.) Given the amount of information delivered, we suggest to schedule no more than 2 modules per week to give time for the attendees to digest the content. |