Why business should avoid proprietary software
The idea of this essay is that if you're in business, then proprietary software is dangerous for you and you should avoid it. Unless, of course, your business is to develop proprietary software. Even if this is your case, you will learn (if you do not already know better) that any proprietary software other than your own is a danger to you too as much as to the rest of people. Except for its own developer, of course.
Proprietary software is the very private kingdom of the Very Privileged One Lord Developer and all the common users damned to eternal passivity.
In the kingdom of free software there is no dichotomy between developers and users. Everyone is a user. Some users with skill also develop, if they want to, when they want to, how they want to.
Proprietary software may be a very good business for the Very Privileged One Lord Developers, but a very bad one for the rest of the world. But here, the fraction of proprietary software developers in the whole of the world business is tiny. So, if they were gone, surely business would be overall much better.
The fact is that there is a lot of business to be made with free software, as you will see further presented. Developing of and support for free software is a gold mine yet to be dug to full extent.
If you never had a business in this area, know that there is already a vast universe of free software solutions for you to pick at will and make money developing them further or selling support for them.
Can you expect to be invited by proprietary software developers to dig with them in their very private gold mine? What makes today developing proprietary software a good business for its developers is that companies and individuals buy from them solutions, lured by usefulness and convenience, often lured also by free-of-charge lesser solutions: "Get it for free! (and give up your freedom...)", unconscious of the risks they're exposing themselves by doing so. Often without having any other choice, since they became dependent. And proprietary software developers strive to assure and enhance this dependence by using closed formats and assuring lack of compatibility with other software, often even between different versions of their own software. And they strive as well to keep this conscience of the users as low as possible. They terrorise the users with the lack of support for free software, with the need for the users to learn from scratch what took them years to learn, with the hail of sues the users will get on their heads from patent holders, if they dare change to free software, etc, etc.
But as with time the conscience of users on this matter will grow, it is expected that these Very Privileged One Lord Developers shall see the interest in their poisoned cakes diminish and free software developers shall see money flowing more and more.
The security issue
When an executable is run in your machine, the machine will operate according to the instructions in it. The meaning of these instructions is clear to a machine but not to a human. The best you can hope is that the operations it is performing are the ones you were expecting, that the machine is your servant and you are its sole master. Especially if you are running a business where competition is not a vague word.
What if you have reasons to suspect something could be wrong? How can you check what instructions is the machine following? If you are using proprietary software, what you've got as a rule is an executable and a written licence which allows you to run that executable on the developer's terms, not on yours, and, morevover, explicitly says that you cannot by any means try to discover the set of instructions the machine is supposed to follow when running the executable. If you comply with the law and you didn't try to discover what the executables hide, you are now running in your machine programs that may well be stabbing knives on your back.
You may be being spied on. All the time. Right now.
You may not notice anything happening, because nothing is supposed to happen daily, but in a critical moment you may have the unpleasant surprise of seeing your machine shutting down or turning against you.
And if your business is to maintain your country's line of defence and you have incorporated in that line proprietary software whose developers are under the jurisdiction or somehow cooperate with a foe, you may have a trojan horse inside your keep spying all the time and waiting for the critical moment to shut something down. And this means not only full operating systems but any software, drivers and firmware, even built-in instructions in non-programmable machines.
The only way you can be sure what your machine is doing is by having access to the human-readable source code, checking it and being allowed to build yourself the executable from that source code you checked.
In many instances of proprietary software it is unknown what exactly it does, besides what it seems to be doing. It may be doing nothing malicious, but who knows?
On the other hand, in some cases you can be very sure:
- If your company is using any modern device produced by Apple, then you can be sure you are being spied on. And they do it legally.
- Or if your company is using any modern operating system developed by Microsoft, then you can be sure you are being spied on. And they do it legally.
And about the motives - besides government control - independently of who is the developer of the proprietary software you are using, when running a business, you should ask yourself which connections there are between that software developer, apparently having nothing to do with your branch of activity, and your competitors. You may be surprised in some cases. Do not convince yourself that the law protects your privacy and that incorporating malicious features in the programs you run would be too risky for most proprietary software developers. Do not convince yourself that malicious features on software are marginal.
The law in fact protects and encourages not your privacy but the inclusion of such features in software. If you have lawyers working for you, have them check this. Then you'll convince yourself.
The dependence issue
Long ago Mr. Nokia used to produce galoshes, later he produced many other things and one day he thought it would be fun to make mobile telephones. Who knows, one day in the future he'll be producing little windmills for children to blow, and he'll be successful in that business.
I guess he'll have to evolve somehow from mobile telephony to little windmills. But let's say that instead of an evolution, one morning Mr. Nokia wakes up and finds that his main tool for producing mobile telephones has been cracked by the night frost.
His supplier tells him that the last smith capable of making such a unique tool has retired. Moreover, the smith has the patent for that tool and he's not willing to issue a licence since he converted to misanthropy.
Mr. Nokia can now place his workers making handmade mobile telephones and in a year lose to competition and waste all his capital or he can just shut his manufacture and retire to some coconut island. Any of the ways, there will be no Nokia little windmills in the future for children to blow.
If your company heavily relies on some particular software solutions, be aware that that software may break some day. But more than that, be aware that as your business evolves, those solutions must evolve with it. More, it may be rather the evolution of that software what pushes the evolution of your business.
Whether what you may be needing is a small customisation of some program or a whole package of software designed from scratch, who is going to make it? You need it so much. You have the money. But who has the power? Having money, is it enough? It should be. But the fact is that with proprietary software it isn't so.
If you rely on proprietary software, the power to make whatsoever changes lies exclusively on its developer. He may be willing to do it, if you pay well. But since he is the only one that can make those changes, you may have to pay too much well. If you were using free software you could pay the best offer.
Let's say you are a very wealthy person, so money is no object. But what if the developer says no, whatever money you offer him. What if the developer holds shares of a company competing with yours. What will you do then? Will you beg him: Please, save my business. I beg you.
Still he says no to your begging. Or, let's say, his company bankrupts, or he dies in an accident, or he had a kitchen fire and the source code he kept in the napkins' drawer is lost for good.
Now you may have lost access to important data imprisoned inside closed formats. Now your workers will continue to perform a particular task in two days instead of one, lacking functions in software which cannot accompany the evolution your company is ready for.
Because if Mr. Nokia kept on producing galoshes, he could be very successful today also. Once he decided to change his business to mobile telephony, I doubt he could now in one day return to galoshes with similar success.
So, once you decided to go into a business and once you became dependent on some particular tool, if that tool can't evolve together with your business, you can say goodbye to your success. In the best case, you could still, far behind your competitors, linger in that business restrained whithin the irons of your old proprietary software tool that you cannot push just that little byte further.
What you should do
Only free software guarantees that your business secrets are kept secret. With free software you know exactly what your machine is doing and nobody has the power to give orders to your machine except you. With proprietary software you rely on the good intentions of someone else, but you can never be sure of what's lurking behind their friendly smile.
Only free software guarantees that you can modify the solutions you depend on in order to permit the evolution of your business. With proprietary software you rely on the good will of someone else. And they may show the best of wills in the beginning, but once you're stuck with their solutions, they will start dictating their terms.
With free software you can engage programmers to make the changes you need, or you can hire any outside company whom you trust. You can expect to pay the best offer and have competent people making the job, on your terms. The fact that once a company developed a very useful proprietary software, doesn't mean that today they are so competent as they were, neither it means that they are the adequate people to make the particular changes you are interested in.
If you need today some new software solutions, go for free software ones and avoid proprietary counterparts, no matter how attractive the offer may look. For instance: you can get the proprietary software for free (no money), but to get the free (as in freedom) counterpart you'll have to pay. In such case: pay. Pay to be the sole master to yourself.
If the available free software solution isn't up to your expectations, consider investing in its development. You can always keep modified versions of free software to yourself, if the features you develop constitute an asset to your company which you do not wish to share with your competitors. Remember, the same proprietary solutions available to you may also be made available to your competitors.
If you depend already heavily on some proprietary solution, try to find a free counterpart. If it does not exist and you can't develop it, you should consider abandoning progressively the activities depending on that software and invest on other activities over which you can have full control.
If you depend already on some proprietary solution and you can't find nor build a free alternative, nor you can abandon the activities depending on it, the only you can do is hoping. If you fail in business because of the software tools you use, at least you have the consolation of becoming an example and your case a lesson of why business should avoid proprietary software.
Perform a serious accountability of how much of your activity is dependent on other parties' good will. Ask yourself how much hidden power software developers have over you.
If you are a proprietary software developer, by no means you are less prone to risk as any other business. If in your work you rely on proprietary software other than your own, you expose yourself to the same risks as those to which you are exposing your clients. Having a sip of your own poison, I'd say.
Don't forget about documentation!
Now you use only free software. You feel like the owner of it. Because you are so! Released free software is common property to all mankind, regardless of who's the copyright holder.
You can hire people to customise it whenever you need. You're happy. But what about documentation? Has it been released under a free licence too?
If not, you can expect trouble wanting to make copies of it for your employees to study. And when you hire someone to make the modifications in the program, you'll hear him say he cannot issue the corresponding modifications in the documentation, so your employees will just have to guess what to do with the modified program.
As with every other tool whose looks are not self-explanatory about its functioning, complex software demands the corresponding documentation. Even developers themselves rely on the documentation they've written to keep track of the features they've created. Keep in mind that documentation needed for a developing activity is usually richer than the minimal information a user may need to operate the machine. You may have been acquainted with this minimal information when you still used proprietary software, but that is not the whole documentation. The real documentation, the one needed for development, was kept locked out of your sight by the developer of that proprietary solution.
Software per se and documentation go side by side and need each other as much as the hand you need to wash the other. If you overlook this aspect, all your previous efforts can be rendered useless. Free software accompanied by non-free documentation lives under the constant threat of having its further development dependent on the capricious power of the copyright holder to the documentation.
The support you surely need
One of the most common mistakes companies make when choosing software is that they think they must go for proprietary because they need to have support. Even when the free counterpart seemed better in every other aspect, they think they have to go unfortunately for the proprietary, because support is an added-value they cannot go without. What are they going to do with an unbelievably good tool, if they have no idea how to use it and no one is going to instruct them?
This is especially true for public and governmental institutions who haven't the slightest idea how computers work, yet they must have their officials pushing the right buttons and things fixed immediately when broken.
Well, this thinking is wrong. It is certainly expected that the software's developer should be the better person to teach you how it works. He knows how the wheels wind inside it, he imagined it himself. But if this is so, free software also has developers, it doesn't just pop from the ground, and they also know better how their programs work.
In both cases, if you're not satisfied with their teaching, you can pay someone else who knows well the program and have him teach you.
With proprietary software however that someone else can never take a look inside the case and see how the wheels are supposed to wind. All he can do is to use the program a lot and get well acquainted with it. Nevertheless, his knowledge will always be from a user's point of view.
With free software anyone not involved in its development can study the source code, can change it and see how it behaves in the most various situations. Thus, if you're not satisfied with the way the developer is teaching, you can pay someone else who still knows the program from a developer's point of view, which is much deeper. With proprietary software there is no such someone else.
Overall, it should be easier to find a good teacher for free software than for proprietary.
This is what you can get when you are looking for someone to teach you or to perform simple repairs.
If you are looking rather for someone to help you with customisation or even further development after the initial installation, then chosing proprietary software means you'll have to stick with that developer, even if he becomes incompetent and lazy. No one else can make any changes but him. And remember: whatever customisations he performs in the software, they will be his, not yours, though most the times they are customisations useful for you only and for nobody else. He will have you in the palm of his hand. And he will spy on you, of course. And with time you'll become dependent of him.
How you should release software
If your business is to develop proprietary software, then you are supposed to release it as proprietary. Untill you start releasing it as free, I wish you no luck in business. Ensnaring people by luring them with usefulness and convenience may be legal (for the moment) but by no means laudable.
When your primary business is other than software, still you may have your own programmers making the software you need for your primary activity, or you may hire an outside company to do the job for you. In any case you are the rightful copyright holder of that software.
In most cases you have no reason to release that software. It was especially customised for you. It is of no use to anyone else.
But let's say it comes to your hands a very good piece of software that may be useful to someone else besides you. Since your primary business isn't developing proprietary software, don't make the mistake of releasing it as proprietary in the hope of having the exclusivity for selling a few copies for a few coins or simply growing total power over its users. If you release it as proprietary, no one else will be allowed to study it and change it. From your part, you won't develop it wider than your own needs, since software is not your primary activity. It will be a dead piece of software from the beginning.
If you released it once as proprietary, you may at any time release it as free, that's true. But sometimes it may be too late. If your program was indeed good, then a free counterpart may have already broken somewhere else. No one will take a second look to your version when you free it. Release it as free from the beginning.
Once you release it as free and copylefted whatever modifications anyone ever does to it and releases will be available to you as well.
Be humble and do not think that the best brains work at your company and the rest of the world is dunce. If you really wish to thrive, take advantage of what many very intelligent people not working for you have done. Thus, do not release your software ever under a non-copyleft licence, such as BSD.
Seed your software free and it may return to you multiplied by thousands of thousands.