Yesterday was the London leg of the Stack Overflow Dev Days tour, hosted at the Kensington Town Hall. This wasn’t your usual Carsonified conference because its goal was to cover a broad range of technical topics aimed at developers.
Joel started with a talk on Simplicity versus Power … when deciding on features for your product should you go for the 37 Signals approach of doing less? He suggested that the simplicity movement is gaining in popularity because there are more startups around now, and with limited resources they have to start with fewer features. Ultimately though, if you want to keep making sales you need to add features. Joel says you should focus on building elegant software in which there is nothing left to take away (from Antoine De Saint-Exupery). Good features help users achieve their goals; bad features (like unnecessary modal dialog boxes) interrupt users.
Also, give people features they care about (isn’t it ultimately about copying DNA??).
Users don’t like making decisions, so it is much better if you can give them sensible defaults and allow them to undo the action later. Joel gave Amazon’s One-Click ordering as an example; it seems simple but if you have to do without the confirmation dialog you must allow for the user changing their mind later. I remember, after reading Alan Cooper’s “The Essentials of User Interface Design” about 10 years ago, discussing with a colleague why we couldn’t come up with a better approach than the customary “Do you really want to do X? OK/Cancel”. I didn’t manage to persuade him at the time because it’s so much harder to do it properly, and this short cut is so common.
I enjoyed Remy Sharp’s introduction to jQuery, which covered the subject at the right level for me and moved at a good pace. Instead of typing examples as we watched, Remy’s approach was to display slides showing the evolving code with key sections highlighted.
This works much better watching someone talk, then type, then talk some more.
I didn’t get as much out of the mobile presentations as I would have hoped. Reto Meier‘s talk on Android gave a decent introduction on the SDK features, but the coding demo could have been snappier. Pekka Kosonen’s humour and candour were popular with the audience, but I would have liked to see more substantial examples in the Nokia demos of Qt. Phil Nash gave a pretty good introduction to Objective-C (derived from Smalltalk, apparently) and my failure to enjoy this as much as some of the other talks was probably because my head was spinning at the unfamiliar syntax.
Jeff Attwood talked about the Stack Overflow team’s passion for building the best possible thing they can ❤. He also mentioned that while the site has some semblance of being professional, behind the scenes it is actually pretty chaotic.
To be successful, you have to be prepared to fail pubicly … and to get up on a stage in front of hundreds of people who might laugh at you. Many people are afraid of doing this, so they don’t.* Jeff brandished a well-thumbed copy of Coders at Work, quoting from Joshua Bloch,
EricJoe Armstrong, and Douglas Crockford. Joshua Bloch recommends reading the “Elements of Style” which isn’t a book about programming (or is it?); Crockford would rather see programmers get a degree in English than programming.
The last talk I saw was Jon Skeet‘s, ably assisted by Tony the Pony sock puppet. Jon spoke eloquently and entertainingly about the various problems we have created for ourselves (it’s partly the fault of the users, partly the architects, and partly the developers). Examples: representing floating point numbers, reversing and splitting Unicode strings, ambiguous dates, and time zones (e.g. there are two different “CST” time zones in Australia).
There were around 850 people at the Kensington Town Hall; the lecture theatre was packed, and the foyer (where food was served) was too small to accommodate that many people at once. But overall Joel, Jeff and Ryan put on a good show and I enjoyed it.
* If you want to become a better speaker, I can recommend Toastmasters.
Update 30/10: Phil Nash has written about his decision to focus on Objective-C, and the bits he left out of his talk.