that is the question.
Today I had a pleasant experience modifying some open source software to meet a particular need. The software was FlexWiki and the changes I made mostly had to do with incorporating Google AdSense over at my Wiki pages.
The changes themselves were trivial. I wanted to start serving ad banners with my wiki pages. The wiki is not templated, so I could not just pop in and modify the HTML. I had to download the source code for Visual C# .NET, find the relevant method, and hard code the Google AdSense in there. Once I recompiled and uploaded the new DLL, everything worked like a charm first time. (I love it when things work like they are supposed to.)
Now what made this whole process easy was that the source code was freely available. If this were a closed source project, I would not have been able to incorporate my ad code so easily. So, in effect, my experience is the "poster child" for the open source movement. If you have an itch, you can scratch it yourself. This isn't about politics, anti-capitalism, freedom, or any other grandiose concept - it's about being able to make changes you need in a matter of minutes.
The downside to having the freedom to change the fundamentals of an application becomes obvious rather quickly. Here I sit with a version of FlexWiki that is no longer compatible with the master version. When the developers release the next version of this software, I will be stuck trying to integrate their changes with my own. Most likely I would lose my changes entirely, and have to reimplement them (if I can remember what they were).
So open source, while good for scratching an immediate itch, allows the user to paint themselves into a "can't upgrade" corner. No bug fixes. No security enhancements. And no new features. On top of that, if FlexWiki starts misbehaving and I can't locate the source of the problem, who do I call? Are the original developers now going to be responsible for helping me find and fix problems that may be of my own doing? Of course not.
So while open source makes sense for people like me, who have the knowledge and expertise to integrate my changes with any new versions that come down the road, it does not make sense for crucial end-user software like Windows or Office.
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.