We often hear about agile management processes these days and most of us are familiar with what it means. However, the term agile is usually unanimously associated with software development. It is understandable though since it is the software industry where the agile development framework was born. However, it leaves me wondering can agile thinking and process be applied to more than just software development. What about hardware projects.Can we apply an agile framework to developing hardware? Some would say, No, because hardware is inherently hard. All jokes aside, it’s true that agile is easily integrated in software development because software is malleable and easy to change. You can release feature after feature, slowly building one on top of the other while carrying out the software testing in the parallel and also validating your features with the customers and users. It undoubtedly allows for smooth compartmentalization of workload broken apart into development sprints.
Can this be done in hardware development. Initial intuitive response would be no. Hardware has always been built via a waterfall design process. You can inherently only do one thing at the time. You design the hardware, do the layout, manufacture it and then test it. Only at the end of the complete design and test cycle you know whether or not your product fits the criteria specified and whether it even solves the customer problem. This has been the typical scenario for decades of hardware development and is still used till this day. So how could one apply the agile development process here. If you can only do one thing at the time, certainly can’t parallelize testing with the design and pivot the design quickly if some features need to be added or removed. Is hardware design forever doomed to be slow and cumbersome.
Applying agile to hardware development
Obviously we can not completely overhaul the existing hardware development standard since developing hardware is quite different than developing software. For example hardware projects need to be more predictable and more or less planed out from the beginning as there are many cost factors that could affect the project if not planed correctly, like component sourcing and test setup costs.There is a way however to apply agile principles to hardware product development while embracing the unique needs that hardware projects require.
The main thing that can be taken from the agile manifesto and applied to hardware is incremental development strategy. This means that the project is broken down into manageable modules and each module is executed at each sprint. Sounds simple. So how is that applied in practice? Say you are developing an electronics circuit and one of its features is CAN communication. So the goal for the sprint would be to demonstrate the functionality of the CAN prototype. The demonstration doesn’t necessarily mean the final finished product demonstration. It can be a simple demonstration of something put together on a workbench or sample B prototype. This will depend on your project.
This might sound tedious and that it might even make the development process slower but that is not the case. It would provide stakeholders with tangible value more often, give the developers a regular sense of accomplishment, allow the team leader to prioritize risky product features and most importantly allow for any changes to be made far easier than in a waterfall process.
Another feature that might be useful to borrow from agile software development would be the use of visual task boards.
These have come to be very valuable in software development so why not in hardware development. The tasks could be written on cards and then each card status can be easily monitored as in started, blocked, finished, etc. This will then allow the product development team to see which tasks are done and which are still pending thus avoiding the confusion. This can also help the team leader to solve the issues that are blocking the task much more quickly and thus speed up the overall execution of the sprint.
Since agile framework often relies on segmenting the team so that tasks can be done in parallel, quick daily meetings could also be a useful feature that could be applied to hardware product development.
They mainly allow the team members to stay informed about the overall status of the project and to collaborate in solving issues that are blocking tasks. The trick here is to keep the meetings as short as possible, usually to around 15 min.
Finally, probably the most important part of an agile manifesto that can be applied to hardware development is to demonstrate value often. Far too many times I have seen how electronics hardware products are developed from start to finish (using waterfall methodology), then unveiled to the customer for the first time in 6 months just to be faced with less than favourable stares and a list of features that must be changed. The best part about the agile process is that it demands that you deliver demonstrations of the product as often as possible to your stakeholders. This allows for quick pivots and easy implementation of changes as well as keeping the stakeholders satisfied knowing that the project is on the right track. For electronics design the value delivered could be in any form, wehrer it be schematics, layouts, breadboards, prototype printed circuit boards, etc. Anything that is an essential part of the deliverable.
So, in short, there are 4 key parts that could be taken from the agile manifesto used for developing software that can then be applied to hardware development. These parts include, incremental development strategy, visual task boards to be used as a guiding aid through the project, quick daily meetings and the habit of demonstrating value often to your stakeholders.
There are many advantages in using agile in hardware product development like:
- Faster product development
- Risk reduction
- Increased overall quality
- Closer collaboration between the development team and relevant stakeholders
- Transparent and easy to track project status
This article only serves as a condensed overview of how to apply agile development process in hardware projects however, this might serve you as a good starting point in implementing agile processes for your next hardware project and help you reap some of the benefits listed above.