In case you don’t read any blogs or follow any .NET developers on Twitter, Oxite is a new open-source CMS recently released by Microsoft. It was offered as a “real world example” of a project written with the new ASP.NET MVC framework. Soon after it was released, lots of .NET developers (including myself) started calling out Oxite as an example of a very bad application. Many of the people bashing Oxite align themselves with the so-called “ALT.NET” movement. There quickly developed a backlash against people who were saying bad things about Oxite, and ALT.NET was the primary target.
Over the past few years, I’ve become more interested in politics. Last night, something occurred to me: ALT.NET is the opposition party. We’re just here to keep the “other side” (in this case, Microsoft and traditional .NET developers) honest. Calling them out on things doesn’t mean we think badly of them, it just means we disagree with their approach or their ideas. Just like opposing political parties, we might not agree on the solution, but we all want to work towards solving the problems that we believe exist.
When it comes to personal development, ego is blinding. I’m a strong believer in the idea that the only way to learn is to first accept that you don’t know. Personal feelings or attachment to a product can blind you from its shortcomings, and only by removing ego from the process can you take steps to improve it. That’s why two of the main pillars of agile development are peer review and shared ownership of code — they serve to redirect the personal attachment you feel to your product to a shared-team attachment. Then, if someone challenges you, it makes it easier to remember that we’re all working towards the same goal.
This isn’t to say that we shouldn’t take pride in our work — just that that pride shouldn’t blind us from the possibility that there are problems with the work that we create. I’m extremely proud of a lot of the code that I write, but if someone wants to disagree, by all means I want to hear it. Bear in mind also that I’m not saying that the Oxite developers are egotistical. They’ve actually taken the backlash against their product very well.
My point is that there’s a dramatic difference between a debate and an argument. A debate is devoid of personal attachment on the subject. Personal attacks are themselves egotistical (“I’m better/smarter than you!”) and have no place in a debate. This is the same reason people find it difficult to discuss politics or religion with others… if you take a personal stake in what you’re debating, you let emotions in. Once you’re emotionally evolved, it becomes more difficult to maintain a stance, and things quickly degrade into the equivalent of “you’re wrong and I’m right, because you’re a big doo-doo head”.
To my knowledge, there wasn’t a single person that said anything derogatory about the developers of Oxite, only the software itself. That’s a very important distinction. I hope that everyone recognizes that we’re all working towards the same essential goal — to make ourselves better as software developers, and improve the industry as a whole.
ALT.NET has a public relations problem. We are a loose-knit group, and so we don’t have a single voice. Many of us disagree with each other. We also have a lot of passionate people in our ranks, and sometimes passionate people aren’t tactful in the way they approach a problem. These are all detriments to ALT.NET’s image, but benefits to the group as a whole — everyone is encouraged to speak and be heard.
Just remember, we’re only trying to keep the other side honest.