Klaus Elk Books

Agile Development

What does it mean to do agile development?

Some years ago I attended one of Jack Ganssle's lectures on "Better Firmware Faster". It was a great presentation - filled with high-level thinking and low-level tricks. One thing that really got stuck in my mind was Jack's presentation of Boehm & Turners work on the balance between driving projects in an agile manner versus a plan-driven "disciplined" approach. Somehow this work had escaped my attention up to this point. My book, as well as many of my blog-posts are technical, but in my daily work I am a manager. And when I meet with other managers the subject is often "How to be Agile?"

Judging by the job-market, these days all software projects are doing Scrum. Not just agile - but Scrum. Michael O. Church wrote a "rant", where he really takes the gloves off when it comes to Scrum. I wouldn't say that he's completely right - but he has got some points. Remember that "agile" does not necessarily mean Scrum - there is also e.g. Kanban.

Going back to Boehm & Turner, they showed a number of parameters that could be used to help you choose the right approach. When they say agile, they refer to anything from eXtreme Programming to Scrum.

For each Boehm & Turner parameter, I now list the range of values - favoring agile first and the plan-based/disciplined last:

As far as I know, Scrum was invented for consultants developing individual web-sites. It makes sense to be able to show the customer something early - enabling you to make deviations as you go - and charge the customer accordingly. Most people would probably NOT prefer to fly in a plane designed this way. Here the waterfall/planned approach makes sense. COTS - Commercial-Off-The-Shelve products fall in a wide range between these extremes.

The "personnel" parameter could probably start a religious war: Are Boehm & Turner saying that you should do agile if you do not have great developers? Maybe they are just saying that if you really know what you are doing (application-wise but also implementation-wise), it makes sense to create a framework first and fill it out later. If not, it may be better to build iteratively - depending on the other parameters as well. Boehm & Turner has many great observations of which a few are given here:

Black Elk

© 2026 KlausElk.com & ElkTronic.dk