A couple of weeks ago I got a new position of Head of Development. I've never worked in that company before, so I'm completely unaware of a domain, how the code is organized, what it looks like and so on. The codebase is pretty impressive, it's about 500 kLoC. The code is about 10 years old, there were several teams involved in it during this period. Hence there is no single style, no single framework. There is one guy who works there for about 5 years and he knows this system the best. Others work there for less than a year and are more or less competent in some certain pieces of functionality.
My primary responsibility is to carry out refactoring so that features will be delivered faster and with fewer bugs. And I do mean refactor, not rewrite — I'm well aware that it fails most of the time.
So where do I start? That is,
What I came up with by far are pair programming sessions, which are more like "interactive lessons", when I ask what is this, how is that, where is that, etc. My "Working Effectively with Legacy Code" copy is on its way, so I need some advice to start with, and some caveats to watch out in the future.