|
Last weekend I attended the Alt.NET conference. It was the first
named gathering of a group of people I've been watching on the
blogosphere for quite a long time. A group of long-time users of
Microsoft technologies who feel that their development philosophy
has been getting out of sync with the perceived orthodoxy from
Redmond. While some have considered moving away this group is keen to stay and try to influence the Microsoft
world. The term alt.net was coined by David Laribee in his blog. The
conference was organized using OpenSpace, a style that I
thought was particularly apropos to the nature of this community. I'm
not claiming to speak for this community, or define it; these words are my
interpretations from what I saw and heard.
Alternative
One question that came up was the name alternative. This
made a few people uncomfortable as it suggested to them that this was
a group in opposition to Microsoft. A
different view of "alternative" is that it's something that embraces
choice. Many communities believe that having many alternatives makes
them stronger (the Unix community leaps to mind). In software
development it's rare that one solution is the right one for all
possible circumstances. Having alternatives does mean you have to
think about which solution is the right one for your situation, but
I prefer that to trying to use a hammer to turn a nut. And yes, this
does mean that personal experience and preference leads to different
choices. We may be programmers but we are still human, not embodied algorithms. The alt.net
mind-set is one that is very familiar to me. It has that mix of agile
+ object-orientation + patterns + TDD + DDD which is very much the
school of software development that I favor. (Lacking a proper name
for it, I'm inclined to call it the OOPSLA school of software
development.) There is certainly a belief that there is a mainstream Microsoft
orthodoxy at the moment, one that doesn't fit the OOSPLA school. And
there's some frustration with that. But the point here is that it's
not that the alt.net community thinks that the perceived mainstream
Microsoft route should be erased, but that the Microsoft world is big
enough for different approaches. As well as discussion about whether "alternative" is a good
name, there's also discussion about whether you need a name at all. As
a compulsive maker of Neologisms you shouldn't be surprised
to find out that I think a name is useful. There's clearly a common
style of software development that's formed here and giving it a name
makes it easier to talk about. Inevitability some people will be
annoyed by coining terms, but I think the usefulness outweighs that
objection.
Participative Community
An important feature of alt.net is that it's a participative
community. Traditionally when user conferences get together, the
vendor is in charge of the agenda. Most sessions are about the
vendor showing the community how to use the tools it provides. Good
vendors listen to their customer community, reacting by developing
new products that respond to their community's wishes. A participative community is different, they don't just want the
vendor to listen and provide suitable products - they want to participate in
the development of new products. It's just such a participative
community that's taken the initiative in the Java world. JUnit, IBatis,
Spring, Hibernate et al didn't come out of the vendors, but were
developed by "customers". One of the things about the nature of the
software industry is that many customers are every bit as capable of
producing vital products as vendor companies, especially when
combined with the community and ethos of open source. The great question ahead for Microsoft is how to engage with a
participative and opinionated community like this. Treating such a
group as an opponent will result in the loss of valuable products,
and more importantly the capable people connected with them. Engaging
with a community like this brings great opportunity. I would argue
that the participate community around enterprise Java has saved the
enterprise Java platform. A big challenge for Microsoft in all this
is that this means finding a way to accommodate with open source
development. Recent signs, particularly around Iron Ruby, suggest
that at least some bits of Microsoft are heading in the right direction. More signs of the right direction was Scott Guthrie's
demonstration of the ASP.NET MVC framework (also see Scott Hanselmans's video). This was very interesting to me,
not so much because of the product itself, which didn't seem to have
anything particularly innovative (and that's not a complaint), but
the philosophical signs around it. First off there's the fact that Scott Guthrie made the commitment
to come to a small, conference like this to reveal this product. Next
was the clear design goal around testability. Add a rich sauce of
clear understanding and learning from other work in this space. Add a
garnish of plugability that allows the framework to work with
non-Microsoft tools and encourages extension. Many people present said
they hadn't been so excited by a product announcement since .NET. It's also a fine example of "alternative". The MVC framework isn't intended
to replace webforms, programmers can choose whether to use webforms
or MVC. One other issue in a community like this is that it's a
community that doesn't equate criticism with animosity. Many
vendors suffer from the belief that anyone who criticizes them is
their enemy. In truth often your friends are at their most
valuable when they are critical. Like any large corporation,
Microsoft can exhibit contradictory reactions. There are certainly
parts of the organization that do think that friends should never
criticize. Part of working with a participative community is to
learn to value friendly criticism. Equally people in the community
need to learn how to criticize without being nasty - a
particularly rare quality in our profession.
Exclusive Community
There's been some debate (particularly in the blogosphere)
about whether the alt.net community is an exclusive community
(in a bad way). I find a useful way to think about it is a
question that did come up a couple of times during the
conference. Should people form separate alt.net user groups or
should they try to influence and change the current user groups?
My answer to this is "both". A focused alt.net user group sets
an expectation about the material being discussed and the kind
of values and principles that ground the group. People who are
doing this style of development need to talk to others doing
it so they can learn from them. I've been engaged in this style
for over a decade but I still have tons to learn about it. The
advantage of a focused gathering is that I get to concentrate on
this type of content. A specialized alt.net user group is only exclusive if it
tries to exclude others. The alt.net conference was not
exclusive because, at least until the conference filled up, anyone
could turn up. As long as an alt.net user group is open to
accepting anyone, it's a good thing. At the same time it's important for alt.net people to engage
the wider .NET community. I encourage this style of developing
software because I genuinely think it's effective. Therefore I
think it's important for me to try and communicate how and why
to do it to as big an audience as I can. This way other people
can be exposed to the ideas and get the opportunity to
understand the techniques so they can choose whether they want
to try them. I expect to see many alt.neters looking to talk
about these techniques and their experiences with them at a wide
range of Microsoft-oriented conferences.
I have high hopes for the alt.net community. I believe this kind
of community is important to the viable future of the Microsoft
ecosystem, and I want a healthy Microsoft world. My hope is that
Microsoft participates in this community, so that many leading
Microsofties can happily state they are alt.neters. I hope that
alt.neters can strike the tricky balance between sustaining themselves
and being open to people coming into the community. I hope I can play
a role in making this happen. There was an excellent spirit at this
first conference, one that provides lots of good fuel for the
future.
|