Last week the first ever DevoxxUK conference was held, and was a big success.
I've been to a few software conferences over the last year or so - Javaone, JAX London, etc. - and interestingly enough the ones I've enjoyed the most have been the unconferences run by the local London Java Community.
Its not that they have the best speakers or are the biggest of conferences but the unconference has this great feel where everyone is excited and interested and there's a real buzz about the place. Ben keeps on talking about the "Devoxx Feel", and as someone who hasn't been to Devoxx before this wasn't something that I could empathize with. I understand what he means now - the "Devoxx Feel" is the same thing as the LJC Unconference feel.
Its about having a software conference where all the attendees are there because they want to be and because they're members of an engaged and interested tech community. Sometimes you get the impression that people go to conferences because they fancied a work paid opportunity to avoid the office for two days - but not at DevoxxUK.
Planning and Organising
I was given the opportunity to help organising DevoxxUK by being made Java SE Track Lead. Now I've undertaken peer-review as part of the academic system before, but I've never helped out with an industrial conference before. Its a totally different ball-game: there's little to no value placed on making a novel contribution and much more about topics that are of broad interest, engaging and knowledable speakers and also about having a balanced progamme. By having a 'balanced programme' I mean covering a variety of different topic areas in appropriate depth.
Of course organising a large conference is the kind of complex activity where its very unlikely for everything to go according to plan! For a start the decision to organise DevoxxUK happened fairly late last year - leaving only 5 months for planning rather than the 9 months that conferences usually take. Furthermore nearly everyone involved in the planning had a stressful full-time job. The program committee had to meet several Sundays in a row to get all the acceptances and rejections finished off. People also made the kind of mistakes that inexperience will lead you into. For example, I failed to be aggressive enough at rejecting bottom-of-the-pile talks in the SE Track, which left us with more work than we should have done when having all-in meetings.
The Program Committee was still a fun activity and I got to meet, or know better, quite a few people in the process. Everyone on the committee had a good reason for being there: they were either an expert in some area or they were involved in a Devoxx conference before. Now the way that Devoxx works is a little different from some conferences: the majority of its speakers are invited to speak rather than acquired through the CFP. This means that the program committee get to invite who they want to see, and I think we did a great job of putting together the schedule.
Before the conference even kicked off we had a meet and greet at the Wenlock and Essex and a speaker's dinner. This involved some good discussion about the limits of Java as a language and also general tech talk. During the conference itself there were plenty of great talks. I have a bunch to look at on Parleys but on the day I went to:
- The Programmer - Kevlin Henney. I've seen Kevlin talk several times before and he always delivers a great talk. The PC had asked him to talk about something which would engage and excite developers in the community and inspire them. In this instance he described the concept of a programmer, in the manner of an archetype. Some great quotes and comparisons made here - definitely something to watch if you're bored of your day job. If I'm going to be hyper-critical my only negative comment would be that sometimes it felt a little lacking in structure.
- Are your GC Logs Speaking to you, G1GC Edition - Kirk Pepperdine. I work at the same company as Kirk, but we haven't been working together much recently due to multiple projects on the go. I've seen the CMS version of this talk and its very good - some description of the algorithm and then a lot of tuning examples, principles and tips. I still enjoyed this version, but I think it suffers a little from the immaturity of the G1 Collector. There's just not enough people using it and not enough experience out there for it to have the same level of tuning advice as Kirk's CMS talk. Recommended if you're thinking about using G1 in production.
- Interview - Me. In the afternoon I had an interview with Yolande Poirier talking about the Adopt programs and also a little about CPU Caches and performance. Hopefully this will go out on Parleys, and thanks to Yolande for interviewing me.
- Hitting the limits of your hardware with Java - Peter Lawrey. Peter is well known from his blog and also being 4th on Stack Overflow in terms of Karma, but I don't think he has done much speaking at conferences before due to the busy nature of his job. His talk used a bunch of different empirical measurements about hardware and showed how you could identify what the source of your bottleneck was based upon knowing common hardware properties. It was a shame this talk was a little bit short, but for many developers the concept of just being able to look at a number and realise its your disk or memory bandwidth that you're bottlenecked on must have been a real eye-opener.
- JCP & Adopt-a-JSR Workshop - Patrick Curran, Mani Sarkar, Me. Patrick gave a good overview of how people can involved in helping out with the JCP and I gave a 10 minute talk about how to run a hackday. Unfortunately we were competing with free beer - so the event wasn't so well attended. I've noticed a running theme that generic JCP events aren't that well attended, but if you put more technical details and specifics in the title then suddenly everyone is interested. Certainly something to think about in future.
- Open, round-table discussion about Scala - Alexander Daniel. We all sat round in a circle and talked about Scala as if we were at an AA meeting. This was actually really good, since most commentaries on Scala are either of the form: "Java sucks, functional programming solves everything, get on the band wagon" or "Scala is the root of all evil, here is my pet-peeve list of features". In actual fact we had a room full of people who had been paid to write Scala in one form or another, and no one expressed either of those opinions. Everyone liked the language itself, but disliked SBT, lack of binary compatibility and compile times. Several people also expressed problems with adoption due to different team members being coerced into the move. Shame this wasn't video-taped - its the most level headed programming language discussion I've ever been involved with.
To just talk about talks is to ignore the most important part of attending a conference: the hallway track. You get to meet so many important and influential people and you'll usually learn a lot more by talking to them directly than just by attending talks.
I had a talk to give at 10.40 on the Wednesday, so the first thing I did was drink a coffee. The second thing I did was drink another coffee. The third thing I did was drink another coffee. I felt that the talk itself went well. I had given a shorter version of this before at the LJC Unconference, but I'd added and removed material in order to improve things and I was a little worried about timing. I actually timed it really well, once you took into account the audience questions I was exactly at the time limit. The content was on CPU Caches and I've put my slidedeck online.
The full talk should be on parleys within a few weeks hopefully. I again felt less nervous than previous talks I'd given which is a good sign, and immediately afterwards Martijn and Stephan both said that they had seen lots of positive comments on twitter. Its great to get such immediate feedback on something. I also had a few people come up to me afterwards and complement me on the talk - which is another good sign. Immediately afterwards I went to sit down and try and clear my brain a bit.
After lunch I went to Trisha's talk on backwards compatibility in the MongoDB Java driver. This was quite interesting as evolving APIs in a sympathetic way is always a difficult thing to achieve. The talk was well thought-through, as you'd expect, and took the opportunity to solicit feedback from audience members effectively. It also had some cartoons expressing emotional state during the talk, which was another nice idea.
The rest of my afternoon was taken up with running a lambdas hackday, which gave people the opportunity to follow on from earlier talks by Stuart Marks and Maurice Naftalin on Lambda expressions in Java 8. This was essentially a replacement for an earlier Java 8 Hands On Lab, which was unfortunately cancelled at the last minute. I hadn't put much planning effort into this lab, but thankfully we brainstormed a list of problems at the last minute and everyone had fun and learnt something. At this point I really must thank Stuart, Maurice and also John Oliver and Graham Allan because their help was invaluable in this lab.
Well the first thing is that I have felt very tired the last couple of days as a result. I'd definitely attend, speak and volunteer again, and I hope that I have the opportunity to do all three again next year. Hopefully I'll be a better and more experienced speaker and program committee member if given the opportunity again - continuous improvement is the path to excellence. I think a big thankyou is in order to everyone involved in DevoxxUK, but especially everyone in the organising team photo - which I linked above.