Does implementing an IoT infrastructure support the simple software architecture movement?

Yesterday while walking a thought came to me. Does IoT support the simple software architecture movement or does it make clip_image002the overall aspects of the solution more complex? A point to point network is more concise than a mesh network unless you have a solution that requires HA and DR. Then mesh is better than point to point but remains more complex regardless. Sometimes companies have to implement complex because it supports the business requirements better. If your overall solution has to be complex then the documentation for the system has to be simple. It is after the rallying cry of the simple architecture movement. Don’t document complex solutions by adding additional documented layers of complexity.

Back to the original thought, does IoT drive complexity? Part of this process, IoT implementation, has to clip_image004be the reality of automation. Where we take complex (but repeatable) tasks and automate the outcomes. Having two badge between incoming people and elevators gives us the time between the first scan of the badge and the second scan. If we have a large enough lobby or enough foot traffic we can quickly identity if the person is who they say they are. This is a more complex system overall in terms of moving pieces. But the solution can be automated to the point where the initial screen image is automatically compared to the known good pictures of employees. Reduce the risk of the wrong person sneaking into the building with an automated security system.

The other side of IoT is it can create greater complexity. Where once we had 4 devices connected we now have 40. What the devices and how the devices are reporting will in the long run determine if we clip_image006have bandwidth issues but it also creates a more complex solution. There is an upper limit to the human tracking system that we each have in our brains. I suspect 4 video feeds wouldn’t be an issue. 40 different video feeds would probably be a significant issue. So we move to a simple system. Automate the camera system so that it reacts to movement. React to human movement not inanimate and animal movements. The way to distract a system with 40 cameras is to take two handfuls of gravel and throw them into the air around the cameras. All the cameras are motion activate and seeing motion react in theory flooding the control room with far too many images for the humans to handle. Except our automated system sees the arm motion and tracks that. The objects thrown are also tracked but less from a human motion presented to the human watchers, but from a threat potential (i.e. did that person just throw a grenade?).

Simple is possible with IoT. So is complex and that becomes the problem. Complexity is an ethical gray area. Yes if the system is complex you should document it. But it is the responsibility of the software architect to reduce the complexity in presenting the solution. People don’t read complex documents. They sit in offices in neat binders and people wander away from them. It costs the organization money and time because the changes in the system aren’t documented in the overall architecture. I have had over the years more than one customer give me a single Visio file with 4-100 tabs and tell me “This is our enterprise architecture.”

IoT doesn’t make that Visio file any more relevant and by default it doesn’t make it any less arcane than the documents in binders sitting unused in an office. Systems and capabilities become more complex over time. Entropy says those systems over time also decay. As IoT enters its early childhood years and begins toddling around the house getting to simple documentation becomes more and more important. IoT devices to date have fit into the three categories – wearable, stayable and portable. In each case the movement of the device is in response to the movement of the human using them. What happens as the devices become more functionally independent and can move on their own? Our complex systems of today documented in complex binders will not be the complex systems used tomorrow.

I will end my thought of yesterday with the following. The simple software architecture movement will in fact support the implementation of complex IoT systems. The due diligence in making the information presented in the software architecture simple, will benefit the organization in the long run. Simple is the new Orange.


Scott Andersen

IASA Fellow