Hammers Before Heroes
For my Project 52 the past week, I spent it on testing, rather than creating. I have had fun doing it (I’m not finished yet).
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.
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.
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
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.
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:
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.
A holistic approach is an attempt to define the ideal system for your needs, now and future.
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).
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.
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.
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.
The GDPR rules are a very good baseline to follow.
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.
For my Project 52 the past week, I spent it on testing, rather than creating. I have had fun doing it (I’m not finished yet).
This week’s app is called Word Hammer, intended to be a foreign language enhancement application. It will hammer you on specific concepts until you get
A friend of mine from a Meetup suggested trying out the Streamlit service for the Mandelbrot (and other) Python apps. Last month, I had deployed
This past week has been a cycle of 3 steps forward and 2 steps backward (hence the meandering graphic in the header image). I am
Subscribe and get a notice when the next article is published.
Thank you for subscribing.
Something went wrong.
The form collects name and email so that we can add you to our newsletter list for project updates. Checkout our privacy policy for the full story on how we protect and manage your submitted data!