After running the abridged version of the software architecture for developers course at QCon London on Monday with Simon, I returned for the conference "proper".
QCon felt quite diverse this year, running tracks on Agile, Java, .NET, architecture, craftsmanship, design, web and mobile development, testing, and more. As such, it’s quite hard to come away with some sort of over-arching feel for what’s driving the industry at the moment. Perhaps that’s really the take-away message this year: that there are numerous movements bubbling under, but a growing sense of pragmatism over technology choice and process adoption.
However, a few candidate themes were discernible that might constitute some sort of zeitgeist.
Firstly there was the contended issue of software craftsmanship. At its heart there was a suggestion that this is about being proud of the software we produce and developing techniques to enable, and perhaps enforce, the delivery of “good code”. Around the edges was the suggestion that it was describing a walled garden, wherein development became inbred to the detriment of broader collaboration. Despite primarily being a developer, I found myself disagreeing with the software craftsmanship argument more than I expected. The argument seemed to be predicated on the assertion that we simply knew that we had a lot of bad code and that bad code was, well, bad. It took other tracks to present any evidence of there having been no improvement in software project success rates over the last decade, which may simply be bad science anyway! In a successful bit of scheduling there were talks representing both sides of the argument, so this is definitely a topic to keep watching.
The craftsmanship track was also complemented by the development and operations track. This presented a view of development, deployment and production support disciplines as a partnership, ideally wherein they were part of the same process. Craftsmanship in the output of this sort of team feels like a more valuable ambition, where the notion of code quality reflects its ability to survive outside the bubble of our QA processes.
The Agile movement also came under some scrutiny in the Agile Evolution track. There was (finally!) a pragmatic view of it presented as an industry that has seemingly sprung up off the back of some well-intentioned recommendations. In a somewhat ironic retrospective, we see how Agile has caused us to throw away things that we have since come to reinvent, while clinging to rituals regardless of their real value; “we have ADHD, retrograde amnesia and OCD,” says Keith Braithwaite. Rachel Davies, author of “Agile Coaching”, referred to "w-agile": mini-waterfall with daily stand-ups, the point at which many attempts at agile adoption stall. However, it was refreshing to see this recognised as being a good start and perhaps as a reminder that it’s not a particular process that’s the goal, but continuous improvement.
There was a huge amount in addition to this at the conference -- certainly a couple of consistent technical themes that are worth tracking down on the QCon site. In particular, Dan Ingalls provided a reminder of the enjoyment we can get from developing software and that we shouldn't lose sight of this in our work.