As part of our Agile development process, for complex designs that will require a lot of feedback, we always recommend developing an MVP prior to an MMP. Basically, you have to crawl before you can walk. For the MVP, we had to get enough hardware/software functionality to talk to the other electronics and processors in the system being designed by other teams as well as communicate with an engineering app and the cloud.
Initial hardware design was kicked off immediately as it had been well-scoped in prior phases.
To make sure the team was not waiting on hardware prototypes, we began working as many tasks in parallel as possible including creating an embedded Linux image for the custom hardware using Yocto, initial software development on a Raspberry Pi, user interaction validation, and concept validation using the QT framework on a PC and starting the development of a connectivity test app in iOS.
Once hardware prototypes were ready, we efficiently worked to bring up Linux on the prototype hardware, get the cross-platform UI framework running, and get low-level connectivity functionality integrated out.
In a matter of months, we had gone from a concept to a working custom embedded hardware solution running a custom Linux image and custom software. Having working devices in hand allowed the client to begin getting critical feedback from stakeholders and early adopters to drive the decision required for the Minimum Marketable Product (MMP).