A change of technologies

I started back with an investment banking client this week. I’m working with the team that brought us “the refactoring project” and another small team, and integrating the trade entry system with some “xll” excel addins and some back end server software. Pretty standard fare for investment banking work…

I’ve worked with this client quite a few times over the years and it’s interesting to go back and find that they’re still using the systems that I helped them to put in place back in 2001. It’s nice to see all of the C++ Excel addin code still in regular use and hear that the system has been easy to extend and has remained robust and reliable. The backend stuff is a mix of CORBA servers in Java and C++ that integrate with other banking systems. The suite of software has continued to evolve but it has done so in the spirit of the original design.

The trade entry system is another matter, once again I return to find that the tests don’t run and have been neglected and that the system has moved back towards its initial “big ball of mud” design…

This time around I’ll be helping to get some new people up to speed on the xll addin framework whilst adding some new functionality to the addins. As before, since I can work on all of the layers, I will do, taking the C++ changes in the addins through the CORBA layer to the C++ unix server. Whilst I’m here I’ll also be helping them move some of the unix C++ functionality across to Java.

Yesterday I began some Java work for the first time in quite a while. Whilst getting my environment set up I downloaded and installed JUnit and set off on my first TDD journey with Java. Believe it or not this is the first time I’ve actually used JUnit to write tests. I’ve run plenty of JUnit tests in the past when building and installing Java things but, since the last time I did any Java work was back in 2001 with this client, this is the first time that my relatively recent conversion to unit testing and TDD has overlapped with using Java.

The day went well and JUnit was pretty easy to work with. I’m sure I didn’t use much of its functionality, but I think the tests were fractionally faster to write than when using my home-grown C++ test framework (reflection means that I don’t need to explicitly call the test methods from somewhere as JUnit calls all methods that begin with ’test’, this saves me typing a function call per test into my C++ test framework’s per test class ’test all’ function.).

When I spend some time with the client next week I hope to be able to integrate one of the dynamic mocking systems into the tests. Right now I’m crafting my mocks by hand as I do in C++, I’d like to compare productivity between dynamic mocks and my hand crafted ones.

When the guys on the team saw the JUnit’s green bar they were interested in learning more. They’d heard of, but not used it. I expect next week I’ll be doing the full TDD evangalism bit in the hope of gaining a few new converts.

It’s been almost a year since I last spent any time down on Cannon Street and it seems that there’s a lot of building development work going on in the City of London right now. Loads of the shops that I used to frequent are now boarded up in that way that usually signifies that the whole block in which they reside is about to be ‘repurposed’. I just know it’s going to take me an age to find a decent coffee shop…