Saturday 30 January 2010

DDD8 at the Microsoft Campus, Reading

Another year, another community day at the Microsoft campus in Reading: DDD8 (Developer! Developer! Developer! - Event no. 8!).


Featuring talks from those working with Microsoft technologies, but specifically excluding Microsoft staff themselves, the DDD event has been a success from the day it first launched in Reading, with similar events now also organised annually in Scotland, Ireland and 'the South West'.


Over the years that it has been running, the succesful formula has stayed pretty much the same, with a few tweaks here and there as new lessons are learnt. If the event has a problem, it's only that demand far exceeds the capacity that Microsoft's meeting rooms can cope with. At the first event, as I recall, it took several weeks to 'fill up' after bookings first opened, even though there is no charge to attend. This year, with its reputation firmly established, all the available places went within 12 minutes of being announced, and the waiting list had built up to a couple of hundred within just a few hours!


As I've mentioned in reviews of previous events, your overall perception of the training value of the event very much depends on making the right choices about which sessions to attend. Four parallel tracks are run, with the sessions available in those parallel tracks selected from a much larger number of submissions from would-be speakers. The final selection of what's offered is based on votes from those expecting to be able to attend. Session abstracts, which sometimes can deviate quite significantly from what is actually delivered, or previous experience of a particular speaker are the only real guide here.


One of the things DDD has always prided itself on, is the way it tries to balance talks from 'experienced' or 'rock star' speakers with others from 'first timers' who get a unique chance to present to a sizeable audience at a fairly high profile event. Of course there is a risk that untried speakers will fail badly, but overall it's a policy that seems to have worked very well in giving people the encouragement to step forward, gain confidence, and go on to become 'rock stars' in their own right.


This year's event had its own hashtag of #ddd8 - a tag which came 3rd in the Twitter table rankings for most popular UK hashtags for the day, indicating how popular this event - and talking about it - has become. Looking at that Twitter stream as the event kicked off I saw a few tweets commenting that some of the initial slot talks had been at much more of a 'beginner' level than expected.


It's always going to be hard to pitch the right level of talk across the wide cross-section of developers who attend DDD, but it was good to see that the organisers responded almost immediately to the suggestion that at future events the 'level' of the talk should be very clearly identified in the session abstract. This will help all of us make the right decisions when it comes to making best use of the offerings that are available.


Session 1: TDD


I fell slight victim to this 'beginner level' problem with my first talk, Test Driven Development to Save Your Time. Money and Sanity, given by Richard Hopton. When the talk started Richard was very upfront about this being a 'for Beginners' talk, having only used MSTest (for 3 months) out of the frameworks he mentioned by name in an overview slide, and I'm sure there's an audience for this talk - but alas I wasn't it. A more accurate session description (or consistency between the title on the opening slide and the title on the session description) would have made that clearer to me before I attended.


On the positive side, Richard was a 'natural' at presenting, and his enthusiasm carried him through some rather sticky patches in the demo, which would have caused weaker speakers to crumble and fall.


Session 2: Hello Document Databases


I broke my own rules this time around, by trying out a 'new' speaker and a 'new' subject, rather than going with someone I know who always delivers a great session, even if the subject under discussion isn't particularly one I feel I need to learn about.


So common sense says I should have chosen Liam Westley's Commercial Software Development - Writing Software Is Easy, Not Going Bust is The Hard Bit, and in some ways I am sorry I missed it, particularly given that the reviews from those who did attend were universally ecstatic.


But I did feel I also got lucky in choosing Neil Robbins' Hello Document Databases session. Neil was a very natural presenter, and he gave a very nice overview of 'NoSQL (Not only SQL) databases', focussing on CouchDB (so easy you can operate it from the couch - a product with a tag line of 'Relax', which was often repeated, sometimes jokily from audience members when demo's went a bit skewy because of case sensitivity issues).


I didn't come away totally convinced this was the future for document-based systems, or that it was any more than an impressive technology for a hobbyist to play with rather than an 'Enterprise solution', but that may be my 'not familiar with Ubuntu' bias showing through.


My reservations aside, the talk certainly gave pause for thought, and it was nice to get a basic overview of this area of the business. I came away feeling I'd learnt something new, which is all I really look for in a talk. Overall, a good talk, well presented and I'll be watching out for future user group talks from Neil as a result of this one.


Session 3: C# 4.0


The busiest session of the day, by a long way, was Jon Skeet's C# 4 - interest was such that it was the only session that took up the two biggest session rooms, reducing the choice for this slot from four sessions to three. Despite the expanded audience space the session STILL got full to capacity.


Jon is a software engineerat Google, and is something of a hero on the London developer scene. His book C# in Depth (Manning Publications) is rightly praised for being one of the best books written on the C# language, and his presence answering difficult questions on the Stack overflow Developer forum site is legendary. So expectations were very high, and I wasn't disappointed. Jon has a knack for explaining very difficult topics in terms that even the average developer (that'll be me then ;-)) can understand. This was an excellent talk.


