Sunday, January 02, 2011

2010 A Code Rant Retrospective

It’s always nice to look back at the year that’s been, so here’s my personal review of 2010.

Work

The ‘earning money’ part of my life split neatly into two phases this year. One where I earned money, and one when I didn’t.

Up to the end of July I had one client, the UK Pensions Regulator. I was acting ‘Technical Architect’ for their development team. This was a great opportunity that allowed me to implement some very cool technology, but more importantly to learn a great deal more about leading and mentoring teams. Peter, who heads the development department there, was very brave, allowing me to pretty much execute my entire strategic plan, Mwuuhahahaha!!

We had some significant successes. We implemented a message based strategic architecture for application integration, a single-sign-on implementation for all our internal and external systems and a completely new case management system at a fraction of the cost of the COTS alternatives. We also introduced a new focus on code quality with plenty of workshops and code reviews as well as monthly code quality reports. This saw a significant improvement over the the year or so that I was with TPR. I also learnt that sometimes, even when I know I’m right, it doesn’t always pay to point it out :)

For the rest of the year I had a lot of fun with a number of smaller projects. I spent a considerable amount of time making improvements to Suteki Shop and also found time to implement a little idea for a kid’s pocket money bank, Tardis Bank. Since December I’ve been back with a previous client of mine, Embassy CES, where I’m spending most of my time building AJAX based enhancements to their website, which means that I’m at last learning to write Javascript properly :p

My longer term plan is still to try and become more of a micro software house and less of a daily rate contractor. I love delivering bespoke software to spec and I really need to spend more time marketing myself as someone who can do that.

Brighton ALT.NET

Early this year, I took over running Brighton ALT.NET Beers, a monthly get together for Brighton and Sussex net-heads. We’ve have some great discussions over the year and I’ve learnt a ton of stuff from some very clever people. It’s been really nice to discover how many excellent .NET devs there are in the area, and I don’t think we’ve smoked them all out yet either. First Tuesday every month, come along, the next one is on the 4th of January.

Code Rant

The response I get to this blog continues to amaze me. For some reason it just keeps on getting more and more popular. I regularly get upwards of a thousand visits a day and I get fantastic feedback both on the comments and via twitter. Thanks to all of you for reading and commenting, it makes it such a pleasure to write!

The Code Rant year started off with a long and never completed series on Windsor: 10 Advanced Windsor Tricks. This also appeared as a 4 hour workshop at this year’s Progressive .NET Tutorials. I’ve well and truly roasted Windsor now, and I should either put-up or shut-up; start contributing properly to the code and documentation, which I don’t really have time for, or move on to other interests. I’ll keep blogging about containers as the mood takes me, but I doubt if I’ll do any more speaking about them.

I continued my fascination with functional programming and came as close as I ever will do to contributing to Windsor when I did a brief spike for a currying facility.

I do mostly web based work and spend most of my time in the ASP.NET MVC framework so of course I continued to blog about various bits and pieces. My experimental MVC Add-Ins got the best response, including a great contribution from Krzysztof. Even though I still do all my web work in ASP.NET MVC, I’ve become very interested in the explosion in alternative .NET web frameworks.

I blogged about my experiences writing Tardis Bank, especially using ASP.NET MVC and RavenDb together, as well as RavenDb in general.

Another core tool that I spend plenty of time with is NHiberante. I wrote about Get vs Load, testing mappings and  schema export.

But of course, the raison d'être of Code Rant is to RANT! write considered and unbiased commentary. Here are some choice bits of depressurisation from 2010:
Why I Write This Stuff
Is Microsoft the IBM of the 2010’s?
You Don’t Need an Application Server
How To Fix Public Sector IT
Trust Your Instincts, or how to stay interested in programming

What I’ve learnt

The greatest intellectual pleasure I’ve had this year was reading Brian O’Sullivan’s Read World Haskell. I’ve always been interested in programming as an art or science in its own right. Haskell is at the cutting edge of programming language research and this book shows how advanced programming features can help solve real world problems. There’s currently no prospect of being paid real money to write Haskell code, but the lessons I’m learning are feeding directly into my C# programming and I strongly suspect that I’ll be writing F# in anger soon. In fact I expect that’ll be the big change in next year’s retrospective. I’m still struggling at the foothills of functional, but at last I can say that I understand what a Monad is, and if you want a preview of Code Rant 2011, I can safely say, expect a lot more functional.

No comments: