If you’ve worked in software development, such as in web design or enterprise software design, you know how difficult it can be to get clients to understand the look and feel of a product from a static wireframe. We’ve had the same problem in recent projects, especially when the POC was not a technical person. The client ultimately had to take it on faith that we knew what we were doing and could deliver what we promised. There’s no substitute for a prototype you can touch and interact with in these past software and embedded projects, even at a basic level.
Getting to a prototype quickly and building on it repeatedly is at the heart of agile prototyping. The same ideas in software development can apply to agile hardware development and embedded systems development. Your clients can have a more tangible view of your product when you use the right set of design data management tools in the cloud.
The easiest way to explain agile prototyping is to think in terms of dev boards or single-board computers (SBCs). I prefer to use dev boards for embedded development as we can start developing the overall software architecture alongside our list of primary components. The idea in agile prototyping is to create a ready-made prototype that can interface with other peripherals and give the customer an idea of the user experience.
For embedded systems, a development board is a great tool to use as you can create some very basic code that shows a client the nuts and bolts of the user experience. We’re currently living in a golden age of development boards. These products are extremely useful as they allow you to access every feature on a component while also testing your software.
The goal of agile prototyping, both for a standard PCB or embedded systems, within a larger agile development process is two-fold:
Building an initial agile prototype brings some other benefits. It helps you refine your timelines, evaluate or consolidate your functional requirements, and eliminate one or more later prototyping runs. This final point also highlights the value of using dev boards as you’re using a ready-made prototype to start building embedded software.
Hardly a new product comes out that requires some level of embedded computing power. This can be as simple as using a microcontroller with a high read/write lifetime EEPROM as a multistate switch (we did this on a recent power supply board). It could require developing embedded software to integrate data from multiple components (we also do this regularly). Bringing the software side into development alongside the hardware makes your agile prototyping and development process more complicated. However, if done correctly, you could eliminate a prototyping run (board spin, software sprint, or both).
Making the agile prototyping and hardware development process work requires running all sides of a development team in parallel. A typical series of sprints require rapid prototyping and testing at the end of each sprint, while board design, enclosure design, and software design proceed in parallel. Even if you have to engage another team member or freelancer to help with the embedded side once you add a new component/function to the system, doing all this in parallel is known to lead to more desirable customer outcomes. A typical process is shown below.
While it might seem like a big ask, the great thing about PCB design is that the layout engineer can create a great board while the coders concentrate on writing great code. They need to have exceptional communication on the front end, but once deliverables and functional requirements are clear, the two sides can go off and start working in their domains. Project managers should reconvene the team at the end of each sprint and the integration phase to identify and address bugs before deployment and full-scale manufacturing.
Agile prototyping doesn’t end with your first prototype or proof of concept. It’s a continuous improvement process as you go through multiple rapid prototyping runs. Making this work takes the right set of collaboration tools that can integrate with your PCB design software. Teams can be more agile when they access some important features in their collaboration tools for hardware design:
Add to these points, things like user access control, commenting, and version control, and you have an enterprise-level system that provides manufacturer collaboration. This lets mixed teams of hardware and software developers create a GitHub-style architecture for hardware design, including embedded systems design.
Altium 365™ is the only platform that integrates Altium Designer® with apps like Altium Concord Pro™ and the Altium Viewer, making collaboration easy for agile hardware development teams. Engineers from all disciplines can see each other’s design data and instantly import it into Altium Designer, or they can view it through an Altium Concord Pro web instance. The version control, commenting, and access control features let your team create a GitHub-style platform for hardware development and agile prototyping.
Altium Concord Pro on Altium 365 is bringing an unprecedented amount of integration to the electronics industry until now relegated to the world of software development, allowing designers to work from home and reach unprecedented levels of efficiency.
We have only scratched the surface of what is possible to do with Altium Concord Pro on Altium 365. You can check the product page for a more in-depth feature description or one of the On-Demand Webinars.