Delivering a product that works consistently over its lifetime (and beyond that) is a challenging task that’s at the core of any organization on the market. There are multiple factors that come in play here, and you need to be very familiar with not only your specific organization’s activities, but the market as a whole. Knowing how your actual environment works is a critical factor in designing and producing something that works over a long term.
Making your products robust is a great way to make them more reliable, but unfortunately the two terms are often confused by leaders and we sometimes see them used interchangeably. The reality is that robustness can be seen as a subset of reliability, or an auxiliary tool that adds to it, depending on one’s point of view. The important thing is to know how to create a robust design and how to turn this into a repeatable long-term process.
Working with Out-Of-Range Input
One of the best ways to ensure that your product is robust is to prevent it from failing when it receives input out of its expected normal ranges. This can sometimes be tricky with certain types of products – like physical ones that deal with tolerance limits – but in other industries, it can be applied very easily to pretty much your entire product range. Software is a good example of this, and lack of robustness is actually one of the primary reasons for faulty products in that industry. Companies that pay a lot of attention to this factor of their development can usually see some great results.
Of course, sometimes it can be impossible to ensure that your product continues to work as expected when it receives faulty input like that. In this case, the best you can do is to prevent the user from providing that kind of input in the first place, which depends on things like your current interface implementation and the nature of your users themselves. In most cases it should be possible to at least ensure that the user stays in their “safe zone.”
Keep an Eye on Interactions Between Processes
Another important point about robust design is to ensure that different processes within the product’s operation don’t interfere with each other. This can sometimes be the result of faulty user input (not necessarily out of range input though – it could simply be a situation where two or more different inputs combined produce an incorrect result under specific circumstances).
A good level of isolation between the different components of the system is a great way to achieve this. It’s actually a common approach in the design of some major, popular systems like computer operating systems. In the popular modern ones, a single faulty component crashing doesn’t result in the entire system coming down, which is important considering that the former case doesn’t actually happen that rarely, even today.
You can use the same approach in the design of physical systems to some extent too, although your reach will obviously be more limited in that case. As long as you can prevent catastrophic failure resulting from a fault in one single component, this is a great step towards robust design and sustainable long-term production.
And yes, this does mean that you may sometimes have to be a bit more defensive in the design of each process in order to ensure a minimal level of negative interactions between it and other system components. That’s not necessarily a bad thing overall, as it can also lead to the design of a strong overall system, including from the perspective of outside intruders (where applicable).
Robustness is an important factor in the design of a product that should endure the test of time. If you want to ensure that your products are seen as adequate long-term solutions, you need to integrate robustness as tightly as possible in the design of all your systems.