The LMAX Exchange software platform has been in development for a few years now. We have a great development team who are exceptionally talented and productive, so it’s not surprising that we have built up a reasonably large code base. The core exchange is a few million lines of Java and we have a lot of other stuff as well. This is a big investment.
Understanding what we have and what’s going on in terms of our code is important to us. One way we do this is through relatively simple analysis of our version control meta-data. We’re not really interested in stuffy old lines of code statistics but rather in gaining useful insights like who pairs with who and how often, and what parts of the code base people have worked on or haven’t. This tells us important things that we can do something about.
Without being big headed we consider ourselves to be fairly mature in terms of our agile process. We pair a lot of the time and rotate regularly to share and spread knowledge. We also refactor and delete code aggressively. This is made easier by the tens of thousands of automated tests that support our continuous delivery approach.
Currently we are turning over about 25% of our code base every year. An interesting side effect of this is that the vast majority of the code we have now was written by our current team. Like everywhere we’ve had a few people come and go over the years but it’s good to know that our process also makes that less painful. There are of course a few dusty corners in the code base that haven’t changed since they were written but these aren’t very interesting and we’ll get to them in time. The important stuff gets a lot of attention.