Just got back from the NDC 2008 conference earlier this evening, and thought I would post about it before the details fade from my memory. I’m just going to jot stuff down randomly here, so apologies in advance for any lack of proper sentence structures and so forth! I took some pictures as well, but they didn’t really turn out all that good (mobile phone cameras, eh…).
Got a seat for Scott Hanselman’s keynote, which was lucky – loads of people attending! His big focus was Dynamic Data. Thanks Scott, I get it now – its not a wizard after all! :p Looks pretty cool, but will it be useful for us ASP.NET MVC converts?
Went to hear Dino Esposito talk about reach vs rich web applications, which didn’t really cover the stuff that I was hoping for. I guess he was setting the stage for his later talks, as he talked about the story of the web, ajax etc, and the difference between web applications focusing on reach (using standard web technologies like html and JavaScript) and those targeting rich web applications (Silverlight – I’m still not sold).
Next up was Roy Osherove: Excellent speaker (and singer!)! Caught three of his session, the first was “Deep Reflection” which covered much that I already knew about reflection, the CodeDom and LCG, IL and DynamicMethod etc. But it was really interesting to see the performance numbers for his comparison of the different ways to do code generation – again, we see that when you make assumptions on optimizations, you will get it wrong. Stayed on to watch his next session, which was probably his best one. Titled “Sense and Testability”, he basically talked about designing for testability; the ideas of externalising dependencies using inversion of control and the benefits of this, and how it can break encapsulation (leading to the loss of cohesion). Interesting to get these topics explained by someone as well versed in them as Roy, especially with him being a TypeMock employee which naturally biases him somewhat (in a good way, mind). Prompted by a member of the audience, he explained that he thinks you should aim for having only a single logical assert per test, which he’s also blogged about previously (sorry, can’t find the exact link for that post right now). I totally agree! I’ll have to blog my thoughts about that soon… He also plugged his book, the Art of Unit Testing, which I’m going to have to check out when it’s done.
The last session I caught on the first day was David Chappell’s talk about The Road To Oslo, which apparently was a big secret; David even told the camera guy to stop recording his session. I was half expecting to have to sign some sort of non-disclosure agreement before he would tell us anything :p It turned out to be a very high-level talk (not really unexpected) about this vision of a central repository for, well, just about anything definable by a schema. Hmm, sounds like WinFS meets SOA. Seems to be the future of WF and BizTalk, among other things. Interesting? Maybe, too little information was really given for us to see clearly what it is yet. Or maybe I was just tired with it being the last talk of the day. Anyway, apparently it’ll be unveiled with a CTP at the PDC.
Went to the party at Fugatzi in the evening, where we got (even more) food (yay) and beer (yay!), talked to some fellow developers and listened to the band Katzenjammer which were playing for us. Went off into Oslo and had a few drinks and increasingly intellectual discussions (err :p) with Einar Ingebrigtsen and a few others after – lots of fun as always! Got back to the hotel for some sleep, and woke up not too worse for wear and just about made it back to the conference centre for the agile panel debate next morning.
Scott Hanselman led the debate much like he does in his podcasts (Hanselminutes). The panel, consisting of Mary Poppendieck, Ken Schwaber, Ron Jeffries, Chet Hendrickson and Roy Osherove didn’t lack for stuff to talk about, with a few questions thrown in from the crowd along the way. They talked about what it really means to be agile, how you measure success, the agile manifesto, and threw plenty of jokes at each other. Loved it, but it was way too short. I bet they could have gone on for the entire day and still kept it interesting.
Moved on to Ron Jeffries and Chet Hendricksons first session on the Natural Laws of Agile Development, in which they took on the role as ‘nature’ and played a game with the audience, simulating different ways of running a project in order to highlight what makes an agile approach better than big-design-up-front. Very visual talk that really put across how bad we are at estimating and how little we really know at the beginning of a project; The benefits of releasing incrementally and as early as possible really stood out as well. Had a hard time deciding whether to stay on for the next two sessions where they were going to elaborate on these things, but decided to go to the Enterprise and Scrum workshop with Ken Schwaber instead.
Which was not a bad choice – here’s a guy who really knows agile and scrum in particular (he invented it, after all!). Scrum is really about acknowledging that people are intelligent, and left to their own devices will self-organize to do what is needed. I’m going to write a longer post on this later, as I took down some great notes from the session that I need to organize first. We who attended the talk were sitting at round tables, and Ken made each table make a “ScrumMaster” decision on a problem he laid out for us. Very educational. My table did fairly well I think, we didn’t miss the mark by too much :) Decided to not stick around for the second part, though, as I really wanted to catch Aslak Hellesøy’s talk on Behaviour Driven Development.
BDD is really about putting business value in the front seat. It ties in neatly with scrum and the whole user story card idea of “as a <role>, i want <action> so that <benefit>”. The acceptance criteria of these user stories are modelled as “scenarios”, which are example driven and define the definition of “done” for a particular story: “given <x> when <y> then <expected result>”. These then translate naturally to automated (functional tests) – we’re talking about acceptance testing here, which are higher level than unit-tests. Frameworks like fit/fitness and rspec were mentioned. Certainly going to dig deeper into this stuff too.
Had to skip the last session in order to catch the train back home, but at that time my mind was just about approaching sensory overload anyway, so I doubt I’d have been able to cram much more in there without something else falling out.
All in all, it was a truly excellent conference. Got to listen to some truly talented folks within the agile crowd and hang out with fellow developers from all over the country. Rune Grothaug and the rest of the crew who made the conference happen did an amazing job – very well done guys and girls! I am looking forward to next year already – they’re really going to have to work hard to top this years lineup of speakers. But apparently Rune is already working on making that happen… can’t wait!