Running Thoughts Header

Guiding Principles

In addition to providing a CV and a Portfolio of work, I feel it’s important to clearly state my guiding principles. Many of these are evident in the IoT articles, and was laid out in the original Foundation Article. This page condenses and organizes them.

Process

When approaching a new product or system concept, it is essential to spend time ideating, sketching, researching and socializing to develop a first draft. Depending on the complexity, it can take months to get to that first draft. The process then continues as you revise it towards a comprehensive, future-resilient solution. The process never stops, either. It will slow down as you move on and dive deeper into the elements of it, but you need to always reconsider and update your model based on new technology, improved technology, feedback from colleagues and business partners, and most importantly, feedback that you get from intended users of such a system.

When you develop the concept, the following principles apply.

User Experience (UX)

It is essential to have a good user experience of a system. This is frequently neglected, leaving users to struggle with tech and underutilize what otherwise might be a good concept. One must work hard to ensure the use of the system is as self-evident as possible, if not automatic. When manual interaction is required, one should make it as obvious as possible what the user needs to do.

Importantly, User is defined as anyone that interacts with a system. Different types of users in a system are ascribed to personas. Example are

  • End user– the one who ultimately uses the system.
  • Administrator– the one who manages the system on a routine basis from a dashboard or control panel
  • Installer– the one is initially has to install the system, and frequently is not the Administrator. While some elements may be out of ones control, one must still work hard to ensure that installation is as straightforward and evident as possible.

I’ve seen examples of businesses deferring on purchase of a system that is perceived to be complex, or just very new to them, based on worries that it will be too much work to install and maintain, and yet more things they need to learn. Therefore, it is important to note that successful sales of your new product depend not only on the benefit to the End User, but also the cost, and the perceived-cost, of installation and maintenance.

Plan for the Future

You need to take an idea to its logical conclusion. You don’t want a product that will be obsolete soon, because someone else came along and bettered you. Alternatively, you don’t want to have to do significant “refactoring”, retrofitting code to do new things, just because you didn’t think of it. I see the word “refactoring” a lot these days. To me, it’s a dirty word- avoid it.

I follow these principles for this aspect:

Have the End in Mind

When developing a new concept, one should look as far into the future as possible to start. Consider all the features you ever may want, and allow for those you will discover later. Discard (for now) current constraints of technology. Of course you need to be reasonable here- the laws of physics won’t change, but be wary of constraining assumption for no good reason.

An analogy to this is one difference between a good and a bad science fiction movie. A good one, while creating a wondrous (or dystopian), technological future, will still anchor the movie in some reality. A bad one, however, will discard common sense constraints, thus straining credulity. Starship Troopers was one such movie.

Holistic Approach

A holistic approach is an attempt to define the ideal system for your needs, now and future.

  • Consider everything. Make it 360. Include feedback elements (data measurement and collection) wherever possible. Leave nothing out.
  • Assume few or no boundaries at first. Assume technology has evolved and will provide what you need. That includes sensors, form factors, radios (i.e., WiFi, BLE, cellular). Plan for ideal.
  • Put together a plan with few assumptions and assume you will make discoveries in the future you will never have thought of today.

People Come First

Every system imaginable involves people, at one level or another. Even a system that you imagine is for industry, for something automated, with no human interaction with it when it is deployed. But first, it must be deployed, and for now, that still involves people. And it must be maintained and monitored, again, for now, that involves people. At the very least, ensure that installation and maintenance are evident from the design and packaging (if needed).

Segment Solution Into Layers

Break a solution into layers. Typically Layer 1 will be the MVP, minimum viable product. It’s important this MVP contain an ROI element, or it will go nowhere. Define the benefits of this minimum solution.

Develop subsequent layers into relative implementation blocks, starting with those requiring the minimum extra investment that is logical beyond Layer 1. Then do the same definition of ROI.

Repeat this product until concept is fully implemented. When done, you will have Layer 1, and then Layer 2..N.

Iterate

The idea is never, truly finished. With that in mind, it is important to have exit criteria when you have a good, achievable goal and a plan to get there in steps. Always revisit, though, and update it with newer ideas and take advantage of progress in technology and new devices and solutions that come into existence.

New ideas can come from experience, using your own solution, and external influences and even shocks. The current (as of this writing) COVID-19 crisis is a clear example of a societal shock that will reveal weaknesses and flaws that can be turned into future opportunities to develop new products, evolve existing ones, and help society in a positive way to mitigate future shocks. Please note, though, I mentioned future opportunities. Crises are no time for profiteering. Preventing the next crisis or making it easier to deal with, however, is.

Data Privacy & Security

In most cases, in a responsive system, you will be gathering and keeping data. Generally it will have a business purpose. One must not lose sight that this is personalized data when it is gathered. Outside of an employer system, which covers privacy in their legal employment agreements, the user should understand what data is being collected.

  • Have a clear Data Privacy policy for the end users (the consumer). Clearly identify when installing and running the application for the first time what data you are gathering.
  • Explain how that data is used, and what data is identifiable and what is aggregated (i.e., depersonalized).
  • Use the data only for legal purposes.
  • Do not sell their data without consent.
  • Allow the user to opt out of unsolicited offerings, yours or externals.
  • Allow the user to take their personalized data with them if they leave, and…
  • … delete any identifying data when they leave.
  • Measures must be taken to secure the data, including encryption, and keeping your infrastructure equipment and software up-to-date to prevent hacking.

The GDPR rules are a very good baseline to follow.

Summary

This is also a living page. One learns continuously and modifies principles based on lessons learned. Plus I’ve never codified my thought processes as such, so this will likewise by updated due to ongoing clarification. It’s a good process to go through, IMHO.

Latest Articles

Sensor Fusion
Connected Gym
Jeffrey Cooper

Sensored: Fusion

In the previous article, we talked about a number of sensors, but all of them were discussed using sensors a la carte- for a single

Read More ยป

Share this:

Like this:

Like Loading...

Subscribe

Subscribe and get a notice when the next article is published.

Thank you for subscribing.

Something went wrong.