It may seem foreign but stay with me on this thought. Each software company and development team has some very notable strengths and definite weaknesses, to maximize their business profits they need to drop the products and research in their weak categories and increase investment in their strengths. It is apparent that all the the companies want is market dominance in one or more sectors for heightened profit, but by sharing the pie they stand to increase profit and drive technological innovation further for their own long term benefit.
I do not have any statistics to quote, but that is because I don't really care about them, I only wish to give my recommendation of the directions that vendors should take and how it would be better for them and the consumers.
To start off we should look at examples of companies that have limited development scope and a high volume of open source community support while still remaining profitable.
Google is openly dependent on open source technologies and contributes back to the community but is still highly profitable. Some companies may question how it can be possible, it is simple, their free software and beta statuses. Google's use of free software and the beta tag are a reflection of a product that they do not yet consider suitable or stable enough for business solutions, but by giving these products away in the early phase they can get maximum testing and brand recognition in preparation to sell the finished stable solutions to consumers and businesses alike.
On the same note they are also using community testing, development and input to get their mobile operating system ironed out and sold to the masses. In this case they are giving the community access through proper open source licenses to openly contribute to their evolution and success. This choice of contributions and leveraging outside skills has given them greater brand recognition, high utilization, increased development evolution and a very open port to point consumers to their primary products.
RedHat is an older Linux and open source based company that has contributed massively to the open source community, but they did it in a way that has strengthened their marketed solutions. Most notably is their RedHat Enterprise OS and the community driven Fedora Project. The Fedora project is a very active community driven project that creates a free open source solution that basically creates ideas for products and solutions that are needed, plans them, develops them and pushes the final product to a a large consumer base for testing. The contributions from the Fedora project are then incorporated into the RedHat Enterprise family of operating systems which are then sold for a reasonable profit.
RedHat has also made significant kernel contributions including the KVM virtualization system, which is given away for free but is also sold as a final solution. The benefit they have gained for adding KVM to the kernel is open testing and open source developer contributions, they them profit from selling the final support and implementation in the enterprise sector.
Recently other companies have tried to find ways to utilize the open source community for their benefits without being truly open. The greatest issue with that approach is the failure to go all in, the failure results in loosing one or more of the benefits which may in fact completely eliminate any potential for success.
My general recommendation to many companies is to go open source for development and then sell the polished stable product and related support for profit. But in many cases those same companies can further profit and their customers can also benefit from the stated companies deciding to drop development on components and instead relying on open source solutions.
The only company I will only focus on is Microsoft with my recommendations on their best course, that is due to market dominance and my assessment of their numerous recent flaws, but the same concepts can be slightly modified for other software vendors.
Recommendation for Microsoft
Microsoft is a very profitable closed source company, but their recent push to try to catch open source developers is a reflection that they are leaning towards trying to utilize the open source development model and the related developers. I have a nice set of recommendations that can help you to survive and profit in this changing environment.
- Move to free (open source) community editions and paid corporate editions or software. This will push the open source developer community to embrace, develop and test your software, while still leaving the potential to sell stabilized solutions to enterprise and paid home users.
- Drop the windows kernel and registry, these have been notable failures marked with unnecessary issues. By moving onto standards driver community based solutions you drop your cost while benefiting from currently active communities.
- Build your services to work on top of the Linux Kernel and Xorg server, if you want additional capabilities from the kernel or GUI server contributing to the projects will accept your potential while driving the community to advance the ideas. This would render the additional benefit of being able to sell your solutions to users on Linux and BSD based systems, thus enhancing your potential customer market.
- Build the desktop productivity software to work on Linux and open source components, this will enhance your potential customer base by allowing the paid software to be sold to and used on a plethora of systems.
- Drop the mobile operating system development, the lack of standards use has made it far more difficult to develop on than the competition, it is destined to failure. It would be far more profitable to develop components for other standardized phone OSs that would increase business use and allow better communications with your products. If the products were sold/licensed to smart phone manufacturers it would make a clear differentiation between business and consumer models.
- Once the MS/Windows components have been built to work on top of open components you can still sell a final OS/distro solution to consumers and businesses, ideally the only major differences they will experience will be greater hardware and software support.
- Sell additional business support and setup solutions, thus keeping your pulse on your target customers and supporting their specific needs.
- Give away a free (Beta) open source version of your products to the community for testing and development, just make sure to use a license that restricts business use to purchased versions only.
As you may have noticed moving the core components to open solutions and moving the distribution model to open source/free and paid versions will help to bug test software while still allowing the real users to point the products in the direction that they need. In addition the open sourced code can help to allow the enterprise sectors to hire internal developers to adapt the products for their needs, correct bugs they notice and push the modified code back into the core for cheap updates and corrections.
What would these changes mean to software developers?
Many may fear that greater dependence in open source software may be a negative for the quality of living for software developers, in fact this change can have the opposite effect. Increasing reliance of open source solutions can give each company the capability to modify the source code for the software they use, but to make these changes they will need internal programmers (you). By having the potential for every company to hire professional programmers rather than just the major software firms, it will increase the amount of available positions and allow a developer to stay in the markets that they know best such as having medical software developers work for the medical institutions themselves.
This would also allow new developers to make a name and resume for themselves by making notable contributions to open source products that they are interested in, thus establishing their worth in the market they wish to work in.
What about small software development firms?
The small firms would still standard to profit just as much as the large firms for open sourcing their solutions. They would also have the potential for more consulting work, expanded solutions and the same resume/portfolio building.
In the end for this concept to benefit you, you will have to be willing to embrace it and do the work. Slacking off, stealing code and getting work off of false pretenses would not be possible. For a real developer to profit and accept these changes they must truly be willing to show their worth in real work, not just words, so it is expected than some of the lazier developers and development companies will not like this idea and will right it tooth and nail.
As always these are only my recommendations, if you feel that there are issues with my recommendations or want to add anything else feel free to leave a comment.