Great opening day to QCon, with quite a consistent theme – we appear to have moved beyond Agile to a new post-Agile “lean development” model. This was echoed from the keynote through three of the five talks. This is the anti-offshore, anti-project-management, “let us get on with it” model – which may not work for many companies, but does appear to pay huge dividends to those brave enough to embrace it.
Keynote: Scaling Lean & Agile (Craig Larman) 8/10:
Keynote speech, interesting, insightful take on how to manage effective development across very large (1000+) teams. Essentially the QCon basics - hire great people, get out of their way. Avoid job titles - foster a culture of the master programmer - banish the word architect, and create cross-functional teams. Spend 5-10% of a sprint digging deeper into requirements for the next sprint. Great software engineers are gardners, not architects. Oh, and avoid project management tools where possible - it adds little except overhead.
From months to minutes - upping the stakes (Dan North) 8/10:
Taking it up a notch, Dan North (a QCon regular) spoke about his conversion from Agile to the new post-Agile world - working in financial trading firm where software is released every three seconds on average. Or something like that. Dan's a good speaker, giving an entertaining talk, and a lot of what he said resonated with the keynote - small teams, tightly integrated (inc. the 'client'), with a lot of autonomy and control. You would have to build up a heck of a lot of trust to get away with this! Most interesting concept he spoke about is that of "Software Half-life" - this time taken for 50% of the codebase to be re-written. He estimated theirs in months - the codebase is constantly refactored out of existence; in a world like this, no one gets hung up on their own code perfection - get it done, and out of the door ("spike-and-stabilise"). He also spoke of the "path-to-production" being the most effective test-bed. True, but again, you'd need an awful lot of trust on account to be able to live like this. Fun though.
Lean Programmer Anarchy (Fred George) 8/10:
Taking it up another notch (or ten), Fred George introduced us to "Developer Driven Development" - a world without QA, BA or PM - just developers and the client (internal). This is a world where developers are measured on their contribution to the bottom line - so frankly no one gives a damn about the backlog or what you did yesterday. Hard to believe it really works like this - but apparently it does, and the business now thinks that more developers = more profit, so on they come. Developers hire their own, self-organise and manage their own time. Extraordinary, but a great fun presentation. One interesting point that reflected the keynote was the "cult of the programmer" - a/c Fred, in the bad old days (of waterfall), being a developer was a crappy job (true), and so any decent developer wanted to move on to becoming an "architect". This is no longer the case - as Fred put it - how many surgeons wake up one morning and decide to become a hospital administrator? Developers can now grow old at the keyboard, like geeky rock stars, which is a great thing (IMO).
Bringing Developers and Testers Together with Visual Studio (Giles Davies) 4/10:
Talk about coming down to earth with a bump! I walked into this talk by mistake - a last minute room-change meant that the "Do's and Don'ts on Android" talk I was expecting was in the adjacent room. In contrast to the previous talks (and the keynote) - the word from MSFT was "do you want developers having access to the test environment - probably not!" - cue tumbleweed. This was so at odds with the tone of the day (developer anarchy = profit) that it was hard to imagine it was the same conference. I felt sorry for the presenter - it wasn't his fault, and he did a grand job of demonstrating some convoluted Visual Studio features - I'll give him 4/5 for presenting and the content 0/5. Topped off with some Q&A around licensing. Wrong conference MSFT.
Agile Operations (Dan North and Chris Read) 8/10:
Dan teamed up with (another ex-ThoughtWorker) Chris Read here to demonstrate how it all comes together. Great fun, and a repeat of a (ThoughtWorks) presentation from QCon SF that I watched a while back - basically reinforcing the concept of "Infrastructure as Code" - a lot of which depends on tools like Chef / Puppet / CFEngine etc. Putting everything into version control, rolling out changes to infrastructure like you would with code. The advantage of versioning includes having a comment attached to each change - no more mystery DNS updates! NB - these guys still deploy application code using hand-rolled shell scripts - the Chefification is for the network infrastructure only. Echoed one of the other themes of the day - "optimise for change" - change will happen, so embrace it and build it into your work. Like Etsy - these guys often find it's quicker to redeploy than rollback - sign of a good process IMO.
Making Apps That Don't Suck (Mike Lee) 5/10:
Mike Lee is a legend, apparently. He's built some great apps on iOS, made some money (I guess), and is now travelling around the world dressed as a pirate. He's also a bit of a tit - and whilst I was interested in his views on iOS development, something he clearly knows about, I wasn't remotely interested in his views on life - which were of fortune-cookie sophistication. I have subsequently read that he was fired (http://techcrunch.com/2008/08/26/tapulous-cofounder-mike-lee-ejected-from-company/) from his own company. No surprise to me.
NASA Keynote (Mark Powell) 6/10:
Second keynote of the day - this from a NASA guy, although not, much to the audience's dismay, someone writing software for spaceships. Still, it was interesting stuff - they clearly have some clever people working at NASA, but generally a downbeat end to the day.