Alt.NET and the culture of negativity

FROM:http://damianm.com/

An interesting lesson I've learnt over the last year is when you find yourself violently disagreeing with someone, or worse still, going along with an angry mob who violently disagree with someone, instead of ignoring that person, or trying to find fault, pay extra close attention to what they have to say.

It's an interesting experiment. You might still come away violently disagreeing, you'll probably come away still disagreeing with most of what they have to say, but I'll bet you that if you truly try to understand where they are coming from, you'll find yourself challenging your assumptions and just possibly learning something.

Every community needs a bad guy, for most of the Alt.NET folks, that bad guy is Scott Bellware. He's an easy target if you want to stand in the crowd and throw stones. But if you pay attention to the things he has to say, a recurring theme is that people have stopped using the Alt.NET label to learn, to teach and to help, and use it more as a platform of self promotion.

I'm finding this to be depressingly more true every day at the moment.

Alt.NET on one hand has given an umbrella with which to talk about a number of topics that didn't really have a good home not so long ago. These discussions have brought us a number of open source products and some fantastic resources for learning, not to mention brought local, face to face community to a group of developers that really didn't feel at home inside the usual run of the mill Microsoft developer user groups.

On the other side, there is an ever increasing group of vocal people in blogs, lists and Twitter who seem to be using the Alt.NET as a means for gaining notoriety by being openly negative about, well, pretty much everything that falls directly outside of the Alt.NET "stack".

There are examples all over the place, such as blog post attacks on Oxite and other MVC guidance attempts by Microsoft (not saying there wasn't justification for a lot of these comments, but there is a constructive way to act and there being childish), the latest blog storm on whether ASP.NET MVC is "worth learning" or not and daily twitter pursefights and general cliched sniping at anything that isn't deemed acceptable to Alt.NET dogma.

At this point it’s not really about Alt.NET and more about “look at me and how alternative I am”.

Some classic examples can be found in the comments to Rob Conery's recent blog post on what Microsoft should "do" for open source.

By the way, there is a fascinating comment there from James Peckham.

“I work in a financial institution. We have a great deal of heterogenous systems and database platforms. From c#, VB, MSSQL to oracle, vsamm files, and DB2. We have java, websphere, asp.net webservices, wcf, and a host of many different types of technologies all working together.

I've seen consistently that our microsoft technology based teams have more secure code, easier to maintain code, and put together more complexity on higher visibility applications more quickly than other teams.

We do have more outages than anyone else but usually they're caused by one of our java or mainframe dependencies. Rarely is our MSSQL a problem or any windows server have any problems. They're easy to update, patch, maintain and have considerable uptime. Our java apps have memory leaks, have considerable IO problems and security vulnerabilities that are constantly being unearthed.”

I've seen a lot in various companies to back this up too. Some of these companies even have *gasp* Enterprise Architects making decisions about how best to get this stuff to work together too.

This is Microsoft's bread and butter, in this world, open source anything is a hard sell, mainly due to legal paranoia. Microsoft releasing their own ORM, Testing framework, build platform, IoC container etc means that companies feel safe using them, and everyone wins. They would be foolish to ignore this market to pander to the desires of some random operator, who bought Eric Evans's book, applied a smattering of the repository pattern to one project and calls him self a DDD purist while cranking out content management sites for small websites.

Back to the Alt.NET thing though, if people really want to make a change in the developer world, then we must lead the way, teach and inspire. Remember that it's easier to catch flies with honey than vinegar. If your goal is to get some weird "respect" from a small group of insiders, then I'd suggest either re-evaluate that desire, or enjoy it while it lasts, because when the next new thing comes along all the bandwagon jumpers will all be there, probably sneering at Alt.NET.

http://msdn.microsoft.com/en-us/magazine/cc337902.aspx
What is ALT .NET?
Jeremy D. Miller

 

Last year David Laribee coined the term "ALT .NET" to describe a coalescing community of like-minded individuals within the larger world of the Microsoft ® .NET Framework who felt a growing frustration that Microsoft tooling, guidance, and .NET culture at large did not reflect or support an important set of core values. In October 2007, some hundred-odd souls descended upon Austin, Texas, for the first ALT .NET Open Spaces event, turning the blogosphere buzzword into something more tangible and kicking off the formation of a real community.
So what is ALT .NET? And how does it differ from the .NET that we already know and love? What are these values that many of us think are missing? What are these alternative tools, techniques, and practices that ALT .NET'ers are espousing? Let's first examine the original tenets of being an ALT .NET developer.
  1. You're the type of developer who uses whatever works while keeping an eye out for a better way. One of the common topics at the ALT .NET event was closing gaps between requirements, testing, and code. There's still fat in the way we develop software that can be eliminated.
  2. You reach outside the mainstream to adopt the best of any community: Open Source, Agile, Java, Ruby. In no way does Microsoft or the .NET community have a monopoly on good software development. For instance, Agile processes and Design Patterns started with Smalltalk. Likewise, Inversion of Control tools and techniques originated in Java. And two fundamental Ruby on Rails principles—Don't Repeat Yourself and Convention over Configuration—are ones that we can adopt in .NET.
  3. You're not content with the status quo. Things can always be more elegant, more mutable, and of higher quality. We're all experimenting with techniques to more closely connect the coding and testing to the business domain. For example, Behavior Driven Development (BDD) refines and extends Test Driven Development (TDD) by specifying the intended behavior of the code in a more readable way than classic xUnit testing. And language-oriented programming has the potential to raise the abstraction layer up to the level of the domain logic.
  4. You realize that tools are great, but they only take you so far. It's the principles and knowledge that really matter. The best tools are those that embed the knowledge and encourage the principles (for example, ReSharper). Furthermore, you feel that the most important qualities of a solution are maintainability and sustainability. Maintainable code means good design. Good design arises from the skillful application of design knowledge. The .NET community has been placing too much focus on learning API and framework details and not enough emphasis on design and coding fundamentals.
Part of the catalyst for the raising of the ALT .NET banner was a demonstration of a beta of the new Entity Framework in March 2007. I, along with several others, was disappointed at certain elements of the Entity Framework, specifically the lack of "Persistence Ignorance" and the tight coupling to the database. At that time, the Entity Framework did not appear suitable for TDD, Domain Driven Design, or Continuous Design—all things that I consider valuable for maintainable development.
On the other hand, the new Model View Controller (MVC) Framework for ASP.NET development is exciting because it explicitly supports and enables the values I feel are important for successful software development. The MVC Framework clearly reflects the values of maintainability and testability with an emphasis on Separation of Concerns and testability throughout the design of the Framework.
It's easy to be cynical or apathetic about the state of development. However, instead of lamenting that Johnny can't code and complaining that it's hard to find good developers to hire, perhaps we should admit our main problem: we're terrible at growing strong developers.
Many developers would be happy to use Object/Relational Mapping and TDD if they just knew where to start. Likewise, folks already practicing these techniques want to get better by interacting with other practitioners. My chief hope for the ALT .NET movement is that it creates a community that assists both groups, helping them all become strong developers. To that end, the Altnetpedia Web site (altnetpedia.com) has just opened for business with the beginning of a list of resources for learning how to apply these techniques in .NET. The altnetconf message board (tech.groups.yahoo.com/group/altdotnet) is already up and going strong as a place for .NET practitioners to discuss development topics. Stop by!

 

你可能感兴趣的:(.net)