Avatar (Fabio Alessandro Locati|Fale)'s blog

Product vs. Technology

October 10, 2022

Every so often, I have a conversation with someone, and we end up in a sub-conversation around the differences between products and technologies. This phenomenon frequently happens to me because I consider a product and a technology two completely different things. At the same time, many people use them interchangeably when discussing IT products and technologies.

I think this distinction’s value is clearly distinguishing the solutions that are resilient to a single entity failure and those that are not. Suppose the producer of a product goes out of business or, for any reason, will not do additional business with you. In that case, you lose the ability to buy that product and, sometimes, even use it completely. This limitation does not apply to a technology since you should be able to access it, regardless of the specific vendor.

The definition I use is that a product is something you can only get from a single vendor, while a technology is something that gets implemented by multiple products by multiple vendors. Since this definition is very cryptic, I usually clarify it with some examples.

The first case we will be looking at is a product sold by many retailers. An example could be the last music album published by a music band. In this case, no matter where you buy it from, that album will be created by the same band (or their label); therefore, it is a product.

The second example is the email. We can buy an email address from multiple vendors, and each will arrive with a slightly different user experience. However, we will still be able to send emails to and receive emails from any (reasonably well-configured) email address. This compatibility is possible because the email protocols are defined in RFCs, and anyone could (potentially) implement their email service; therefore, it is a technology.

With those two examples, probably, everything seems very straightforward. The problem is that the world is more complex than this. Let’s pick the case of Signal, for instance. Signal has a well-defined protocol that, in theory, everyone could implement. Though, you can only use the server managed by the Signal Foundation if you want to be able to message other Signal users using the Signal Foundation server since the protocol does not support server federation. For those reasons, I consider Signal a product, but I see that this is not immediately obvious from the definition.

If you have an opinion on this distinction or suggestions to improve the definition, I would be glad to hear them!