The information technology (IT) industry is sometimes very interesting and actually very funny too: we introduce or use names, titles, or attributes using sophisticated jargon, mainly originating from Greek or Latin. Words like “ingestion”, “pristine”, or titles from House of Cards like chief of stuff (staff) or deputy of the … are very popular these days. But there is one that has drawn my attention lately, namely the word “headless”. In many webinars, software meetings, demonstrations, etc. the word “headless” is becoming mainstream. As a matter of fact, you hear statements like “we are making our software headless” or “our new function is headless” or finally “our architecture is headless”. So, what does that mean? What is that people are trying to say? And what is wrong with it?
First of all, in the software world, what people mean is that they intend to re-architect and/or run a piece of functionality “as a service“. Essentially, this functionality can run also without a user interface (UI), and it runs or is invoked without UI, but invoked mainly via interfaces like APIs, which is very good practice.
The odd part is that, apparently, people think that the UIs are equal to the “head” like in humans because it is what you can see of the software. Maybe it is true, except we are forgetting an interesting detail here: human’s head hosts also the brain which is the central vital organ for the (smart) decisions. A person without a head is like what you see in movies, namely a zombie (brainless).
In the software world, the business logic of a certain functionality can be seen actually as the brain, the intellectual property (IP) of the software. So if you make your software “headless”, does it mean you are throwing away your IP too? No, you don’t, but you are suggesting that you are building a “brainless” software, zombie apps. And that can confuse a lot of people or for people who may like to think in comparison it can even become odd.
What is the alternative then? What can we use? My recommendation is actually simple and I would call out your new “headless” capabilities to a service: “our sofware can run as a service”.