May
8
Posted by:
Shaun Walker
5/8/2008
In early April our friend Michael Desmond, from Redmond Developer News, wrote a thought provoking article related to Open Source on the Microsoft platform. The title of the article was "Open Source .NET Projects Getting Cold Shoulder?" and it featured quotes from Jeff Atwood ( formerly of Vertigo - the original authors of the IBuySpy Portal sample application in 2000 ) which highlighted that "open source projects are treated as second-class citizens in the Microsoft ecosystem". Later, in May, Michael Desmond followed up on the original article and published a new editorial focussed on the question of "Should Microsoft be doing more to make open source development a first-class citizen in the .NET space?".
Obviously, I have my own opinions on this topic but since I have been known in the past to let my emotions get the best of me when it comes to subjects for which I am very passionate ( ie. Jeff Atwood's blog pertaining to his $10,000 open source donation ) I have held my tongue thus far. However, as founder of the largest and most successful open source project on the Microsoft platform, I also feel an obligation to the Microsoft developer community to do justice to this topic.
The fact is, Open Source projects on the Microsoft platform are treated as second-class citizens.
Sure, we get some much appreciated support by specific groups within Microsoft who "get" it, but for the most part, the Company does not have a clear mandate on how to deal with the open source movement which is now making significant inroads into their platform. Instead, there is a great deal of confusion, competitive posturing, and downright ignorance demonstrated by Microsoft employees at all levels.
Now, this attitude certainly does not help matters for those brave souls who have a strong desire to take the open source path on the Microsoft platform. It's bad enough that Microsoft Open Source projects are shunned by the mainstream open source movement ( read my blog "No Respect for Windows Open Source" from a few years back ). But to have to contend with adversity from Microsoft itself, really makes matters more complicated than they should be.
However, before you throw in the towel, there is one very important fact to note. Despite the adversity on all fronts, the DotNetNuke open source project has flourished. As we approach 600,000 registered users and 5.0 million downloads all time, the project continues to gain traction and momentum. So there is clearly a high demand for open source on the Microsoft platform. So even with extremely limited support from Microsoft, it is possible to create a highly successful community around open source technology on the Windows platform.
So, let's get back to the topic of this blog; should Microsoft be doing more to make open source development a first-class citizen in the .NET space? Since "doing more" is a highly subjective phrase, lets talk about some tangible concepts which may help shed some light on the dilemma which open source poses to Microsoft.
But first, let's get one thing clear. When you approach this topic, you need to recognize that Microsoft is a public corporation which needs to deliver value to its shareholders. The value is measured in financial terms, which means that Microsoft absolutely must continue to pursue its competitive dominance in the market in order to succeed. Anything which Microsoft does, needs to have a strategic goal aligned with its financial goals. So fundamentally, this is where we need to begin our discussion.
The open source movement is a very mature, widely accepted, and even highly demanded model in the software industry today. This may not have been true 5 years ago when we started the DotNetNuke project, but with the large scale enterprise adoption of open source software in all sectors, it signals that it has truly hit the mainstream. Open source offers several distinct advantages over proprietary software, which are now seen as key value propositions by organizations looking for large scale technology solutions. These include a reduced dependence on software vendors, lower total cost of ownership, and increased ability to customize or adapt the solution to your business requirements.
So, if we look at the benefits of open source, what does Microsoft stand to gain strategically by better supporting open source citizens on its own platform?
Well, since Microsoft truly is a "platform", the more native solutions which are available, the more likely a customer will be to adopt and remain committed to the platform. In most cases, an open source Windows solution is dependent on a variety of proprietary Microsoft infrastucture components, so there is still ample opportunity for the Company to derive licensing revenue. In addition, the existence of a healthy open source ecosystem, provides loyalty, goodwill, education, marketing, and strong support for the individual projects, but also for the Microsoft platform as well.
What I just mentioned above is really quite simple and logical for anyone who understands open source at even a basic level. So the question is, how can Microsoft do more to support open source?
Well, there is one solution which always seems to come up in regards to this question. Many people think Microsoft should simply open its checkbook and give donations or grants to open source projects. I have seen these types of proposals numerous times in the community, and given the widely held belief that Microsoft is a fat cash cow ( not to mention the Gates Foundation's philanthropical efforts world-wide ), it makes logical sense that they could entertain the idea. Heck, even Google has the Summer of Code, where they sponsor students to work full-time on open source projects during the summer break. Honestly, I think Google has an alterior motive here in terms of employee recruitment purposes, but regardless, it is a well managed community program that has generated considerable goodwill.
So why has Microsoft not entertained a similar strategy? Well, the main difference I see is that Google is not a "platform" vendor. Therefore, there are less competitive issues to deal with from the open source projects who participate in their program. When it comes to Microsoft, the Company is constantly monitoring community innovation in order to ensure that its own products maintain their dominance. Providing financial support to an open source project and then later reaping the rewards from its efforts would put Microsoft in a difficult moral ( and potentially legal ) position. I am sure there are ways to mitigate this, but as long as Microsoft continues to push the edge of the network with commercial products in every conceivable market niche, it puts them at odds with every third party developer on their platform.
Ironically, a group of notable ASP.NET open source projects made a proposal last year which involved financial support. The end result? Microsoft hired the founders of the majority of these projects to work on proprietary products in-house at Microsoft. Now, to be fair, Microsoft did allow these developers to continue working on their open source projects in their spare time ( which was a huge win at the expense of Microsoft Legal ), but it certainly did not address the original proposal.
Regardless, of the complications, I still believe the Microsoft could provide some support in this area. It may not have to be at the scale of Google and in fact, it may not even need to be managed by Microsoft itself. Realistically, when it comes to a Google-like financial support program for open source projects, it may be much easier if the program was provided by a third party organization outside of Redmond much like the way Microsoft supports its User Groups through INETA or Culminus.
So let's look at another area..
Port25. What is that, you ask? Well, honestly I don't know as nobody from Port25 has ever reached out to us. They do not seem to work with any other native .NET open source project, as far as I can tell either. Port25 is supposed to represent the "Open Source Community at Microsoft". Is it just me, or does it seem odd that the largest open source project on the Microsoft platform ( DotNetNuke ) has no representation or open communication channel with Port25? Perhaps this is because Microsoft's definition of "Open Source Community" actually means vendors who write software for the Linux platform, which Microsoft would like ported to Windows.
A case in point is an announcement I saw recently on the SpikeSource site ( for those of you who don't know, SpikeSource certifies "stacks" of open source components for production use ). The title of the announcement is "Microsoft Selects SpikeSource to Deliver Open Source Applications on Windows Server 2008". Reviewing the open source applications which are included in the bundle, I notice that all of them are based on PHP. Talk about a slap in the face. I knew that Microsoft was working with Zend to provide a better PHP run-time engine in Windows 2008, but I did not expect open source PHP app vendors to immediately get front-of-the-line service from Microsoft.
Anyways, my point in this area is that Microsoft could do a much better job reaching out and supporting its native open source community. Marketing is a key aspect of open source, and the fact that Microsoft does almost nothing to actively promote open source for its own platform is, quite frankly, a travesty. In addition, Microsoft has partnerships with key industry stakeholders and channels who represent great opportunities for promoting the benefits of open source on the Microsoft platform. Its a shame they choose to reserve these opportunities for non-Windows open source projects.
So lets talk business...
Recently I had the pleasure of speaking with a long-time Microsoft employee who has a very good grasp on the corporate culture as well as a solid understanding of open source. What I learned surprised me.
In an organization as large as Microsoft, there is a sizable sales force. This sales force is influential, well organized, and highly motivated to sell the benefits of the Microsoft platform. Each salesperson basically operates from a scorecard which effectively boils down to wins and losses. A win is when a customer purchases a license to a specific Microsoft product. A loss is when they do not. The thing with wins though, is that depending on the customer, there is generally a primary product which is intended to be the focus of the engagement. For example, if an enterprise customer has expressed interest in content management, SharePoint will be the focus of the sale. A win would involve the customer choosing SharePoint and a loss would involve the customer choosing an alternative non-Windows product like Alfresco.
The logical point that the Microsoft employee expressed to me, is that there is a missing key in this equation. Would it not be more beneficial if a sales person had a fallback strategy where they could push an alternative Windows platform product like DotNetNuke? In this case, they may not get the SharePoint "win", but they would still get a Windows Server and SQL Server "win". This beats the heck out of a complete "loss" where the customer chooses Alfresco/Oracle/Linux ( if you lose the platform, you lose the war ).
Currently, the Microsoft Business division views all .NET open source projects as competitors rather than enablers. This mindset results in a significant loss of potential business and revenue for Microsoft. However, a change in mindset of this magnitude is not trivial, and would have to occur from deep within the Company. I realize that only the more mature open source projects would be candidates for such an opportunity ( ie. the open source project would need to have a professional services and support offering ). But since we are talking of tangible ways that Microsoft could support its native open source offerings, this is certainly a viable suggestion which I am sure few people have considered.
In closing, I want to say that I am not naive to the complications which open source poses to Microsoft. However, Microsoft must also recognize that open source offerings for their platform are here to stay and they can either choose to continue ignoring us, or they can choose to embrace us. Personally, I think the latter of those two options better aligns with Microsoft's long term strategic goals, so the choice should be clear.
9 comment(s) so far...
Re: Is DotNetNuke a second-class citizen?
I absolutely agree. Its always a pain in Opensource discussions with customers, not to have more arguments - above all strong Microsoft support for DNN. I suggest to start some grassroots marketing by ourselves. Lot of DNN-people in every country know Microsofties in the press, sales and marketing departments. Why not to ask and argue why PHP-Opensource projects running on Windows are supported from marketing and why Opensource projects like DNN are not or only poor. If we start such »interrogation« in every country – maybe there starts a discussion in Microsoft-Opensource-Projects even by Microsoft.
By hpeller on
5/9/2008
|
Re: Is DotNetNuke a second-class citizen?
Shaun has hit the Nail on the Head. As someone who benefits greatly from "inside" contacts with the ASP.NET team, these are the people who "get it". Why? Because they realise that we are a huge community of "customers" and "community leaders" - people who build .NET applications using MS tools. Keeping us (and other Open Source groups) happy benefits the growth of these platform products.
But, while this help is useful and appreciated, that is the limit of the help.
By cnurse on
5/9/2008
|
Re: Is DotNetNuke a second-class citizen?
It seems that it would be useful to sell the idea of that missing element in the equation for the sales force at Microsoft. They need to know that there's also the "Tie" option, not just the "Win"/"Loss". In fact, most businesses that use open source still have some Microsoft around somewhere (even if it's just an older version of Office or Word). So, it's more likely to sell the "Tie" options to those embracing open-source.
Here's another idea: Notice how other people/companies make "add-ins" for Microsoft products? Maybe Microsoft would benefit by making "add-ins" for some of the open-source products!
By dagilleland on
5/9/2008
|
Re: Is DotNetNuke a second-class citizen?
A good point indeed. However, when talking open source, nobody seems to look into direction of the technology partners. MS' attention to the network of the Certified Partners is if not tremendous, but at least great. Pitch it to them and they will make MS sales SEE this tie. They, esp. the Gold Certified Partners not only sell the solution, they pitch the products by expressing their expert opinion to their clients.
I've recently worked on BIG Sharepoint implementation on Toronto. Well, I think it'd be better off on DNN :-) Yet, the clients esp. big ones MUST see the potential for the support and guarantees of the compatibility in the years to come. Alas, this is exactly what Shaun is talking about. On the other hand, if the GCPs were to support, that would look credible to the Clients.
Naturally, the best sweet-spot for the open source alternatives is when the MS solutions are too big, e.g. mini-sites (in case of Sharepoint vs. DNN and SQL Server vs. SQL Server Express). In these cases the price matters and what do the CPs do? They build from scratch. If you could pitch DNN to them at least for these situations, the entire opensource movements would win. And thus MS' sales would see this because of the increased DB & OS sales instead of the clear losses.
No software is without the bugs, but I've seen the guts of many: open and not - DNN is by far the best for Windows and among the very best in the world! Keep it up!
PS: on the bright side, I'm working on a DNN implementation deal for a big-time PHP company ;-) LOL
By kkrieg on
5/9/2008
|
Re: Is DotNetNuke a second-class citizen?
Great points on the Certified Partner angle, although I am not clear on how we would effectively engage the Partners so that a strong case could be formulated and presented to Microsoft. Any suggestions you have would be most appreciated.
On the topic of DotNetNuke client deployments, they are most definitely happening everywhere you look in the Microsoft ecosystem. So clearly there is a demand and it proves that at least some management folks are willing to look beyond the lack of official Microsoft sales endorsement. I can't help but think there is a great business potential here if Microsoft just opened their eyes ( and their mind ).
For further justification, just take a look at the top Job sites:
Monster.com
Dice.com
You will notice that there are pages of serious companies looking for DotNetNuke resources.
By sbwalker on
5/9/2008
|
Re: Is DotNetNuke a second-class citizen?
The thing is, the only 3 real reasons for the Partners to do it is: 1. savings (when they can NOT sell Sharepoint / custom or have hard time doing so) 2. maintainability / ease of implementation 3. stability / performance.
Item 1 is easy and was covered many times. Worth noting though: if they could implement locally instead of leaking it overseas, they probably would.
Item 2: well, what is the extent of the testing done on DNN? And I mean standardized QA. Is there a test result repository? MS would never show this data, but unlike DNN, they don't have to prove that they have tested Sharepoint... And if there was any issue, Partners and clients alike need to be sure that any Severe or Critical core issue will be addressed quickly. I the resolution part is now covered, but I don't recall any core QA on DNN.
Item 3: last but not least, Partners know how Sharepoint would behave under load. Not so much with DNN. I remember, a while back, MS assisted you with the performance testing: are the results available (before and after the tuning)? That would be a killer blow to many companies would would go DNN but are unsure as to well it'll do when stressed. There must be a white-paper talking scalability and performance with the case studies and test results. That will be mature. I couldn't find any such results for any other CMS, though I confess - I didn't try hard. You certainly have a lot of performance data just from this site and could share some of it along with the tips on how to deploy in high-volume environment (though it'd be better if you had results from a controlled environment). Let me know if you're interested to try: I have LoadRunner and VS 2005 TTE - I'm a bit short on the bandwidth and beefy hardware though :-)
On the justification side, I love to go entirely into DNN business, but alas, in Canada, the sun is not so bright as you probably know first-hand :-) If you search both monster.CA and < href="http://www.workopolis.com/work.aspx?action=Transfer&View=Content/JobSeeker/JobSearchResultView&SearchId=653650951&OldUrl=">workopolis.com you will find 4 jobs across Canada and 2 of them are the same...
By kkrieg on
5/10/2008
|
Re: Is DotNetNuke a second-class citizen?
Great Blog post -- I hope to is a small way show DotNetNuke as positive alternative when presenting at DevTeach in Toronto next Wednesday ... certain can hold it's own with the "1st-Class" citizens of Microsoft.
By tz3p9v on
5/10/2008
|
Re: Is DotNetNuke a second-class citizen?
It seems that it would be useful to sell the idea of that missing element in the equation for the sales force at Microsoft. They need to know that there's also the "Tie" option, not just the "Win"/"Loss". In fact, most businesses that use open source still have some Microsoft around somewhere (even if it's just an older version of Office or Word). So, it's more likely to sell the "Tie" options to those embracing open-source.
Here's another idea: Notice how other people/companies make "add-ins" for Microsoft products? Maybe Microsoft would benefit by making "add-ins" for some of the open-source products!
By dagilleland on
5/12/2008
|
Re: Is DotNetNuke a second-class citizen?
Shaun, As a Microsoft registered partner, I put the concept forward to our regional Microsoft manager two years ago that a fall-back position was required to fill the gap between a SharePoint sale or loosing the customer. That is in my local area our customers are Government (they have adopted SharePoint) and Small to Medium Business. In the later case many of these small to medium businesses can not justify (at entry level, assuming the right product fit) the cost of SharePoint or the resourcing required for a SharePoint solution, A logical position as you say is DotNetNuke.
I was contracted by Microsoft a while ago to implement a SharePoint solution for Government, when I commenced this project SharePoint was clearly not the suitable product for the business case , DotNetNuke was. I sought the approval from Microsoft to endorse DotNetNuke as a suitable solution for this project which was granted with no hessitation.
Without Microsoft support, my business has many small businesses running internal and external DotNetNuke sites, many more than I could possibly have using SharePoint, some of these clients may or may not move to SharePoint in the future (mainly for Office integration and workflow). DotNetNuke has been an important product to retain clients in the MS space and as a result has extended my offering to my clients.
In addition Microsoft benefits where products like Live Writer can integrate via third party products such as MetaPost into DotNetNuke. Clients are using Microsoft products beit operating systems, sql server , Visual Studio, Expression etc as a result.
When looking for a client solution to a business requirement there are many differences between SharePoint and DotNetNuke, in particular the cost of ownership and perhaps more importantly the cost of implementation and the normally required development effort for both products.
We are all part of the Microsoft eco-system. I believe that Microsoft is directly benefiting from DotNetNuke and as such should consider funding options to continue to develop DotNetNuke as a vital open-source product.
By technica on
5/12/2008
|