Adoption of Agile for Embedded Hardware Design
Even though the design and development of electronic systems, and firmware in embedded systems, differs from conventional software application development in many ways - there is an increasing awareness in the hardware and embedded engineering fields today about Agile development methods.
The accelerating rate of technological change for electronic products requires rapid market responsiveness to maintain a competitive edge, and this is especially true in today's world of ubiquitous mobile connected devices and Internet-of-Things technologies.
In one recent survey, 76% of software developers today see electronic hardware as a key element in turning many software ideas into products ready for market. This highlights a need for product innovators - growth of new markets like the Internet of Things demand practical tools to make physical design more efficient without sacrificing product quality, and Agile methods are one of the tools that can potentially play a role here.
Hardware is different from software, so rather than attempt to transfer Agile practices directly to hardware development, some careful consideration about what the differences are, what is really relevant and what is not most relevant, will allow the most effective adoption of Agile management techniques in the electronic design and embedded systems industry.
Agile project management methods can be used effectively in a hardware environment, by mechanical or electronic development teams, but some adaptations might be needed on a case-specific basis. However, this is already the best practice recommended in an Agile environment for software development teams.
Many large companies use Agile techniques in their development today, including Yahoo, Microsoft, Google and many others. The WikiSpeed startup employs heavy use of Agile management techniques in their mechanical engineering projects, delivering a novel car built from composite materials that offers extremely high fuel efficiency while also being safe and road-legal - designed and built from scratch in only 3 months using crowd funding, made viable thanks to the cost-effectiveness of their Agile practices.
However, some companies prefer the perceived stability and predictability of a traditional development process. Traditional use of comprehensive documentation and contracts is viewed as protecting them from risk and having one team follow the work of another.
There are also special hurdles when you're combining hardware and software in one product, and most Agile experts, even with extensive software project experience, are not yet used to working with these issues. Some common challenges and concerns that are raised against the use of Agile methods are that more revisions and versions mean more data to manage, and that changing procedures and tools means added costs. There is the view that fewer contracts and specifications could mean higher risk, and that effective, useful communication and coordination is more complicated in an Agile environment.
One of the challenges for combined software and hardware development is that software can normally be developed fairly rapidly, and the development broken down into smaller chunks with more rapid iteration. Hardware, on the other hand, may require many months to show a working component or feature.
If the software must wait for the hardware to be created for final testing, this can create testing delays. Use of rapid prototyping technologies such as 3D printing can be valuable here for mechanical and plastics design, as can the use of modular electronic design, with smaller subsystems that can be iterated more rapidly, demonstrated, and tested independently of the whole system.
Writing user stories that span hardware and software allows for the interdependencies to be understood. There might be some software that the hardware team needs to test their first prototype; the teams can ensure that the required stories are correctly prioritised to support this. Similarly there may be software that is most efficiently developed once hardware is available (perhaps low-level interface drivers); these can be prioritised based on the hardware delivery schedules.
Because hardware often isn't available until near the end of a project for actual deployment and testing, virtual versions of the hardware such as mock-ups, simulations and emulations are often an important part of hardware development using Agile techniques.
Modelling and simulation allow testing and integration to begin as soon as the design work begins, which eliminates the delays that might be experienced if the hardware isn't yet available. It can save significant investment in unnecessary early prototyping of architectures that aren't viable.
One method of dealing with hardware that isn't ready to test is to decouple software and hardware development, via an abstraction layer, to allow software development to continue more rapidly. The challenge is to find a method that allows the rapid development of software and concurrent development of the hardware in a way that can best meet the requirements of each process.
Hardware abstraction layers enable concurrent hardware and software engineering by allowing software development and testing to start prior to hardware availability. This valuable practice can also provide input into the hardware requirements and help most efficiently refine the boundary between hardware and software.
Therein lies the challenge of embedded hardware design using Agile methodologies – software and hardware teams need to be challenged to work together for the desired outcome in the available amount of time. And as a leading developer of embedded hardware, products and services from design through to product manufacturing and support - here at the LX Group we have the team, experience and technology to bring your ideas to life.
Getting started is easy - 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.