Agile For Embedded Systems
As agile continues "crossing the chasm" into the mainstream of the software development industry, there are always more and more types of software projects which at first glance may appear agile may not be a good fit for. In reality though this is likely more a function of difficulty finding documented expert quidance to assist these projects than it is a true mismatch between agile and the project.
Some might say that one such discipline is that of software development for hardware and embedded systems. Mark Levison has taken some time to assemble a helpful reference of information about people's experience applying agile to embedded software development projects.
Applying agile to embedded software projects may seem to present some unique challenges, for example:
- More difficulty effectively testing evolving software features, as the corresponding hardware may not be readily available
- Less freedom to change your mind, being the corresponding hardware change may come with an unacceptably high cost
- Similarly, less ability to leverage "learn as you go" techniques, considering the hardware construction may demand a more upfront style of planning and design
To help people overcome these and other perceived obstacles, Levison has assembled the following list of people and organizations contributing knowledge in this space:
Mark goes further by then presenting the following list of related articles:
- Embedded Agile: A Case Study In Numbers by Nancy Van Schooenderwoert
- Taming the Embedded Tiger: Agile Test Techniques for Embedded Software (pdf) by Nancy Van Schooenderwoert
- Embedded Extreme Programming Experience Report (pdf) by Nancy Van Schooenderwoert
- PRODUCT DEVELOPMENT AND AGILE METHODS by Jim Highsmith
- What Lifecycle? Selecting the Right Model for Your Project by Johanna Rothman
- Agile Embedded Software Development (Oct 2008) (pdf) by James Grenning
- Test Driven Development for Embedded Software by James Grenning
- Agile Times - Containing Progress Before Hardware - "This issue has many interesting articles to embedded teams and Agile Development topics in general."
- Atomic Objects Best Practices in Embedded Software
- Danube Case Study with Intel
In addition, Mark has included a few excerpts from discussions by people presenting experiences with doing agile for embedded software. Among these excerpts is some advice from James Grenning highlighting the importance of developing and testing your software independently from the actual hardware its intended to support, and also then guidance with how to effectively approach integration with the device.
Mark also includes in these excerpts stories from Johanna Rothman, Robin Dymond, Jeanne Petrangelo, and John Baker discussing other approaches to effectively developing and testing your embedded application in an iterative, evolutionary manner.
Take some time to check out Mark's post, particularly if you're doing agile for embedded software development. If you've got your own stories, add them - there are more people out there just like you who would benefit from your knowledge; share to help them, and help agile!
Another article on this topic