Grok Talks


Over lunch, shorter 'grok talks' were given in a much more informal setting than the main sessions. I only heard two, but felt that something had been lost compared to previous events, in that they ran for much longer than I remember. At previous events I've managed to hear four or five quick talks and still have time to socialise a bit. This time round I only got to hear 2 before I needed to take a quick break before the main sessions restarted, and I felt both suffered from being too long.


Session 4: Microsoft Surface


The fourth slot of the day was the most difficult for me to choose from.


There were four great sessions scheduled, covering C# on the iPhone with Monotouch from Chris Hardy, Not Everything is an Object from Gary Short, Microsoft Surface from Kris Athi, and Entity Framework - How to Stop Your DBA from Having a Heart Attack from Simon Sabin - this last session being so popular people were leaking out the doors!


I chose (pretty much at random) the Microsoft Surface talk, and wasn't disappointed. This talk was, like Richard's, very much at the beginner level, and probably didn't have enough material for the scheduled running time, but I came out feeling it had been well worth attending.


It was a bit of a surprise to discover that the official Surface SDK isn't officially supported on anything other than Windows Vista with Service Pack 1 (although Kris mentioned that if you were running Windows 7, there was an unsupported hack that could be made to the msi to fool the SDK into thinking it was running on Vista).


To be honest, I came away with the impression that Surface was an even more niche product than I'd thought it was, and not likely to become anything other than even more niche (or possibly 'let go') in the near future. Questions around using the Surface API on a smaller Slate or iPad-like device gave answers that indicated Windows 7 new Multi-Touch features were very much an 'improved' version of the lessons learnt from Surface, which gave me the impression Surface was now stuck in a bit of a dead-end.


That being said, this was important stuff to hear about and I enjoyed the session, and particularly the demo code sections which contrasted the Surface controls with similar WPF ones, and included using two mice with the SDK to simulate the two fingers that would be used on a real Surface table hardware device.


Session 5: A Developer's Guide to Encryption


My final session of the day was Barry Dorrans' A Developer's Guide to Encryption, which turned out to be a fun way to end the day.


Barry bravely tried to fight his way through his session, which taught the basics of encryption and the various algorithms and terminology, but was frequently interrupted - not just by the audience pointing out several spelling mistakes on his slides and in his code (I counted five!) but by 'evil' video's that had been inserted into his presentation by other organisers of the event at strategic points.


This was Barry's last DDD, as he's off to the States to get the Microsoft chip implant at the end of the week, and the talk turned into a long ribbing, the highlights of which were some spoof ads for Barry's new book, that showed its excellent use for propping up tables, trying to get even with former UK evangelist Daniel Moth, or simply helping to keep the elderly warm (by burning it) during the tough Winter spell.


It was all good fun, and appropriate revenge for tricks Barry had played earlier in the day when one of the organisers, Phil Winstanley left his PC unattended, only to find he had apparently tweeted comments like 'I am going to dye my hair from now on, so people will talk to me', 'Has anyone seem my leather basque? With the studs? On the inside?' (Phil has his leather jacket stolen while out the night before) or 'I'm going to miss Barry so much. Gary Short is not a substitute'. I wonder if Microsoft USA will know what's hit them!


Closing Thoughts


Sessions and learning opportunities aside, this really is an event for those that believe in the reality (rather than the hyperbole) of 'Community'. Microsoft employees may be forbidden from giving talks, but their evangelists and developer leaders are typically in attendance, in their own time, just to network and chat. Security staff and organisational staff turn up hours before the first attendees show, and I felt for them today when I realised that the overly plentiful bacon, sausage or egg butties provided for attendees had all gone by the time Microsoft staff got the chance to put up their feet for a minute when the first session kicked off.


As an event DDD is a great showcase for not just the volunteers who put so much time and effort into making the event happen, but also the Microsoft eco-system. It's to Microsoft's credit that it's happy to sponsor an event where the content is pretty much out of its direct control.


It only remains for me to thank all the organisers for another great event, which shows off community in the best sense of the word. Good food (thanks Microsoft), free buses from the station (thanks SQL Bits), some great talks, plentiful snacks and SWAG (thanks Developer Express, Microsoft, and others) - what more could you ask for from a developer event? Well done, and thanks to everyone involved!


Edited to add: There are some nice pictures from the event by Barry Dorrans on his Flickr stream here

Saturday 16 January 2010

MIX10 in Las Vegas - So, why the hell are you going, Ian?

MIX10 bling!

In March I'm attending MIX10 - Microsoft's 'cool' annual designer/developer web conference held in Las Vegas for 3 days every March.


