Last week I attended Codegarden – the annual conference for the developers using the open source .Net CMS Umbraco held in Copenhagen. It’s probably fair to say that it’s not a typical technical conference. Rather more beer, bingo and unicyclists dressed as Darth Vadar playing the bagpipes than you might usually find.
Those aspects weren’t completely unexpected though. It was our first time at the conference but we’d had prior notice of the Danish take on Monty Python surrealist humour found during some of the “extra-curricular” sessions.
What was more of a surprise though was the announcement in the keynote – that they were scrapping development of the new version of Umbraco.
I have been following the progress of version 5 quite closely – working with it with colleagues in test projects and making some small contributions to its development. Although after its release a few months ago some issues were becoming apparent from reports of those using it; to take a call to abandon two years or so of development and go back to a prior version was a move that we certainly didn’t see coming.
Version 5 was intended as a clean slate development, utilising modern technologies and techniques including ASP.Net MVC. However the development style for Umbraco coders has never really followed this pattern. A lot more flexibility and logic is traditionally embedded in the templates (or in MVC parlance, the views) that in a more strict MVC implementation.
It seems that in trying to maintain this, yet removing the fast, in-memory XML cache used in version 4 lead to a lot of performance issues with data access once websites reached a certain size. This, coupled with the heavy use of abstractions leading to a complex code base and what is perceived as an over-engineered solution, seem to be the main reasons for its demise.
Initially this argument for the over complexity of the code seemed a little odd to me, given the architecture of version 5 was previously considered by most to be one of its strengths. The case that it was too much a “software engineers” solution didn’t seem to be a huge issue – we should probably expect that the development of the core of Umbraco may be accessible only to the more hard-core developers amongst us. But given other members of the core team who have had months or years working with it were admitting to struggling with it, you have to respect this recommendation to re-evaluate; and to ensure the development of Umbraco itself will be something more people can contribute to.
Luckily, whilst at work we have a number of Umbraco related projects in the pipeline, they all started either too early for us to consider use of V5, or late enough that we could get notice of the issues others were finding in practice. So for any client projects, we took a decision to stick for now with the tried and tested prior version, and that has turned out to be the right move.
Others may be in more unfortunate positions though of course having made greater investments in working with the new version of Umbraco. Whilst reaction at the conference seemed to be broadly disappointed but supportive, online the response was a lot more mixed.
Clearly this announcement cast a shadow over most of the rest of the conference. Most people had attended expecting to learn and discuss working with the new version of Umbraco, but obviously sessions planned on these topics were rather pointless now. Time was filled with talks on existing Umbraco techniques and more general web development topics – which were interesting and useful, but not really what we had come for.
The last day was given up to an “open space” – where the conference attendees and organisers divide into groups to discuss various suggested topics around Umbraco and its future. I felt this led to a much more optimistic closing to the conference than might have been anticipated after the first morning, and really demonstrated one of the core strengths of Umbraco – its committed community of developers.
Some discussions I participated in revolved around where to take development next, and others were looking at what can be salvaged from the work over the past year or so and still put to good use. The answer to this seems to be quite a lot, so it’s likely that a lot of learnings and specific features will still make their way into the product. Work is also planned to refactor some existing code and features that would have been refreshed by the clean slate approach now abandoned.
This roadmap for development, plus the spirit of participation engendered by the conference that I hope to continue to be involved with, suggests the future for Umbraco will still be bright (and orange).