When I started holidays three weeks ago, I had a zillion work-thoughts buzzing around my head, so I wrote out some notes in the hope that I could forget about it all and get on with some relaxation.
Well, it’s back to work on Monday, and it was time to pull out those notes. Looking through them, I remember that I actually quite like my current assignment. I was looking forward to it before I started and, after five weeks on the job, it is still going well.
One thing I am enjoying is the framework I built to handle the look and feel of the application. It’s been a few years since I’ve been able to take responsibility for a large chunk of code in a green-fields application. In the first week I found myself thinking about it at odd moments: on the train and while doing the washing up. When I did start coding, it seemed to come naturally and easily – not counting a few technological frustations. Fun!
Five weeks later, I had 2000 lines of code which – while not perfect – are well documented and meet the goals of being both usable and flexible. Usability is especially important, since the framework forms the basis for well over 30 screens. For us, usability means that a new screen can be implemented by writing a small number of methods in a new class, with minimal repitition and boiler-plate. Flexibility means that it can handle each of those 30 screens with a minimal amount of “special-case” code.
On another level, I am particularly enjoying working with my co-workers. There are just three of us, and we are all contributing in different ways. For a start, there are parts of the code in the system that each of us can point to and say “I wrote that”. At the same time, important design decisions are discussed amongst the three of us, so we all own all the code.
Beyond that, Duncan brings all of his experience working for this client for the last few years. He shares freely from his understanding of the business domain, the database schema and C++.
David keeps us honest: he ensures that we build what the customer wants, that we don’t just implement things in a particular manner because “that’s the way it’s always been done”, and that appropriate technical and customer documentation is produced.
Together, the three of us accomplish more than three times any single one of us could.
In summary, a good project, backed by a good team. I look forward to seeing what the guys have been up to on Monday.