Brain rested and hungry of content, he (male organ; flame on, girls) and the rest of my body headed onto the second day of the conference which promised to be a long, long day.
David Laribee started the fire with a session on Agile Planning. Very interesting: different levels of planification, user stories, estimation, key metrics, iteration length and structure,... lots of stuff that I'd love to be more read, but... User Stories is a subject I'd like we (my team) did better (or did at all) in my agile project (wow, check that! I am part of a "agile team". Look Ma!!!)
Very good, in spite of being the first in the morning.
Recommended practices for Continuous Integration
When I said an agile team, I meant it, even if we are not doing continuous integration (yet).
I know the basics of Continuous Integration (CI), I have read a lot of posts and a book about it. I have even set up a couple of environments "successfully", but it's one of those things I am not self-confident I was doing right. Besides, with my next project coming soon. Nice timing.
Follow-bulleted-recommendations style but with comments right from the front-lines. Nice session. But if a have to find a "but" (and I am always trying to find one, that's how ungrateful I am) I expected the recommendations to be backed up by samples of a given CI tool (CC.Net for example?). I obtained so samples, but I can do it in my spare time (yes, that and the zillion of other cool things I was exposed to)
Busy Developer Guide to F#
This was a tough decision, as it happened at the same time as "Techniques from Brownfield Projects" (and which project doesn't become "brownfield" during it life). But since I missed Ted's previous session, I thought it was a good idea.
And it was. Ted is a heck of a great speaker. I had only heard him a couple of times (I am no fan of podcasts) and, to be honest, I wasn't that impressed (maybe because I did not agree at all with what he was saying).
But this time I was impressed. Not only because I know sh*t about the subject (so I can't disagree), but because he's got it. The right tempo for jokes (very sarcastic) and a great style of explaining complicated things.
We went though the sample Visual Studio solution for F# and I went through every "new" concept (new for the functional programming newbie I am): tuples, lists, recursion, OO in F#,... Very, very interesting. I got what the session promised and for once the level of detail and the amount of information fitted the schedule about right.
Did I mention I enjoyed the session very much?
Black-Belt Configuration for New Projects
I was very disappointed when, after having a enjoyable session and a not less enjoyable lunch, I was about to disentangle the mysteries of unit testing when handling databases and I found out that Roy was sick and unable to do the session.
Oren was to substitute him with "Zero Friction Development Environment" but I chose going to Black-Belt Configuration for New Projects (figthing the temptation to go to the part 1 of "Building Application with Silverlight 2.0") instead of listening to one of my "fallen heroes" (a joke, I have the uttermost respect and admiration to this fellow).
Jeffrey is an spectacle on himself. But too much of a preacher-on-afternoon-local-TV style for my taste. Very valuable advices but again, no practical samples to back them up (in fact there are, but it's source code in Google code), so it wasn't a perfect 10 of a session, but a good one though.
At least I got confirmation for my idea that I need to put as much work as possible on my build script and leave the script in the CI system very simple. I also was sold (I am an easy man) on the idea to store the real tools used to build the product with the very source of the product. And I was exposed to the concept of database migrations (and a couple of tools to ease the pain) which definition term I heard but did not fully understand the problem they were solving.
Taming Software Dependencies with DI and IoC
This was more of a "let's see if what I am doing is more or less the right thing to do" session style.
We do DI in our current application. We even did not do it upfront, but waited patiently without it until it was necessary. Even then we waited till support from a external tool was needed. And finally it proved to a valuable decision. We felt good then.
And after this paragraph of gratuitous self-satisfaction, let's go with the session.
I enjoyed this session better than James' previous one. He had the right tempo and was able to explain the reasoning and make the journey from tightly coupled software to dependencies injected "automagically" by a container (Windsor), stopping at poor-man's DI ("newing" up dependencies in the simplest constructor) with an extra stop at home-made dependency locator.
Nice session but I did not learn anything jaw-dropping. I might have as well gone to see some of Enterprise Library 4, but I didn't.
Building Silverlight Applications part II
This was also hard to decide, as there as also a session with Unity (new kid in DI town) and "Advanced usage of IoC containers" (by Oren). But since I did not attend the first part on Silverlight and I suspected that Oren's session was going to be about Binsor (and it's a subject I have already investigated) and I have no plans on Unity for the moment, I jumped the wagon of Silverlight coolness.
And it was a good session to finish the day. Learning a bit on how Silverlight interacts with the browser history buttons and persists state in the isolated user storage and how it can interact with the host computer with the new FileBrowser control, gave me the impression that Microsoft is slowly heading the "right" way.
The session also unveiled some of Silverlight weaknesses. And that is also I appreciate a lot, because impacts directly on how effectively I can suggest the application of a certain technology for a certain project.
Manager's briefing for conference day 2: lots of potentially interesting sessions that were a mix of very good and mildly disappointing.