Spreading The Good Word…

October 14, 2007

I find discussions like this one between Ayende and Casey typical of my experience in the .NET community. This archetype (I refuse to use the “M” word) is held up as the standard to which we must aim since it represents a typical, MS developer but then any discussion degrades into a “that’s too complex for this guy” argument. This is oxymoronic – these developers are NOT stupid. They’re intelligent, they get the job done, and they are able to handle things like complex business processes, recursion, debugging, etc. These developmental practices are not harder than whatever they currently are doing, they’re just different. These developers usually fall into one of two camps – they’re either unaware of the concepts or apathetic. We need to speak to the former and just hope that the latter comes around eventually.

I gave a presentation earlier this year to our local .NET user group on unit testing, mocking and dependency injection. In talking with folks afterwards about the topics, I found a very disturbing trend. Most of them knew about unit testing. At a minimum they’d heard about it but quite a few were trying to use it and several mentioned that they’d even explored NUnit and/or MbUnit. You know why there was awareness?? MSTest. Because Microsoft had created their own unit testing framework and tools and threw their marketing muscle behind it, awareness of unit testing concepts spiked. But that’s where things went south. With mocking, there was a lot of misconception around mocking and dependency injection was a totally new concept to a large majority. I find these to be fundamental to testing in the real world since rarely do we work on systems that don’t have numerous dependencies. Since we have dependencies and we have to account for them for successful testing, they are either not testing or doing integration tests instead and just calling them the wrong thing. I honestly believe that this misunderstanding, this misuse is simply due to a lack of knowledge and visibility.

I believe MSDN Events are part of the solution. While at Alt.Net, I was talking with Chris Koenig about the marketing nature of these events. He was quick to point something that eluded me previously – these are 100 & 200 level events. They’re aimed at the lowest common denominator and an entry point for developers. These are the perfect vehicles for us to introduce these practices to folks. Now, I understand Microsoft is not a non-profit organization and they shouldn’t do something unless it makes business sense so I’m asking that we come up with a good BUSINESS reason to make these more of an outreach. Like the old E.F. Hutton commercials; “When Microsoft talks, people listen.” and we need to help them tailor that message so that we can expose these people to these concepts as early as possible.

Another part of the solution is our user groups. Microsoft spends a LOT of money every year to facilitate and fund these meetings so we need to leverage these to promote good development practices. Volunteer to give a presentation or a lightning talk or just start asking questions and get a dialog going. If you’re nervous, try teaming up for a presentation. Rather than arguing who is or isn’t capable of learning something, let’s start trying to figure out how to get the material out there and nurture those who do come along.


Alt.Net Wrap Up…

October 9, 2007

So I’m back from what was described by a fellow attendee as “programmer heaven” and I’ve have to say I’d agree with him. Given the hosts and the attendees, it represented a chance to hang out with a number of folks that I previously only knew thru their blogs, a chance to meet new people with similar ideas and values as well as a great reason to spend a weekend in Austin. Little did I realize it would be all those things and so much more. At times it was a bit surreal; talking Silverlight and the DLR with Scott Hanselman, Scrum and process in the enterprise with Raymond Lewallen, or continuous integration and “build systems” with Jay Flowers I can say I had no problem stepping into a conversation with any of the attendees and found everyone receptive to a conversation. It was a great pleasure meeting so many people and I hope that the friendships that were formed this weekend continue to grow with time.

There has been a lot talk about the nature of the Alt.Net movement and I feel the need to weigh in on my position here. The “alternative” part of the name, to me, represents the alternatives to the main stream options presented by the vendors, i.e. open source. But it goes beyond that. It really isn’t so much about the tools themselves as the ideas and concepts behind those tools. Dependency injection, inversion of control, object relational mapping and acceptance testing have all led to excellent open source tools. The awareness of these concepts, let alone the tools, is something that is truly lacking in the .Net community as a whole. This conference was an open call to knowledgeable parties asking how we get this message out in a way that is accessible and visible to those who can benefit most from it. Yeah, there was some echo chamber in the discussion but overall what came out of the talks was valuable ideas. Ideas that I hope we as a community embrace and make a reality. I for one will be re-focusing my presentation topics in a direction that I believe will help share these ideas and bring the awareness up as a whole.

P.S. Jaime – if you happen to read this and come back thru Dallas, I owe you a dinner so give me a ring. 🙂

Getting more ALT…

April 10, 2007

I’ve often struggled with a label for someone like myself who straddles the worlds between Microsoft and agile but apparently that’s been taken care of now. There are several out there currently who understand this, many of whom I look up to and respect but, by in large, it’s not the norm – yet. Granted, I understand that not everyone is an overachieving nut-job like myself but when there’s a better way, why not use it?? Especially, when the open source tools are so much more mature.

To mangle a Jeff Foxworthy joke – “If you can name the open source tool that Microsoft based theirs on, you might be ALT.NET.”