Please … stop using the word “headless” in software architectures.

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”.

Massimo

 

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: