Looking back at last week's Velocity Conference
I spent last week at O'Reilly's Velocity Conference. This was my first year to attend Velocity, and I was there as part of a group of us from Canonical's Core Dev Ops group. The conference is about all things web performance and web operations and since the Core Dev Ops group at Canonical deals in these areas, it made sense for some of us to attend. Also, we on the Launchpad team have been doing a lot of work to bring Launchpad development forward in terms of performance and operations -- making Launchpad faster, continuous deployment, etc. -- so I was curious about how the work we're doing fits into the larger performance/ops culture.
Rather than go talk by talk through the highlights of the conference, I'll mention the things that consistently struck me as I sat through all the plenaries and sessions, as I got to know other attendees over lunch and after hours.
Launchpad and Velocity Culture
First off, I was really encouraged about the things we're doing on Launchpad and how we fit in well with many of the speakers and companies presenting at Velocity. I certainly felt pushed to do more than we're doing and came away with a renewed interest in certain areas -- data-driven development being one -- but many of the issues that were hammered on were ones that we're already focused on with Launchpad, e.g.
- track performance metrics (esp. 99th percentile) and iterate to improve
- embrace change and make recovery easy (e.g. have a rollback/forward process)
- Spread responsibilities across dev and ops, rather than splitting between the two
Again, I felt really encouraged. Sometimes we can be our own worst critics, and since most of us in Canonical are aggressive about moving forward and following current development trends, it can sometimes feel that we're playing catch up, especially on Launchpad. But I felt quite the opposite of this at the conference. What we're doing on Launchpad is on par with the topics covered at the conference. Many of the people I met over lunch were all new to the topics, and I felt I was right with the speaker at nearly every session. We should definitely see about some of us from Canonical proposing talks for next year's Velocity.
Of course, I felt challenged, too. I have some areas I'd like to focus on myself and see us to do better at during the rest of this year.
Data-driven Development
As I mentioned above, I feel really motivated to embrace metrics as part of our development process. We do a pretty good job of this now on Launchpad, I think, but I'm talking about really pushing at this. Tracking everything. Especially around what users are actually doing on our site.
John Rauser's talk "Look At Your Data" and Kellan Elliott-McCrea's "Metrics-driven Engineering at Etsy" stand out as stellar talks that sold me on the value of this. We already track a lot of metrics about the data we have -- how many bugs are filed, what sort of users is working on Launchpad, and so on -- but I'd like us to do more of the correlation between data sets these guys advocated. As well as seeing us have data to back our decision making, rather than assumptions at any point.
Browser Testing
Finally, and perhaps one of the nicest outcomes of my time at Velocity, is that I settled the issue of how to approach browser testing on Launchpad. We've been using Windmill but it has never been very stable. After sitting through the Tuesday workshop on "Automated Web Performance Testing" I finally had an a-ha moment about why this is. As Sidnei phrased it on Twitter after my a-ha moment, it's a matter of "JS fighting with itself for control." Selenium 2 is better by far, since it's based on WebDriver, using each browser's native mechanism for driving browser tests.
Not only do I want to see this testing story solved, I'd also like to do more cross-browser testing and reporting with Selenium 2 than we currently do. Up until now, our testing has been more integration testing, especially around XHR integration. I'd love to see us actually test multiple browsers and get data back about how we're doing across all the browsers we support. This was another of the themes at Velocity related to front-end engineering, and I'd love to see us embrace this on Launchpad.
I have a branch going to show how nice the Python bindings for this are and hope to find some lp devs to work with me to finish this off at the Launchpad Thunderdome (our bi-annual all-hands sprint) in Dublin next week.
And with that, I need to get back to prepping for that sprint in Dublin next week. Velocity was time well spent, and I look forward to see what comes of these ideas (and others) next week in Dublin.
Posted by deryck on June 24, 2011

