Agile for Embedded Hardware

Last night I had the great opportunity to give a talk at Carbon Five in Santa Monica, on something I'm passionate about: Agile development for Embedded Hardware products.

The Agile development principles where designed for software development, and really improved the way teams develop and deliver software products more efficiently. Meanwhile, the hardware development industry lagged behind on some of these efficiency improvements. A large contribution to this lag is the inherent costs and manual labor associated with hardware testing (firmware, mechanical and electrical).

Agile is essentially a tight feedback loop:

  1. Develop a little
  2. Test it
  3. Get user feedback
  4. Repeat

Agile loses its power and efficiency when any of these steps are not optimized. In hardware development, the firmware development tools are powerful, and match those of software apps (web and mobile) in terms of functionality. And it's also easy to get user feedback on features, regardless of the type of product. But, what lagged was the testing tools for hardware - specifically automated testing tools

In my talk, I describe how I and my team developed an automated test framework for our embedded products, stealing best practices and tools from the software development world. This involved setting up a Continuous Integration server, Ruby test suite, and a plethora of automated custom components to simulate external stimuli to improve our test coverage

The result was an extremely efficient development team that could go toe-to-toe with any web app development team.

A webcast of the talk was recorded on Facebook Live, and can be found on Carbon Five's FB page.