Responsibility & Cost

These are some notes about a open source presentation I may make at some point in the future. It’s target is programmers and technical staff and project managers who want to understand Free and Open Source better.

Back in the old days of programming, everything you made was your responsibility. Computers were simple, programs were simple and programmers were self reliant. It was a golden age of programming innovation where programmers could explore their entire field and stake claims in the uncharted areas of the software hinterland and most of the time were able to earn decent money while doing so.

But progress meant complexity. Complexity brought with it a phase change from programs developed by single individuals to programs developed by teams, or entire large corporations. No matter how large you made the company or how much money you could push into a project, software projects just seemingly grew to fit their environment, always growing more in complexity than any company could reasonably keep up with.

And so there developed a solution to the complexity. We pay someone else to create a generic system that allows our team to create more complex software at a higher level. These generic systems always had limitations, but with competition, systems like operating systems, databases, web-servers all came into existence to solve to major problem in software: Just how much complexity can a programmer possibly write before they can’t remember it all or how complex a piece of software gets before a team can no longer coordinate effectively around it.

So we have this desire for every greater complexity, but also a growing need to reduce which bits of the complexity that we are personally responsible for.

It’s not difficult to see how paying a company for a piece of software that solves the problem is a fine way to reduce the personal responsibility. You get a piece of software that does almost everything you need and your work then only consists of learning how to use the software and how to customise it for your specific business.

The way the software was sold was very much like selling bananas off a shelf. You’d get the rights to run a single copy that you paid for and that would be that. Any copying would be as if you stole a bunch of bananas from the grocers. This thinking is required if you want to sell software like this, but it isn’t the only way software can be sold.

This is where Free Software comes in. It’s a way of licensing software that works with the realities of software instead of against them. It doesn’t pretend that code is a banana, it treats the code as if it WILL be copied. And that’s ok. What’s specifically important about Free Software is the freedom that it demands users have. No matter how much money you pay for a piece of software, the user must ALWAYS have control over their own software and must ALWAYS be free.

More to follow…