Relating a Problem Definition to IoT Architecture

In our previous blog we introduced concepts in developing on IoT architecture. Most notably we laid out a process for development that specified a pathway to production:

  1. Define Problem
  2. Identify/Design Solutions
  3. Build Proof of Concept
  4. Scaling up to Prototype
  5. Add Features/Evaluate
  6. Scaling to Production

Lets face it, the largest function within IoT is problem resolution. IoT solutions are perfect to implement in hundreds of ways within any industry. However, many developers that envision awesome IoT based solutions run into issues since they failed to properly define the scope of the problem they wish to solve.

Like in classic project management, there should be a problem definition phase.  This is where your project scope is normally derived from.  Ideally your problem definition should not be overly generic.  Being generic brings troubles since that vagueness give one person a totally different idea than yourself in how to solve the problem at hand.

When you begin to state the problem to be solved, it is a good idea to fully understand the problem, and if possible put down on paper, or into a document the specifics of that problem.  It can be as simple as produce is spoiling in transit from the warehouse to the customer. From there, you can flush out more of the problem: produce is spoiling in transit due to hot truck temperatures, or length of trip.

As we become more specific about the problem, we can then start to see how IoT can be interjected into the future solution.  In the case of hot truck temperatures, IoT can provide monitoring and feedback to understand patterns, or other issues to help solve the problem.

Based on the specifics of the problem, we can create a more firm problem definition.  Due to an increase of spoilage, we aim to monitor temperature, transit times, and conditions of the truck while in transit from the warehouse to the end destination. You can easily see how potential solutions can be matched up to a strongly worded problem statement.  If that statement were vague, you could end up only capturing transit time, and not seeing a bigger picture of why produce is spoiling.

Overall, setting your project up with a strong problem statement is key to creating a viable solution. By identifying as much of the problem as possible will allow you to create a solution that can address as many of the points as possible.  Adding these points in the future increases the project cost, including them early on allows the project budget to be met more easily.

For more complete information about compiler optimizations, see our Optimization Notice.