Getting Through Agile Prototyping in Agile Hardware Development

Zachariah Peterson
|  Created: October 1, 2020
Getting Through Agile Prototyping in Agile Hardware Development

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.

What is Agile Prototyping?

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:

  1. Give your team a foundation for further development. If you can get a basic version of your embedded code to run on a dev board with some off-the-shelf peripherals, you’ve got a baseline prototype on which to start building.
  2. Pass an initial test with desired components and user inputs before taking your design to higher volume manufacturing. This should illustrate the value of dev boards for embedded systems. You can also get feedback directly from the client before sinking your budget into a prototyping run.

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.

An Agile Prototyping Process

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.

Viewing assembly data in IoT PCB design
Iterative process for agile prototyping in agile hardware development.

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.

Making Agile Prototyping in Hardware Development Work

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:

  • Supply chain visibility and component data. This is an essential part of defining functional requirements and deliverables, as well as creating user stories. Design teams need to start sourcing components early to reduce their risk of redesigns later. 
  • Sharing fabrication data. This helps a team get a new prototype into production quickly and ensures DFM errors can be caught early. 
  • Access to mechanical data. Anyone who’s built a flex or rigid-flex board knows the device must carefully conform to the enclosure. The same applies to other boards with unique enclosures. 

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.

Agile hardware development for agile prototyping
Sharing and commenting on design data are essential features of an effective collaboration system for agile hardware development.

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.

About Author

About Author

Zachariah Peterson has an extensive technical background in academia and industry. He currently provides research, design, and marketing services to companies in the electronics industry. Prior to working in the PCB industry, he taught at Portland State University and conducted research on random laser theory, materials, and stability. His background in scientific research spans topics in nanoparticle lasers, electronic and optoelectronic semiconductor devices, environmental sensors, and stochastics. His work has been published in over a dozen peer-reviewed journals and conference proceedings, and he has written 1000+ technical blogs on PCB design for a number of companies. He is a member of IEEE Photonics Society, IEEE Electronics Packaging Society, and the American Physical Society, and he currently serves on the INCITS Quantum Computing Technical Advisory Committee.

most recent articles

Back to Home