Not paying for software — how it impacted my perception of my own work

Sergio Isidoro
Tech at Holvi
Published in
4 min readNov 4, 2017

How many people are still using the trial version of Sublime Text? How many people actually paid for winRAR? Oh, how many people use cracked software to bypass licensing. Because… it’s just software right? Why is it so damn expensive?

For a long time I had that mindset. Every time I would be asked to pay for for software I would search for “free” alternatives (in quotes because it probably meant tons of adware and malware), or find a way to get around it. In a nutshell, I never was able to appreciate the value and effort put into developing a complex piece of software. And even when presented with the possibility of donating to projects I genuinely appreciated, I would find excuses — like being a student and not having the money… because 5 EUR is a fortune a student can’t afford.

Fast forward 10 years, and I’m now a software developer myself. You would assume that, being on the other side, I would now appreciate the amount of effort put into developing the simplest of features. Plan, design, execute, ship and maintain a product. Market it, provide customer support, and ensure its security with constant patching, recurrent auditing and quality assurance.

Yes, I do know the immensity of work in each of those steps, and yet the mindset of free software still haunts me: whenever I think about how much a software I built should cost, my first instinct is to say free (or really cheap).

Why? I mean… All this work should have a price tag. It’s only fair right? I’ve dedicated hours of work to something, why do I still feel bad about being rewarded for that?

The all immaterial intangible software

It’s no news, and it’s probably one of the first topics in software engineering classes — software is intangible and estimations of value/effort are really hard to make. Lines of Code? Cyclomatic Complexity? Number of requirements? People/Month?

Add on top of the actual code everything else that makes up a service, and you get an even more complex problem. If engineers, product managers and management itself can’t decently estimate the effort and value of a product, how can the public understand what they are paying for, and what the fair price is?

Sure, for business it’s always about maximising margins through juggling costs and what people are willing to pay for the service. But, what I’m arguing here is that what people are willing to pay for the service is, well, twisted, considering that not even the developers of the software understand the value of their creations.

This has a rippling effect. If developers think developing software is easy, and hence it should be free/cheap, they will likely ask for lower salaries. This, in the meantime, allows companies to offer lower prices on software, which fuels the idea that software is cheap and easy to build. In a free market all companies end up lowering prices in order to be competitive, and well… there you have it.

Software is going to be (or already is) the cornerstone of many economies. All industries need or will need software at some point, and we, as developers, cannot allow software to be seen as another intangible thing that is cheap and easy to develop — because it is not!

I’ve come to two simple resolutions for this problem.

1 — Appreciate good software that others have built, and you’ll appreciate yours better

I have started buying software/licenses without feeling guilty; without thinking how expensive they are (ok, some are really expensive), but rather trying to appreciate how much engineering has been put into that product.

I will also try to either contribute or make small donations to open source software and tools I genuinely appreciate.

Hopefully this will help me appreciate my work better, knowing that it does have value.

2 —Removing the word “just” from my tech vocabulary

Let’s think about building a web service that allows you to add two numbers.

[03/Nov/2017 13:20:05] "POST /api/v1/sum/10/20 HTTP/1.1" 200

Easy right, you just…

You just spawn a server it in a cloud provider, you just buy a domain, you just configure the DNS, you just code a small endpoint in a python web framework (that took you just a couple of months to master completely). You just deploy the server after just three hours of debugging a misconfiguration on your SSL certificate. You just have to keep your server up to date with the latest security patches, and just monitor that your service is running as it should.

Next time someone asks me for a simple feature, I’ll try to think about which of my investments and efforts lead me to be able to execute the task with ease. Why do I find it easy, and how did I get to the point of thinking that. A task that is not necessarily easy in objective terms. Above all, try to avoid replying:

Sure, I’ll just …

What’s easy for you might not be easy for 95–99% of the world’s population. That’s easy to forget when all of our friends are programmers, and when all your news come from HackerNews and SlashDot, immersing you in a tech isolation bubble.

By saying just, we’re constantly undermining the effort and the investment we made in ourselves. The thousands of the hours learning good engineering practices, new programming languages, new skills. Yes, we did it because we enjoyed every minute of it, but that doesn’t mean it has less value.

--

--

Sergio Isidoro
Tech at Holvi

Professional human being in training. Amateur circus and aerial arts. I press keys for a living.