- Do you also work on code with no tests?
- Yes, and it's the most common case. We start with characterisation tests, which describe the system's current behaviour even where it's wrong and become the safety net for changing the code without first having to understand every detail. The tests grow together with the refactoring, starting from the areas that get touched most often.
- Do you write code or run training?
- We write code. We work in your repository, pairing with your developers, on real features and real refactoring, and the techniques are passed on to the team as the work happens. When a dedicated training session is useful, we run it alongside the work on the code, not instead of it.
- How does refactoring coexist with feature development?
- Refactoring happens inside delivery, not instead of it. With opportunistic refactoring, we improve the code the next feature needs to touch; with a scope team, we unblock an area while the rest of the team keeps shipping. In neither case does the roadmap stop.
- Do you work on monoliths too?
- Yes. Often a monolith doesn't need splitting up; it needs to become modular, with clear internal boundaries. Where a part genuinely needs replacing, we use the Strangler Fig pattern: the new code grows alongside the old and takes over one function at a time, while the monolith keeps working.
- How long does a legacy code refactoring engagement take?
- Expect the first measurable progress after three to six months, not before. The overall duration depends on how much debt there is and where it sits, and the exit plan, with the conditions for closing, is defined at the start.
- Where do we start?
- With the technical debt assessment, which produces a prioritised map of the debt and an action plan, and also indicates which refactoring mode is needed. If the team prefers to take that plan forward on its own, it can.