It's a sign of my age that I nearly wrote 'trendy' instead of 'cool' just then, and in truth I see these events as being essentially geared to the younger, hipper developers and designers, most of whom won't be directly footing the bill for the experience. With less experience of these events and the real world outcomes, they are more easily persuaded by the 'positive' vibe the event generates and typically return to their jobs re-enthused and excited about the possibilities. That's got to be a good thing, right?(No disagreement here!)


For cynical old curmudgeons like myself who've had (far too many) years experiencing similar 'rah! rah! rah!' Microsoft events, attendance is not so essential, and might even be said to be best avoided! Time spent listening to overly optimistic claims or vague promises presented as if they were fact, or watching simplified demo's that don't reflect any kind of real world application reality aren't worth paying for if you live, as I do, in a world where time=money and there never seems to be enough of it to go around (If you think that 'vague promises presented as fact' comment is too harsh, remember that we were shown 'Silverlight on Mobile' over 2 years ago and told it was coming 'very soon' - still waiting!) A certain amount of blind belief in shiny new toys that will invariably fail to live up to much of their hype in the real world, and quickly get replaced with other shiny new toys that are equally flawed (or even more so) a year or so later will help older farts like myself get through the experience and emerge in a less disillusioned frame of mind - at least where Microsoft, its products and its conference events are concerned.


Regular blog readers may remember that the last MIX event I attended (MIX08, two years ago) was a huge disappointment for me and I stated after the event that I thought it represented very poor value-for-money for those of us having to traipse across to Las Vegas from Europe and pay our own way.


