The .NET Community - Yesterday, Today and Tomorrow
A few days ago Dan Hounshell wrote a nice post with some notes about the state of ASP.NET community and some facts about it.
While I completely agree with his notes and most likely have same opinions as him, I just want to complement his post and add a few notes about the .NET community and generally Microsoft community.
Of course, like Dan, I'm not very familiar with other communities to judge about them and I speak based on my general perspectives so forgive me if I stated something wrong about other communities.
First of all I want to note about the special importance of community for Microsoft in comparison with other communities. In my opinion community for Microsoft and its technologies is more important than others because it's some kind of a replacement for open source on Microsoft.
I don't think that the concept of community is as important as what it is for Microsoft and it's because its wants to activate developers somehow and since there are always some borders for open source around Microsoft, open source can be a good way to achieve such goals.
Second about the position of ASP.NET community at Microsoft. Dan has talked about the main community at Microsoft which is ASP.NET community. There is no doubt that this community is the main community and there is a huge space between it and other communities at Microsoft. If something is wrong with ASP.NET community then you can guess how worse it can be for others.
ASP.NET community is important because ASP.NET is more important than many other technologies for developers. Over the years I experienced that many of the developers prefer to implement their applications in ASP.NET as a web-based solution. There are some logical reasons while there are also some reasons that are not acceptable. There are some developers out there who just learned some principles about ASP.NET and only can use it (because it's well-documented and well-discovered). I've seen many developers who were trying to change other's minds to force them implement applications with ASP.NET!
Dan says that ASP.NET community consist of three groups of people: leaders, experts and developers. The number of developers is extremely large in comparison with first two groups. And yes, he's absolutely right (at least in my opinion).
Here there is a point. This grouping is normal and we would expect it in any community and society even in a non-technical society. There are always some leaders who lead others and some active guys who assist them!
But the point is in the number of developers in .NET community, their motivation and the difference of this number with other communities.
Unfortunately Microsoft and all its fellows suffer from this point and that is the lower level of average skills for developers in comparison with other communities (say Java!). While we may have more clever guys on .NET community but we also have less experienced guys that move that average down!
This can be a direct result of the special attention of Microsoft to simplicity and usability in its products. This has let many guys to jump into the development world with some drag and drops! This is amazingly true! I have seen some guys who just knew some principles about C programming and were developing with .NET to make money because there are always small projects and stupid guys to not understand the quality of software!
Don't go wrong! I don't say that this simplicity and usability is bad. I have a friend who has been developing with Microsoft technologies for a long time. He has a slogan. He says that he keeps using Microsoft products until they can help him build a high quality software faster and easier! So all this stuff is good to me!
Existence of such developers on .NET community has made things a little worse and hard to manage. Unfortunately we have %2-3 of community leaders and experts who have made an amazing work for the .NET community over the recent eight years while these guys should feed others and their works.
Jeff Putz has written one of the very nice follow up posts on Dan's post and says that our problem is education. I also agree with him because I don't think there is any opposition for his opinions and Dan's. I don't have any statistics about what I'm going to write but I guess that a reasonable percentage of .NET developers don't have a good background in programming. Many of them should know the syntax of C or Basic and begin working with .NET!
Believe it or not but those %2-3 are making money for many of the other guys! You (I expect that due to my statistics most of my readers are coming from world-leading countries in software) may not know this but I've experienced such facts in my life. I live in a country where many of the developers are getting up every day to open up a browser, search for a source code sample or component and apply it to their projects even without having a good understanding of the code! The best of them read some general e-books to learn new technologies just in a level that lets them use the technology!
So I write a source code sample or article or open source project for free that is putting food on the table for others. Yes, yes, wait a second! This isn't a disaster because this is the nature of software! But the disaster is the fact that there isn't any balance between the number of developers who eat and the number of leaders and experts who feed!
The result of this cycle is having a constant (well, almost constant) number of leaders and growing number of developers! Obviously this won't let the community develop much because innovation needs more effort than adoption. So often our leaders adapt their ideas from other communities like Java with that N in the name!
Dan has pointed this in his post and also points out to another thing that is causing by Microsoft. Microsoft is filling all the open space for its leaders to work and develop. They repeat many existing projects and products on the community by their own name. They build their own unit testing products while there are several community projects with different licenses for it that have a good quality and activity. Microsoft should acquire these projects or at least supports them!
The other bad thing is Microsoft's name. Can you imagine that how many developers will use MsTest because it's built by Microsoft? You (as professional readers and developers of this blog) may know about NUnit or MbUnit but do you expect that all those developers in the third and lower level know about them?!
I think that we're in a cycle where some leaders adapt ideas from other communities, Microsoft repeats them with its own products for same idea, those normal developers hear about an announcement from Microsoft, start using it, original project (that was adapted from others) turns off and ...
The other annoying fact about .NET community (especially ASP.NET) and its competition with Java, PHP or Ruby on Rails is the fact that we haven't been able to find our position on the web (if we exclude Microsoft sites and MySpace). Many of the current sites in the list of top internet sites as well as Web 2.0 and 3.0 sites are powered by other technologies and haven't had any luck to get a good position. I don't think that this is because of the power of ASP.NET and we all know that ASP.NET is able to serve for such scenarios but the biggest problem is that innovation. ASP.NET leaders and developers haven't had any good idea that can find its position on the web. We've been always copying our works from others! Atomattic has promoted PHP in the best form that was possible but who has done that for ASP.NET?!
On the other side, structure of the community is changing smoothly. While almost all .NET leaders and first creators of the community were residing in US, UK, Canada, Israel and Australia but recently we found that this structure is changing quickly and European developers are restructuring this.
The other change in the structure is the names. Many of the first community leaders are not very active anymore. To see this, take a look at the list of ASP Insiders. If you follow those names, you can find that many of them are not very active now. Unfortunately we missed some of them (let's wish peace for Jim Ross and Doug Reilly) and some others don't contribute to the community very much.
These guys are now older than 7-8 years ago and the structure is changing smoothly. Some new younger leaders are going to take their positions and lead this community and I hope that they can be success in this way. Microsoft should revisit its strategy for the community and development products to some extent. Of course, they had done a great work on their development products and satisfied everyone (including myself) but I think that they need to change the strategies to have a balance between the community and their internal works to avoid any conflicts.
All in all, we can change anything and become better. There is no doubt that we're in a better position that 7-8 years ago. I can't exclude myself from the core since I've been contributing actively to the community in the past 3-4 years. My military service is going to end in less than 7 months and I hope that I can be more active than the past. On the other hand, I have some ideas that can help our competition with other communities that I'm trying to finalize as soon as possible.
[advertisement] Axosoft OnTime 2008 is four developer tools in one: bug tracking, project wiki, feature management, and help desk. It manages your development process so developers can focus on coding. Installed or Hosted – Free Single-user license -- Free 30-day team trial.
4 Comments : 03.27.08
Feedbacks
@afscrome:
Yes, as I wrote in my post this whole usability and simplicity isn't a bad thing at all. We all say welcome to this stuff and it's one of the main advantages of .NET technology.
But the bad side of things is left to people who use the .NET technology. They should believe that being able to build a basic application with some drag and drops doesn't mean that they're an experienced developer to consider themselves as a developer. They're still a normal guy and need to learn lots of programming stuff to become a real developer.
I got slightly off topic in the post above which is probably slightly why it lost it's meaning but I promise to keep this one short ;)
I agree with your point about the bad side but I don't think that is a problem with the "No code" approach itself. "No code" leads to a functional app however, it doesn't guide you any further - It takes you a few hundred meters up a mountain, and then leaves you to start up a 500m vertical cliff face on your own. Many 'developers' end up staying here, and that is the real problem, not the existence of "No code".
@afscrome:
But I didn't talk about good or bad of "no code" or something like that, did I?!
#1
afscrome
03.27.2008 @ 12:47 PM
I'd like to add one positive that's often not realized about the "no code" aspect of ASP.NET - the ease with which it allows the younger generation (and by that, I mean those who are still in full time education, and have not yet gone to University)
This time last year, I knew virtually nothing about any form of language. After downloading Visual Web developer express, I was able to get to get a page in which I could drag and drop boxes (webparts)around the page in under 5 minutes, with no experience whatsoever. It may not have been that complicated, or a new idea and dragging the boxes around certainly didn't do anything however you wouldn't believe how proud I felt with myself having done that with no programming experience.
Giving people wonderful experiences using a language for the first time is key for building up the community, as those are the people who will go on to do their best to share that feeling with the community.
Unfortunately for those of us still in full time education, we have huge problems hosting any sites - first of all Windows hosting is more expensive than Linux hosting, then many companies require you to pay extra for .Net and then for those who want to use the SQL data controls, there's a further charge for that. We can't pay for this ourselves as a) we don't' have the money and b) if we do have the money we don't have the credit / debit cards to pay the hosts with. We therefore have to ask parents, and this process probably loses a large sum of potential developers in this age range and my experience (and I see this happening elsewhere) is "why not go for this [linux] package. You won't use the website much and so I won't spend that extra 5 for you, and this will probably lose even more people. It took a lot of persuasion even when I said I'd pay them in cash whatever they had to pay by card
Microsoft provides lots of incentives to those at university to develop on .Net but I think it should put some incentives in for those who are not yet old enough to go to university as those who have seeked out a programming language before they came to do a course on programming at University are much more likely to be those who will become active in the community as human nature is to have a, for lack of better phrasing, "have a special place in the heart" for the first language you come across.