Software Stack Complexity

It seems people are still underestimating the role (embedded) software plays today in delivering high performance and robust products. From the Bluetooth mesh turf I can say the common wisdom is the "stacks" are all equal and the product performance is defined by the Bluetooth specification 

Actually it is quite the opposite. The specification offers a lot of room for innovation. That has always been the principle of Bluetooth SIG - make the spec such that people can go and implement the requirements and the independent products will work together. In particular Bluetooth has been avoiding so called "golden implementations" - products that all other products try to align to. Instead the specifications are tightened and polished to the level that enables many-to-many interoperability of products from different vendors.

But interoperability basically means "it works", while how well it performs (throughput, scalability) and how robust it is (e.g., does it reset randomly) is really in the hands of product vendors.

So from the market perspective there are always two brands at play: the Bluetooth brand indicating the technology used and the vendor brand, indicating what you can really expect from the product. See my Bluetooth Love-Hate post 3 weeks ago. Clearly, not all Bluetooth products are equal. 

The key reason for products not being equal is the embedded software they run. And this can vary a lot. There are a number of open-source implementations and YMMV (your mileage may vary). For example there are love-hate opinions on the most popular open source Bluetooth mesh implementation - the BlueZ (part of Linux). Most people hate it while it works very well for us. But as with many open source projects the devil is in the details - the build options and the configuration.

In the last week's episode of the IoT podcast Stacey mentioned the Semtech acquisition of Sierra Wireless and how that may help bringing up the popularity of LoRaWAN networks. Supposedly the Semtech's LoRa software is difficult to use and - surprisingly or not - this is considered the main friction in adoption of LoRaWAN. Interesting, especially as this is probably the first time I have explicitly heard the software stack is the key component of a wireless network. So the common wisdom is changing and people start seeing the importance of a good stack implementation. It is high time for that discovery, as this really is how this world works. Chips are commodity today. Chip companies do not historically understand software. This software has grown in complexity by orders of magnitude. And it is this software which defines the product.

Comments