Over my many years of design and development, I find that the best Things to connect to user's daily life are very modular and highly interoperable.
A modular product means that it has a clear position in users’ daily life. It integrates well with other products and services. It is easier to understand, more straightforward to develop and easier on everyone budget. I often advise our clients to keep their product simple and focus on its main function.
Functionality. A product should do one thing and do it well. For an example, a fridge should focus on keeping your food fresh for as long as possible. It should not try to blend smoothie and keep track of your diet while failing to store your food.
Simplicity. A product should be as simple as possible but not any more. For an instance, a switch needs at least 2 states. If it has only one state, it’s no longer a switch, it’s a button.
Designing highly interoperable things comes with its own set considerations.
Security is crucial. IoT provides us with interesting problem about ownership and accessibility of its Things. Who should be able to view and interact with a device under which circumstances, how does sharing work, what type of access control to implement is a question that needs to be answered in inception phase of the product.
Availability is required. The transition from IPv4 to IPv6 provides us with plenty more addresses to identify Things. Once connected and identified, Things now become servers. Because they are servers, user expect their Things to be accessible and responsive on demand. We have to consider multiple use cases around turning on and off the device’s power supply, saving and restoring the system state and user data if an operation does become broken.
Synchronization is necessary. The beauty of Connected Things is that they work in tandem. In order to do this, they must be able to communicate their status correctly across various interfaces. Their status across devices, on a laptop, phone or tablet should be identical. It sounds obvious to the end-user, but it takes a lot of development time to solve the conflicting states across the various components of a platform.
Continuous delivery is the business. Time changes everything and nothing is perfect (that includes your product!). It will not please everyone and will need to be updated to stay healthy and relevant. Building a pipeline that allows your product to be changed and updated can drastically reduce the cost for each update.