Magdalena Klimza, 2020-12-29

A hard(ware) nut to crack – a few words about hardware product development

Managing a hardware project is not a simple task. Because of the huge unpredictability of the process as well as expensive ad hoc changes, reality often looks disappointing if compared to expectations. Especially if there are no qualified people on board. Creating such a product requires advanced knowledge in the field of engineering, software, business and even human anatomy (if that product is to be worn by people).

It means that if you want to succeed, you need to hire people with above-mentioned skills, ones that will be deeply engaged in the project development. So, what should you know about the process? What are the obstacles and how you can deal with them?

Planning, assumptions, and design

Before you start mass production, first of all you must define who is going to be the main user and what is the purpose of the final product. Without that vision, your team members will have no understanding of the right development direction. Throughout this step, creativity is the most important feature and there are no stupid ideas. Even the simplest solution might be the best one. Once you have decided what you wish to create, it’s time to estimate the budget for your project and its deadline. Remember about the additional time reserve. Usually, the whole production does not proceed as expected, for instance, due to external factors.

The planning phase requires one additional and essential element – the risk analysis. During the brainstorming, the team needs to find the right answers for basic questions starting with “What if…?”. Choosing the appropriate prevention methods will make the team more self-confident and better prepared for the development stage.

Once you have finally dealt with discussions and assumptions, it’s time to prepare the documentation. Time to dive into details – the product design. It is the time when the specialized knowledge is necessary and the complete team must cooperate closely together. One missed point means that problems will occur soon. Each fix is a waste of time and money, e.g., if your electronics does will not cooperate with person responsible for the form factor, the product user may break the device while using it because the form factor doesn’t properly protect the electronic parts inside.

During this step, a recommended practice is not to do an all-in-one solution. If you have such an opportunity, it’s better to prepare an alternative version, just in case the first one fails for some reasons.

Also, we shouldn’t forget about product licenses. It’s better to handle it at the initial phase of the development process.

Free code review

Preparation for production and creating software

The preparations start when the decisive person (e.g., Product Owner) accepts the design. Then it’s high time to gather all the necessary tools and components. The lead time might be longer for particular parts, so you should not drag your feet while ordering them, especially when it comes to elements that can be easily sold or returned later, e.g., in case you don’t need them anymore.

During that stage, it’s good to create software for the device. That software not only refers to the UI of the display, but also regards the energy consumption. In an ideal world, you do the optimization once you have a final product, but such situations occur very rarely. Mostly, there is not enough time at that point, so you are forced to start before you receive the components. Well, it’s sometimes like shooting in the dark and ill-conceived hypotheses may take more time to fix than expected. Engineers call this process of spending a lot of time on something redundant premature optimization. Eventually, when the first prototype is ready, you can optimize the interface, UX and other features more precisely. So, in this case, the additional time reserve is rather handy. 

Testing prototypes and mass production

Testing is a frustrating but particularly important stage, so it’s good to involve in it as many people as we can. One person might not notice all mistakes. It is highly likely that issues will occur during the testing, however, if the team cooperated well so far, fixes will not be very expensive and time-consuming. Once those tests are completed and the hardware product complies with basic assumptions, you can take another step forward and commence the mass production.

What may go wrong during the development?

The above-mentioned description is an ideal (but not unattainable) scenario. We often need to deal with following issues:

- the final product does not comply with basic assumptions,

- the device breaks quickly while using,

- inappropriate optimization of energy consumption, display, sound, and other behaviors,

- received components are not the same as ordered,

- received components are broken,

- you have fallen behind the deadline.

How to overcome them?

In four words: management, cooperation, engagement and creativity. These are the reasons why your team must combine well-qualified and experienced employees. 

Read more:

Product owner in a software development project. Internal or external?

Which DB to choose for your specific data type in your software project

Ways to increase your Rails performance

Product development consulting