On Tuesday I caught an early train to London and arrived at the Barbican estate for ‘DevWeek’, a 3-day series of technical seminars. Let’s get one thing out of the way; the Barbican estate is architectural lunacy. I never expected such an entertaining venue. Huge modernist residential blocks enclosing an open precinct, with yet more flats erupting out of a vast central lake on concrete pillars. In theory, it’s a monstrosity. In the flesh, it was a tranquil backdrop for some inspiring tech-talk.
Tuesday’s highlight was the ASP.NET Model-View-Controller framework, which was released at the Mix ’09 conference last week. There’s nothing new about the MVC pattern, which was first conceived and documented in the 70’s, and a large number of web frameworks already operate around this pattern. Microsoft seem to have been ‘watching the tail lights’ of others such as Rails before committing to an implementation of their own. The same could be said for the ADO.NET Entity Framework as an O/RM toolset and ASP.NET Dynamic Data for scaffolding, all of which featured during the conference. As regards the MVC framework I was surprised by the number of speakers, even from within Microsoft, who conceded that the ASP.NET web forms model is not well suited to delivery of clean, accessible HTML markup, and makes unit testing extremely difficult. They may be late to the party, but the ASP.NET MVC framework is a massive leap in the right direction for ASP.NET developers and makes all these problems go away.
The high point of Wednesday was a seminar delivered by ThoughtWorks’ Neal Ford on the mechanics of programmer productivity, although in fact most of the subject matter was applicable to non-programmers. I’d urge anyone who has an opportunity to attend one of Neal’s talks to jump at the chance. The piece that really struck a chord was the reference to the psychological phenomenon of flow (aka being ‘in the zone’), and what practical steps can be taken to aggressively guard this most productive, and most fragile, states of mind. Neal also gave a raft of practical advice to accelerate the process of getting stuff out of your head and into your computer, such as memorising keyboard shortcuts and switching your mouse to the opposite hand to discourage yourself from using it!
The take-home message from Thursday was Kevin Jones’ session on designing code to facilitate unit testing. Kevin demonstrated how to recognise code which would make unit testing difficult, and how to refactor to avoid this problem. He also covered design patterns such as inversion-of-control which can make code unit test-friendly from the ground up, and tools such as Microsoft’s Unity which take the legwork out of dependency injection.
Interestingly, a lot of people were Twittering during and after the seminars using the #devweek hashtag. Despite being initially sceptical of the micro-blogging platform, I was fascinated with the way a small virtual community sprung up around the physical event and I was able to read their session feedback in real time. My only regret from the whole conference is that I couldn’t be in all 8 sessions which were running at any one time, so I’ve already started reviewing the slides from the ones I missed. See you at DevWeek 2010!