One Foothold at a Time

When a climber attempts to scale a cliff face, they progress one foothold at a time ensuring that each position is rock-solid before attempting the next. The same is true with developing large-scale software products. As you will see from the tenets, we build software one short incremental step after another, relying on automated testing and continuous integration to ensure that each software build is rock-solid before moving onto the next iteration. We have made testing an ingrained habit so that we can always rely on the safety of our automated test system. And we fix bugs first before even thinking about new features.

The output of each iteration (secure foothold) is working software. There are many reasons why a product may need to ship early. For example, a funder may have withdrawn unexpectedly, a competitor may have come onto the market with a similar product, or a required technology may be delayed or unavailable. Since working software is the output of each iteration we are always able to release the output of the last iteration. Even though the product / solution may not have all the features it will often meet the key requirements which is far more desirable situation that having a number of fancy architecture diagrams or not-working, yet incredibly clever code.

On to the Tenets