Tools for Agile Hardware Development Success
When using Agile project management techniques, it is desirable to be able to rapidly produce and demonstrate a working prototype of your technology, and to rapidly iterate and refine and build on each prototype without necessarily having a perfectly engineered product ready to go at the first iteration.
When attempting to apply Agile methods to electronic and hardware design, what methodologies and tools should we consider in order to rapidly prototype and demonstrate hardware systems?
What if the lead time that is required to source components, to fabricate PCBs, to have prototype layouts assembled by an external pick-and-place assembly contractor or to have custom plastics injection-moulded, and so on, is longer than the time allocated to an iteration? These types of external supply and manufacturing dependencies are unique to hardware, and aren't present in software development – so they present a unique challenge when trying to apply agile methods to the management of hardware projects.
Increasingly popular and accessible tools and technologies such as small-scale CNC milling, 3D printing, and laser cutting are becoming more important in this field, allowing components such as custom plastics to be rapidly prototyped, rapidly demonstrated to the product owner, evaluated, and rapidly iterated, prior to committing to the high cost and high lead time of custom injection-moulding tooling and manufacturing.
In agile methodology, early user testing is important, with rapid feedback focussing the most important characteristics of a product and showing what is or isn't relevant for customers. To shorten the time required to deliver a prototype iteration, rapid prototyping tools and technologies such as 3D printing are ideal, bringing rapid, small-scale and very agile manufacturing technologies right to the desktop.
Having intimate, agile communication between different team members with different skills – electronic engineers, mechanical engineers, industrial designers, UI designers, software developers, manufacturing experts – with regular meetings, standups and interaction is also good for efficiency and agility, allowing cross-pollination of different experience and ideas and providing confidence in the integration between different parts – between a plastic moulding and a printed circuit board, for example – preventing time-consuming problems with manufacturability later.
If you're working on a hardware prototype in an agile environment and your external manufacturing of a new prototype board, for example, is going to take longer than the time allocated to an iteration but you need a prototype ready to demonstrate, what options are available to you?
Then it is time to ask if there is anything that you can do so that you can produce a prototype of some kind in an iteration, using the new tools and technologies of rapid prototyping – or even the older technologies of hand construction. Today there are services that can allow you to upload design files for a new 3D printed plastic part or CNC machined metal part and have it manufactured and shipped overnight so that it is ready to go the next morning. These services can be expensive – but so is the time of your team, and the agility that such rapid iteration provides could be more valuable.
A prototype iteration of a hardware system doesn't have to physically involve hardware, either. Simulation and visualisation tools, such as SPICE for electronic engineering, 3D rendering of PCB component dimensions, 3D rendering of mechanical components, and thermodynamics models for predicting heat transport with a device enclosure, for example, can all play an important role in assuring the quality, interoperability, industrial design, electrical and thermal performance and the "look and feel" of all the components that come together into a new product - even before a prototype is actually physically constructed.
Nevertheless some of the most rapid of rapid prototyping strategies can fail, so is there a different way to somehow produce something at each iteration that can generate the discussion, answers and feedback you can use to drive decision-making within a single iteration?
What are the basic, smallest chunks of hardware functionality that you can deliver? Can you split the hardware prototype up into small modules, for optimum agility and the ability to deliver a prototype of at least one module during each iteration period?
Using standard off-the-shelf components and technology for rapid prototyping can play a valuable role here, along with breadboard-style construction, the use of manufacturer evaluation boards and reference-design boards from chipset and IC manufacturers, the use of general-purpose "building blocks" and "breakout boards" from component distributors, and general-purpose single-board computer and microcontroller modules, which are relatively low cost, flexible, and very easy to learn to use.
The use of Open Hardware and open-source intellectual property, for example for known working circuit designs that can be re-used without having to spend your time reinventing the wheel, is also potentially attractive here.
Today, almost all electronic products and designs incorporate some kind of software or firmware – for an embedded microcontroller, for Internet-connected cloud services or mobile apps or for PC connectivity, for example. This is especially true as we move further into the emerging Internet-of-Things era.
This means there is a relationship between electronic engineering and software engineering for almost all products, and agile methods can help to make this interaction most efficient. Once software is working, it can be deployed either on any available hardware modules that are ready, or in a test or simulation environment. This allows the early identification and fixing of most race-condition issues or bugs that may arise, and reduces the amount of "fixing" and time intensive reworking that otherwise might need to occur later into the integration process.
The goal is efficient, concurrent work with hardware developers creating hardware components, and software developers developing and testing software components, at first independently of the hardware development at times, and then testing on the actual hardware prototypes as they are developed. This requires effective collaboration between hardware engineers, industrial designers, software developers, and the product owners who provide the feedback.
No matter the level of expertise within your organisaiton – you may need help or guidance with any or all stages of product development. Here at the LX Group we have a wide range of experience in various development methodologies and can be your partner for success.
To get started, join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.
LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.
Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.