Sunday, 6 December 2009

First RCP “Open Spaces” Style Session

Following on from a great three-way RCP session, wanting to keep the idea of remote programming sessions going - I’ve had another!

This one was a session with a twist. There was an “Open Spaces” session planned for Saturday – sadly though, the day was cancelled. So, thanks to the marvel that is Twitter - myself, Jeremy Skinner (@JeremySkinner) and Mark Embling (@splashtech) decided (pretty much on a whim) that we will have an “Open Spaces” style RCP* session.

* Still struggling to come up with a different name for this style of geek get-together..

Loose Plan

Now, “Open Spaces” sessions really do rely on having, well, spaces. And since we are each sat in our home offices this proved interesting. Loosely, this is what we decided before the session:

  • We each throw down some ideas of sessions we would like to complete (we listed these in Google Wave).
  • We would pick the sessions we want to do as-and-when.
  • If a session was not proving useful or productive, we would have a “pulse check” every 30 mins – if we felt it is best to stop, we stop.
  • We go until we feel the need to stop (but I demanded a quick 5 mins to grab a cuppa every hour :P)

How It Worked Out

So, having laid out the above, we fired up Skype, SharedView, VS, Git and got to business! Setup was pretty low-cost in this instance since we were familiar with the majority of the tools in play.

I really enjoyed this session. It was great to have a chance to catch up with Jeremy as well as work with Mark. Sadly, I think I got more out of the sessions since Jeremy and Mark were kind enough to do a couple of sessions on bits that they have been working on recently.

All of the code and notes have been posted to my RCP repository on GitHub (these were pretty rough and jotted down during the sessions – I have not had a chance to review yet, and probably won’t).

Quick Review of Sessions

Session 1: ASP.NET MVC 2 Primer

Since myself and Mark have not had a chance to sit down with MVC 2 yet, Jeremy kindly stepped forward and offered a précis of some of the new features in the framework. We covered the form generation utils and “Areas”. I found this a really good insight, and Jeremy did a great job of answering any questions I fired at him!

Session 2: xUnit Extensibility

This was actually my idea and we binned the session after 30 mins (aren’t I just the best!).  This is probably for two main reasons:

1. We had no idea what we wanted to achieve with it.
2. When we had some ideas, most of them had already been implemented, or when we started fleshing them out, it seemed crazy.

So, we actually didn’t get any “new knowledge” out of the session – however, we did learn that xUnit is a pretty sweet framework and there is a wealth of great bits out there for it already (Ben Hall’s blog is definitely one to note!).

That said, we did decide that it has sparked a keener interest in the BDD style of testing (and associated tools) and would like a session on that in the future.

Session 3: FluentValidation

FluentValidation is a library that Jeremy has created for use at work and feeling it might be useful, decided to share. The core concept here is to avoid the use of attributes (polluting your business classes etc) for validation. Instead, objects are passed to a instance of a “validator” (which has “rules”) which centralises the validation process.

The framework also has utilities to aid in unit testing as well as MVC integration. Having seen it in action, I intend to check it out, it looks pretty sweet!

Session 4: PowerShell

In this session (headed by Mark), after a quick run-down of the basics we discussed some of the alternatives to PowerShell - such as POSH Console and Console2 (recommended). We then looked at some addons (like PowerTab) and how to create our own scripts.

Mark then gave a demo of some of the cool git bits he has been adding to his PowerShell prompt.

Summary

I found this a great “first run”. We ended up stopping after about 4 hours, and my head was swimming with ideas.

I think the tools/techs we are using for the sessions (as listed on the previous RCP post) worked fine and IMO didn’t get in the way of the flow of things.

The only improvements I would really want to suggest (and I welcome others from Jeremy and Mark):

  • All attendees have at least 1 or 2 ideas of things they want to learn (i.e. they can’t be the driver).
  • All attendees have at least 1 idea of things they would be happy to demo/drive the session.
  • Ad-hoc sessions should still be welcomed and supported, but a clear definition of what is to be attained must be defined (for example, “I need to solve problem X”, “lets make a simple Y”).

So, a big thank you to Mark and Jeremy for taking the time out to both trial this format as well as drive a couple of sessions. I look forward to have another session sometime soon!

Would you be interested in taking part in something like this? Do you have any questions on hosting sessions of your own?

No comments:

Post a Comment