The short answer
Because it's the best.
The long answer
"Gather round", Dan North told the attendees at the QCon London 2009 software development conference, "and I'll tell you a story". This story starts with a story-within-a-story.
User Story: Software Engineer attends a conference
As a software engineer, I want to attend a conference so that I can become a better engineer.
While attending the conference,
- I should enjoy myself
- I should hear some interesting presentations of relevant and novel stuff
After attending the conference,
- I should have learnt useful stuff
- I should want to attend the conference next year
QCon London met all those criteria, with flying colours. Let's see how.
Important things first. The beer, snacks and lunches are high quality; special mention for the seared tuna, roast beef, and falafel canapés.
The venue, the Queen Elizabeth II Conference Centre, is in a wonderful location in the heart of London, opposite Westminster Abbey and the Houses of Parliament. You can walk out of the centre and over Westminster Bridge or round St James' Park or up Whitehall in a few minutes.
There are nice people to meet.
And most of the presentations are enjoyable. I seem to have segued into my second acceptance criterion.
The hardest thing about QCon is having to choose which talk to go to - there are too many concurrent, interesting talks. John Cooke has blogged on several; I'm going to pick out some highlights.
On Day One, Sir Tony Hoare kicked off the conference by contrasting Science with Engineering, in particular Computer Science contrasted with Software Engineering. He characterised Science as male, rigorous and idealistic, and Engineering as female, pragmatic. He infuriated me, a female software engineer and trained mathematician, when he said that engineers hate mathematics. He posited that science informs engineering, but did not address the long-standing problem of how computer science can feed into software practice. I see little communication between computer science academics and practising software engineers, in the UK.
Most programmers should run away crying [from threading]. But they don't. Instead, as with most other sharp tools, the temptation is to show how big one is by picking up the nearest ST code and jamming it into a MT embedding, or tempting race-condition fate otherwise. Occasionally the results are infamous, but too often, with only virtual fingers and limbs lost, no one learns. Threads violate abstractions six ways to Sunday. Mainly by creating race conditions, deadlock hazards, and pessimistic locking overhead. And still they don't scale up to handle the megacore teraflop future. Threads suck!
Dion Hinchcliffe thinks that Service Oriented Architecture (SOA) will be replaced by Web Oriented Architecture (WOA). Whoa - what is that WOA?
HTTP + URIs = Web
WOA is REST plus some extra bits like mashups, Web widgets, data representation mechanisms like JSON and XML. WOA has emerged from the bottom up, that is the developer community up, rather than top down, put together by a standards committee. REST good, WSDL bad.
By the way, the QCon site has got slides to download for much of the conference schedule, so go there to get the presentations from the horses' mouths.
The acceptance criteria for presentations that I stated earlier are (1) interesting, (2) relevant, (3) novel. Not all the talks I attended at QCon London 2009 met all three. But they all passed at least one. Simon Wardley's presentation "Situation Normal, Everything Must Change" was outstanding in all three. It drew the response "Awesome!" from the crowd. Slides featuring kittens plus frequent recaps drove home this message: the commoditization of IT means that we need open source reference implementations in order to create a competitive marketplace. And there was a beautiful graph of Pain against Number Of Slides (of which he had 481).
On Day Two Dion Hinchcliffe was back again, this time with the Keynote. Small black mark for re-using some of his slides from Day One (a context in which re-use is not so good), but a thought-provoking message on how the web as platform is transforming software architectures. Architectures must focus on building network effects. "90% of organisations will have a cloud computing app in pilot in 2010" - some qualification of "organisations" required, perhaps?
Dirk-Willem van Gulik talked about scaling the BBC into Web 2.0. Because the BBC is funded by the television licence, its revenue doesn't increase with its number of website hits/users: in fact the spend per page is decreased with each additional hit (fixed income from licence divided by increasing number of hits). Here's his logic:
More users > More Revenue > More Less Toys!
Some of his solutions: PHP front-end backed by RESTful services; logs and config freely available; developers responsible for deployable packages; continuous integration with automated build and test. He gave a rule for software costs: one third development, one third release, one third production. This has a nice symmetry with the old rule of thumb for development costs: one third design, one third coding, one third testing.
The Guardian is another seminal British media establishment which featured at QCon, twice over. I attended Phil Wills' presentation on Rebuilding guardian.co.uk with Domain Driven Design (DDD). He favours pencil + cards + people over UML, plus trusting the business users to have the final say on the design.
I spent the whole of Day Three in the track "Architecture for the Architect". This wasn't just because I was tired and unable to find my way out of the Fleming Room into the labyrinthine upper reaches of the conference centre. The track had great topics and speakers, hosted by Dan North who also kicked off the track with a top story of a project he turned around. How did he keep us entertained with only six slides? - amazing. Dan did a great impersonation of a stand-up where each developer doesn't listen unless it's their turn to recite what they did yesterday. Sounds familiar? "Use transitional architectures" was one of his lessons, which chimed with Eric Evans later. And, Dan doesn't like maven - check!
Real people have boring problems. That's why an enthusiastic developer ("This stuff is cool - let's build programs! For real people!") turns into a disillusioned developer, according to Stefan Tilkov. So the developer builds a Generic Thing Machine. But that takes forever to configure for the specific context, so disillusionment sets in again ("some programmers, when faced with a problem, turn to a generic solution ... now they have two problems"). Brilliant stuff - I'm still laughing. As well as the jokes there was serious material on
choosing between a generic solution and a specific one. Get the slides!
Next up in the architecture track was Eric Evans, Mr Domain Driven Design. Not all of a large system will be well-designed. Focus on the core domain, which is determined by the business strategy. Distil the core domain. Do context mapping. Read more on DDD. Don't let your worst programmer do the work in the core domain, do it yourself. Don't turn off the legacy system!
Learn Useful Stuff
Where to start! First, see above, plus a host of other useful stuff from presentations I haven't mentioned. Also I re-learnt some things that I already knew:
- the answer to any architecture question: "it depends" (Stefan Tilkov) - I knew this as the answer to the question "what is your estimate for this piece of work?"
- listen, listen, listen (Dan North) - I knew this as a tactic for surviving family life
- KISS and YAGNI (Stefan Tilkov) - I knew these as design strategies
Incidentally, I didn't see TMTOWTDI, although someone suggested Perl was a good language for developing simple, readable, maintainable code (huh?).
And some themes I detected across the conference:
- REST is hot
- WSDL is not
- the Cloud is the new black
- an absence of Ruby buzz
- the Web is where it's at
- trust your business users
Want to Come Back
I went to the first QCon London in 2007. It was a great conference. I wanted to go to QCon London 2008 but couldn't because of date clashes, so I went to its sister conference JAOO 2008 instead. It was a great conference. I wanted to go to QCon London 2009. It was a great conference. Yes, I want to come back to QCon in 2010.
Thank you to all who made QCon London 2009 such a great event. All acceptance tests passed. See you next year!