Last Friday saw me on an early flight from New York to Austin, Texas, for the (first?) alt.net conference. This was a ‘not organised by Microsoft’ open space format weekend event for people with background in, or a desire to see more, .NET development done in a ‘way’ that may not necessarily fit the norms as suggested by .NET’s own documentation or Microsoft’s knowledge base as a whole.
This ‘way’ covered technical, people and project practices that would all be very familiar to people who’ve worked on eXtreme Programming (XP) / agile projects although this conference didn’t want to use the tag of XP or any other methodology. More specifically, we were interested in the use of lightweight development environment tools (CruiseControl.NET, NAnt, Subversion), test / behaviour driven development, domain driven design, open source technologies, lightweight frameworks (over heavyweight servers), reflective adaptable teams, etc. Basically, anything we can use to deliver cheaper, more effective, less buggy software faster to the customers of our teams without the constraints of ‘one size fits all’ prescriptive solutions or so called ‘best practices’.
Really, it was all about discussing pragmatic options for software development in the context of .NET projects.
So with all that loftyness out of the way, what really happened? The mixture of the attendees was about half consultant / mover-shaker / open source leader and half people primarily coming to learn while also having their own opinions. Almost everyone present had a blog which led to plenty of egos to go around. There were also several things I took away:
For software languages and methodologies to grow and improve our craft they need a passionate community of talented individuals with a common purpose. Although I think the purpose could be honed somewhat, it’s clear to me that this little part of the .NET world has the other 2 bases covered and as such, even without thinking about Microsoft, is an exciting place to be…
… but representatives of Microsoft were also present, and not just junior engineers with too much time on their hands. Representing were Scott Guthrie (I didn’t know much about him before but he’s an awesome guy who heads up a big chunk of Microsoft’s developer tool division. I was hugely impressed with his intelligence, ability to know in small detail what all his teams are doing, and his humility), Simon Guest (who’s been around the agile world for a few years now), Scott Hanselman (recent MS hire but all round clever chap who ‘gets’ doing the ‘right thing’), Jim
‘NUnit’ ‘xUnit.NET’ Newkirk, Brad Wilson, Howard Dierking (MSDN editor-in-chief) and some others I’ve forgotten.
Considering some of the conversation that went before this conference, I was impressed that these guys even came, yet alone how well they got into the spirit of the conference as much as they did. They actively sought feedback, constructive criticism and were willing to give their own opinions even when it didn’t fit the ‘normally heard’ MS company line.
But the biggest thing to me was Scott Guthrie announcing and demonstrating a new web MVC framework for ASP.NET. MS rarely (if ever) announce ANYTHING publicly outside of a finely tuned MS marketting event and here was Scott showing off something that would normally have been a star of Microsoft’s Professional Developer Conference (PDC) at what could be thought to be a “rebel’s” private meeting. This was a risky move with the opportunity for a big payoff, but it worked for the following reasons:
- As I’ve already said, Scott is an intelligent, nice guy and had the respect of the audience
- This was not pushed in a ‘marketing’ way. It felt like ‘this is something interesting we’ve been trying out in the garage for the last few months and we’d like to get your opinion on it’
- Most importantly it is a FANTASTIC product. It’s a simple, clean, extensible web framework that pleases the most vehement of TDDers while still providing fall-back options for fans of existing ASP.NET . I’ve never heard anyone from MS use the word ‘testability’ when talking about a new framework but Scott did and I think some of the design decisions (e.g. the choice to explicitly hand-off the rendering the view from within the controller) could actually teach some supposed existing ‘TDD-friendly’ web frameworks a lesson or two.
- And finally I don’t often blow my own trumpet, but I’m going to now. 🙂 Nearly 3 years ago I blogged how I’d dumped using the heavyweight ASP.NET web forms library for CruiseControl.NET and instead opted to write my own web framework with testability in mind. The design that I had – a small front-controller routing to page-specific sub-controllers (or ‘actions’ as I called them) which themselves delegated explicitly to view renderers – is not a million miles away from what this new framework does. Don’t get me wrong, the MS library is much richer and better than mine (and I hope that before long someone will rip out my custom framework from CCNet and replace it with the MS version), but it’s nice when in some way someone validates your decision to buck the trend by making something like your innovation the new trend.
I hope this new framework from MS is sign of things to come. The combination of C# 3, the new LINQ libraries and a bunch of libraries all setup for TDD and extension (rather than replacement) where necessary with open source ‘mini libraries’ could make .NET a compelling development platform.
Of course, not everything was great. The biggest problem (to me) was the lack of diversity. Of 100ish people only one attendee was female and the overwhelming demographic was 25 to 40 year old white middle class male (yes, me included.) I know this smacks of our industry as a whole but it’s pretty appalling.
But overall I’m glad I went (despite the fact that instead of a .NET developer these days I manage a team of Java developers.) The obligatory Texas BBQ and Tex-Mex just added to the occasion…