First off, apologies for the delay in writing this one; I can only plead the pressures of work at the end of last year. There are a number of blogs, in the pipe, which I hope you can expect to see soon.
However, I had promised to update people on what happened at that last alt.net conference in the UK, specifically because we declared that it would be the last alt.net conference, feeling that movement had run its course. That outcome was reported on Twitter, but I wanted to go into why, and talk about some ideas for what is next.
Alt.Next took place on 19th\20th November 2010 and we were kindly hosted by Thoughtworks. I gave the keynote on the condition, as I saw it on the state of the Alt.Net movement, something I have talked about here before on Codebetter, but the history, as I saw it, is worth repeating here.
A brief history of how the MS software community learned new ideas
15 years ago, for the old hands amongst us, most our deep understanding came from books or from peers. There were rock star developers who we learned from. Just look at the Wrox publications of this period for the epitome of this rock star author movement with its, somewhat cringe-worthy, photos of geek celebrities embossed on its front covers. I can remember poring over copies of MFC Internals and Revolutionary Guide to MCF4 Programming with Visual C++.
But the problem was that knowledge was ghettoized; most folks read the books they needed, and magazines like MSDN. There seemed to be very little cross pollination of ideas outside individuals moving jobs.
10 years ago, the Internet started to become a source of technical knowledge. Now there were BBS systems before this, but I don’t think they had the same reach. In my recollection, the real explosion here corresponded with the emergence of Java. Java was cool and even places like The Well had Java forums where developers could gather and talk about this new language. It was either something to do with the paradigm shift caused by Java creating a new playing field, in which the old rock stars had to work to avoid looking like yesterday’s heroes, or the cross-fertilization as people from myriad former communities come together within Java; but somehow there seemed to be a greater sharing of knowledge. The masters were revealing their secrets to the journeymen and apprentices. It was a major shift in the availability of knowledge, and even books seemed to change to reflect that.
To my recollection this was the beginning of the first Windows Developer Diaspora. A lot of smart kids wrote leaving MS emails and forum posts and moved to Java. Plus ca change. Eventually MS reacted and moved to stop the diaspora with their own extensions to the JVM, and following that the CLR.
But the result of this explosion of knowledge, and the peering over the fence from some MS developers, looking to see what all this Java noise was about, led to a few of them encountering new ideas. New ideas like ORMs, and IoC containers. And some of them realized that the similarities between Java and C# gave them the ability to port some of these OSS projects into the .NET space to get the leg up on using them themselves.
In addition, as these MS developers looked to the Java community to understand best practices that might help them use their new frameworks, they stumbled across agile software engineering.
But…this cross fertilization did not seem to spread widely in the MS community. A lot of them were so busy fighting a rearguard action around MFC and VB that they already saw .NET as an invader, let alone ideas from other communities. I think they were afraid of the ‘promiscuous’ behavior of.NET developers who flirted with these new ideas; they threatened the rock star developers dominion. And that frustrated those ‘promiscuous’ developers who were excited by the possibilities of these new ideas, who saw a better, faster way of working. But without widespread understanding of these ideas, adoption was always a struggle, and these ‘promiscuous’ developers became angry that no one was spreading the good news of the better way to their colleagues and managers, forcing them to work with impoverished tools and practices.
And I think it was in this context, that in 2008 a number of ‘promiscuous’ MVPs gather at MVP summit. Many are folks you would recognize as current of alumni CodeBetter bloggers. They clustered together through shared beliefs that the .NET community was blind and deaf to other practices, frameworks and patterns, and that MS was happy to let them remain in the dark. Their anger coalesced around the Entity Framework, which was seen as a poor alternative to Nhibernate, or even LINQ to SQL for folks that wanted to work in a new way.
Because they were associated with the EF rebellion they became knows as the NHibernate mafia at first. But David Laribee gave them a new name, and a manifesto from hacker culture with Alt.Net.
Some may feel the Alt.Net movement succeeded, some may feel it failed. However, awareness of agile software engineering ideas like SOLID or TDD is far greater, as our tools like ORMs or IoC containers. When MVC frameworks began their rise with Rails, the .NET community furnished Monorail and later MS produced ASP.NET MVC. Flawed or not, I think that the movement promulgated greater understanding of why these ideas were important. Now more and more people can work environments where these ideas can be pushed and adopted. So I think the Alt.NET movement achieved something, and I don’t think it should be regretted.
But of late the movement seems stalled. The question is what does that mean for the future of Alt.NET.
A lot of the conversation on the day at Alt.Next can be centered around two perceived problems with the Alt.NET movement:
- The New Orthodoxy
Many attendees brought stories of developers for whom Alt.NET was a negative moniker, applied to someone who is pushy and arrogant; with the implication that their ideas were somehow ivory-tower, not for us, and impractical. There was a feel that the ‘missionary’ nature of the Alt.NET community had done more to offend that inform, and had often been too messianic. No one likes to be made to feel stupid, but the Alt.NET community made a lot of people feel that way.
The danger of the new orthodoxy can be summed up as the belief that Alt.NET is really just a set of tools. A TDD framework, an IoC container, an ORM, and an MVC web framework. Hence the question from outside: given decent versions of all those, isn’t the problem over – can’t Alt.NET just go away? Even deeper the problem seems to be that its not just generic versions of these tools but NHibernate over EF, anything over Unity, etc. that are required to prove your credibility to the movement. There even seems to be an orthodoxy that anyone not using R# is poor software developer who cares little for his craft. “By their works ye shall know them,” seems to be the mantra of this witch-hunt.
I think that none of the attendees believed that this was what Alt.NET had originally meant. Indeed David’s proposition had been: “It’s not the tools, it’s the solution…When tools, practices, or methods become mainstream it’s time to get contrarian; time to look for new ways of doing things; time to shake it up”.
And so we decided to abandon the Alt.NET moniker for future open space events.We want to move away from waging a war to spreading ideas. It is about cross-pollination with other communities, platforms. Going out to listen to other conversations and bringing that back into the .NET space. Innovating and taking those ideas out of the .NET space.
We’re not even sure what the “new thing” should be called, or even if naming it matters, and is not a mistake. Perhaps Alt.NET is dead as a movement; others may still find it useful to identify the like minded, but whatever you want to call it, I think its important to embrace the manifesto that David outlined long ago over what it became in between:
“Ralph Waldo Emerson wrote “there are always two parties; the establishment and the movement.” If you’re ALT.NET, you’re in the movement. You’re shaking out the innovation. When the movement fails, stalls, or needs improving you’re there starting/finding/supporting that next leap forward.”
For our purpose though, Alt.NET is dead. I sing its praises, but its time to find the next leap forward.
The New Diaspora
One postscript is that once again we seem to be experiencing a diaspora. Once again ideas outside the community burn very brightly. Ideas that cannot simply be ascribed to tools but to approaches and practices. In this case I believe it is partly the OSS ecosystem that non-MS software communities support so much better. Perhaps our new movement will truly be born from a reaction to this crisis, as much as Alt.NET was to the last.