Admittedly, my whole take on MIX, as opposed to other Microsoft events (which, let's be honest, aren't THAT different from MIX despite what all the hype says), is probably somewhat jaundiced by several things that happened on that first trip. At the risk of boring anyone reading this with an overlong post, let me recap:


  • I got sick for a couple of days (flu-like exhaustion and bad night sweats bang in the middle of the conference, which on top of the usual jet lag made the whole thing a bit of a nightmare)

  • I trashed a newish laptop when it fell out my backpack onto a stone marble floor

  • I had to pay excess baggage on video gear that I was then told I wasn't allowed to use at Microsoft's so-called 'most open' conference (despite having got permission from Channel 9's Jeff Sandquist beforehand - the problem wasn't down to him, but to over-zealous security and other Microsoft staff)

  • Too many of the sessions I attended were really, really dull or failed to match their descriptions, often given by people clearly not used to presenting. Given that sessions are all made available offline to non-attendees in video form anyway (and with video, at least you can fast forward if the talk's a disaster!) sessions are probably the LAST reason you should use to justify attendance, even if the sessons form the main thrust of the sales pitch for the event.

  • The conference was way too short, given the travel time, cost and distance involved, with too many 'after hour' events clashing with each other, and distanced too far apart, making it hard to hook up with all the folks I wanted to hook up with

  • I was 'between contracts' so paying expensive Las Vegas hotel rates for ridiculously lavish living areas in the conference hotel was a bit of a double-whammy on the cost front.

  • Unlike previous years there was no real SWAG to speak of, not even a concession stand. And I read all the announcements/downloaded the new software, just as non-attendees could, in my hotel room some hours before they were 'exclusively announced' at the conference keynotes.


On the plus side:

  • I made some great contacts

  • Despite being sick in bed at the height of the conference I had some fun times hanging out with contacts old and new on a couple of evenings and across sessions

  • A couple of the sessions I attended were really, really good and provided some much-needed 'lightbulb' moments

  • If I'd had an urgent, pressing question that needed answering and been prepared to be really pushy about it I'd have been able to ask it directly of the speaker/developer most likely responsible or able to give me an answer

  • I took an extra couple of days in Vegas and saw a couple of great shows

  • I got to witness, for the first time, the madness and joy that is Las Vegas (it really is 'the eighth wonder of the world' although more than a week there would drive any sensible person mad, I think!).

Overall then, not a great value-for-money event, even given the extenuating circumstances that cause the negatives to outnumber the positives. Admittedly much of the high cost (flights and hotels) is out of Microsoft's control and they came up with a generous 'early bird' discount offer this year, together with a '3 nights for the price of 2' hotel deal (which is unfortunately still MUCH higher than the neighbouring hotel is offering). I don't see Microsoft making a ton of money on the event, and they are probably taking quite a financial hit on holding it.


But it's my bottom line cost that's important, and given my MIX08 experience it's been with a somewhat jaundiced eye that I've been reading all the hype around the MIX10 event. Heck, some of the 'information' that's being pumped out about the event, and the way it's handled by 'community' is laugh-out-loud funny, or would be if there weren't so many people treating it solemnly as if it were fact!


A few days ago Scott Guthrie, VP of Microsoft's .NET division, sent out a tweet that MIX10 will be "very, very good" and the usual Microsoft shills and fan boys have all retweeted this a gazillion times, as if this were a piece of important news. Suddenly my Twitter feed is all noise, no signal! No disrespect to Scott - he's doing exactly what he should be doing, given his job, but why on earth is anybody other than a Microsoft employee whose job it is to promote this event retweeting this nonsense? The day I see a Microsoft employee tweet that this year's conference is "not going to be very good" or "won't be as good as last year's" I might start re-tweeting such marketing guff myself, but until then it has absolutely zero value, and filling up the Twitterverse with endless repeats of it is just plain idiotic and insulting to your followers who, if they are even remotely interested in .NET, will be following Scott already and not need to be re-told this amazing fact!


This time around MIX is offering a one day pre-conference workshop, available for an additional fee. If you believe the folks at Microsoft (in this video) this is going to be 'great value for money' and offer 'in-depth' training.


Errm ... no!


I attended just such a pre-conference workshop at a PDC event. USD300 may be great value for a day's hands-on TRAINING with a limited group of people but that's NOT what's being offered. If the PDC workshops are typical you're getting a day in a room with hundreds of other people, sat in passive mode while Powerpoint slides and Visual Studio demo-ware is shown to you. The one I attended at a PDC event was so bad I walked out after an hour as I could make better use of my time sat down with a laptop and some MSDN help files. What was offered was (not very good) marketing - not training, although admittedly I may have been unlucky in my selection of workshop, which ironically was given by a presenter who'd previously given one of the best 2 day 'guerilla course condensed' training events I'd ever attended.


And anybody who thinks that a half-day to cover Silverlight 4 is 'in depth' (even if the words 'boot camp' ARE tacked on the workshop description) is clearly taking crazy pills. It's an unfair claim - to both the attendees who are paying for this stuff, and the instructor who's going to have to try and live up to the hype.


My personal view is that most attendees don't care too much about this poor value-for-money stuff. They're not the ones paying after all, and it's a fun few days out of the office (in Vegas baby - woo hoo!) But for those paying their own way MIX is very expensive for what is essentially a Microsoft Marketing event.


So why the hell am I going?


Because Silverlight, since April last year, is now my full-time job, and MIX is traditionally a LOT (some folks say 'all') about Silverlight! That attracts all the Silverlight experts - and there aren't a lot of them around!


Good 'real world' Silverlight information is hard to come by because of the paucity of developers with real world experience around. Yes, we have a very strong user group in the UK, but the majority of attendees that I've spoken to are really 'playing' with the technology, or just starting to explore it to see if it might have some interest in the future, rather than using it in Enterprise Line of Business applications day-to-day. This is surprising, given that Ray Ozzie described it at PDC as 'Microsoft's premier UI' but when even a Silverlight MVP tells you that he's "only really done demo's with it - I'm not using it in my day job" it's clear that real world expertise is limited. MIX10 is a chance to talk to folks who've been writing real applications for some time now, and a chance to trade horror stories, workarounds and resulting success stories.


It's also a chance to say a personal 'thanks' to those in the Silverlight community who've given help and support in their own free time. Easily the best thing about Silverlight is not the technology, but the people - inside and outside Microsoft - who've freely given of their own time and knowledge in the form of crucial blog entries, tweets and email responses. I've a feeling I'm going to be buying quite a few folks beers!


And finally, I need a break from the daily grind. Downtime 'between contracts' doesn't really count here - especially if most of it is spent at a PC learning, working on personal projects or chasing potential clients for work. MIX10 in Las Vegas WILL be a break, and the folks running it do their best to make sure that everyone has a good time regardless of whether my own 'value for money' business assessment of the event jars with that.


So, with the need for a break and the fact that so many Silverlight folks I 'know' via Twitter and community are going, I decided I couldn't afford NOT to go, despite my overall negative MIX08 experience, and my cynicism over the 'passionate' hype that is used to over-sell events like this.


Earlier today, Microsoft evangelist Mike Taulty joked, whilst talking about an upcoming Silverlight User Group meeting that I'm really looking forward to, that I was setting my 'expectations too high'. That won't be true for MIX10. There is no shiny new release of Silverlight to announce - that was done early, just five months after the last version shipped - at Microsoft's PDC conference last November.


We've been told that there will be a lot about Mobile at MIX10, and many of us had expected Windows Mobile 7, based on some sort of Silverlight engine, to be announced. But rumours from last week's CES suggest that the hardware manufacturers are gossiping that nothing will be available for the public until February 2011. (There is an excellent analysis of the Windows Mobile 7 rumours and lack of any real information from Microsoft here).


So I've damped down my expectations, am in fact going in with very low expectations, and will hopefully have a good time as a result. If you're wise and you're going (paying your own way) I suggest you do the same and ignore all the hype nonsense. You'll then hopefully come away more than pleased with the experience.


Stay tuned, to see if my low expectations mean I have a much better experience this time round than I did last time!