The Two ALT.NET Criterion

Glenn Block has a post up enumerating a set of principles that matter to people participating in the ALT.NET community. In it you’ll find usual suspects (SRP, DRY, SoC, etc.), no suprise there. What I really like about this post is that it’s trending away from tools and toward the more primary things this community should — in my view — be about.

The question should (categorically) not be about ALT.NET, as Glenn says. ALT.NET is merely a context, a flag. If the only thing you’re doing is flag waving, then you’re not considering the deeper meaning of what we’re trying to do here: create a community that accelerates and supports continuous improvement and change.

The list he presents is important from an engineering standpoint, but I think there are a number of other elements that count (check the comments in Glenn’s post). Specifically I would say TDD/BDD and DDD can add a lot of value to projects. I’d go farther still and say that, as a community, there’s a good subset (no, not all) of folks interested in things like Lean, Agile, coaching, and business alignment. I wouldn’t limit the list to just the principles required to create a “good” object system.

My point is that there are and will be a number of interesting fronts in the ALT.NET context and those topics will change overtime, but there are really only two main criteria for determining whether or not you belong in this little movement we’ve got going on:

1. Do you write software or otherwise work in a team using the .NET Framework?

2. Are you interested in learning and improvement?

That’s you? Great! Welcome; you meet the criteria.

This entry was posted in ALT.NET, opinion. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

8 Responses to The Two ALT.NET Criterion

  1. David,
    Aligning yourself with – and being passionate about – a movement or mindset is usually very beneficial, but sometimes there is a point where vehement (venomous?) passion behind one’s beliefs can become alienating. I have been disappointed to see this at various times within the Alt.NET community, so it was certainly refreshing to read this post – a reminder that it’s all about learning and betterment (and .NET). I don’t know many people who would be alienated by that, at least not the learning and betterment part.

  2. Stephen,

    There isn’t as much a need in those communities because they don’t have a Microsoft dictating the terms of software design such that they justify yet more antipattern-reinforcing tooling.

  3. Dave Laribee says:

    @Shaneo –

    I agree, but think that if the values/practices are driving innovation and use of tools then a single context works just fine. Of course, the danger is that the tail starts to wag the dog.

    Maybe this ordering should be made explicit in some kind of statement. Everyone *seems* to agree…

  4. Shaneo says:

    Sorry, just pinging in quickly at work so cant really provide a thorough comment.

    But to quickly get my thought out, I always think Alt.Net would be better served as being Alt.Theory and Alt.Practice. DDD, TDD, BDD, KanBan, SCRUM, Automated Builds, Continuous Integration etc..these are things (great things) that are platform agnostic. You can use them whether you’re writing code in Java or for .Net.

    Even more important is the mantra “always improve yourself, strive for the best….again agnostic.

    And for me this defines what makes an Alt.Net practitioner

    Then are things like NHibernate, Nant, Rhino Mocks….these are tools (great tools), and one could say they are the tools of the trade, but merely using them does not an Alt.Net’er make. Don’t get me wrong, serious Alt.Net’ers and well respected developers in the community will be using these tools for sure. I suppose what I’m saying is (to me) the value is in the reasoning behind using such tools, not the tools themselves.

  5. Dave Laribee says:

    @Bellware – May I recommend that you attend a DevConnections conference? Not saying “we don’t serve your kind” here, but I think that context would be better for learning the full Microsoft Stack.

    Now, if you’d like to learn about BDD come on out. If you want an ALT.NET blog badge or laptop sticker, well, I’m working on those!

    In all seriousness, identification isn’t bad if people are identifying with something that’s driving them toward improvement and the process of identification is intrinsically linked with that selfsame improvement.

    That’s quite a challenge for the mentors, organizers, and watchdogs in the ALT.NET context.

  6. Dave Laribee says:

    @Stephen – Maybe there is a need for various ALT.* communities. Innovation, which certainly happens at a cultural level, happens when there’s a disruption of the status quo. So… maybe…

    The .NET world has, up until this point, been an adjunct to the Microsoft product community world. So a user group will feature presentations on SQL Server, VSTO and SharePoint alongside .NET stuff. There is a drought of content around OO/Agile/OSS tools in this space. So, yes, I do think it’s necessary that this style of development be represented and organized.

  7. Stephen Smith says:

    There is a symmetry with the first two lines of Chapter 1 of Robert C. Martin’s book Clean Code.

    “You are reding this book for two reasons. First, you are a programmer. Second, you want to be a better programmer. Good. We need better programmers.”

    Is there a need for an Alt.Java or Alt.Ruby or Alt.SmallTalk movement? If not, why not and why the need for an Alt.NET movement?

  8. If I’m interested in learning Entity Framework, Sharepoint, Vista, Visual Studio Team Test, and all varieties of programming-free programming, am I representative of what alt.net stands for? I’ve heard from Microsoft that all of these things are improvements, and I want to lean them. Where do I get my blog badge?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>