Getting Deep Into Agile
Develop | Posted April 26, 2009

If you are building embedded software, can you follow agile principles? From a distance, there would seem to be some problems with that. For example, how do you unit test a piece of code that requires a device that the hardware guys have not yet delivered?

There are other potential disconnects. For example, it's great to decrease scope and ship on time, but sometimes it's better to push out the delivery date instead, which is an option some agile teams use. But do you have flexibility on a delivery date for rocket control software? Sometimes those launch windows don't come around again for months.

The premise of the Deep Agile conference, however, is that agile techniques are useful for building embedded software.

By way of example, during one of his presentations James Grenning told a story about the first time he saw Jack Ganssle (another of the speakers) do a presentation at an Embedded Systems Conference. Jack sees value in some agile practices, but he maintains a healthy skepticism of some agile advice. Here's the thing: for years before the term "agile" was used, Jack was helping clients improve their development practices. Hearing the advice Jack has lived by all these years led James to decide: "Jack just doesn't realize how agile he is."  :-) 

To prove the point, James did a quick comparison of a few of Jack's tips for embedded development to some of the advice from Uncle Bob Martin, and found the same advice, sometimes with just slightly different wording:

1. Small teams
2. Keep your functions small
3. If you don't know what you're trying to build, how can you build it?
4. You must measure stuff! 
5. Don't ship prototypes

And that to me was one of the key values of this conference: examining conventional wisdom such as "you can't be agile when doing embedded development" and discovering that perhaps that "wisdom" is not so wise after all. 

There were also some great war stories and one really scary revelation that had escaped my attention: C/C++ compilers sometimes mis-compile volatile variablesOuch.

A few photos available here.


By submitting this form, you agree to our
Terms of Use and Privacy Policy

Thanks for Subscribing

Keep an eye on your inbox for more great content.

Continue Reading

Add a little SmartBear to your life

Stay on top of your Software game with the latest developer tips, best practices and news, delivered straight to your inbox