The Continuous Agile Model

Photo Credit: linden.g via Compfight cc

Photo Credit: linden.g via Compfight cc

Andy Singleton, who is the CEO of Assembla where they help build software faster with less stress, has written a book called Unblock. In this book, he details how we can use the Continuous Agile Model to develop new things faster. Teams that release faster are innovating more often and improving rapidly. Andy’s company discovered these techniques as they grew and became more innovative themselves.

Scrum Struggles

His company was using Scrum to do development initially. As the company grew they saw how Scrum didn’t effectively scale for larger teams and rapid releases. They started to work on releasing more often. They began to break things up and eliminate large releases. They created a process of continuous agile and non-blocking development.

New process

Using Lean principles, his company began to focus on one thing at a time. This gave people the ability to pull what features were ready. They created an automated environment where nothing was hidden in manual commands. Everything was visible to the whole team and in repeatable scripts.

Measurement

One key that Andy shares are that they measure what is being used. They will only work on the features being used instead of taking the time to work on the unused portion. Assembla is constantly trying new things and measuring their usage. If something is not used it is removed.

Frequent releases

Once you have the measurements in place you can put out frequent releases and collect measurement data to guide your future. The principle of frequent releases was important for Assembla to gain competitive advantage. Before this change, they were lagging behind their competitors.

Automation

Assembla also leveraged automation in the build, test, and deploy cycles to make these frequent releases possible. They ask the questions, “Where can we use machines more?” and “What can we automate?” An analogy Andy uses is if we look at the first coal mines they used men and shovels. Today coal mines are using great big machines that mine the coal at an efficient rate. Companies today are leading a similar change in the software development process.

Test Layering

Andy points out how we can add layers of testing to increase quality in our releases, or to speed up the frequency of releases you can remove layers. Unit Testing, Code review, and Human Quality Assurance are just a few examples he shares of test layers. He highlights the company Edmunds.com that uses 9 layers of testing. They are not as highly concerned with test coverage, but more focused on frequency.

Developer’s responsible for Quality

At Assembla, they make the developers responsible for quality and decide when a feature is ready for release. This creates an onus on the developer that gets them more engaged in code reviews and testing. By making quality everyone’s responsibility, you get the developers more engaged. The Quality Assurance staff becomes more of a consultant that aids in testing strategy.

Feature Switches

Similar to Spotify’s feature toggles, at Assembla they use feature switches that give them the ability to hide functionality until it is ready to reveal. Andy talks about separating release from launch. As you work on a new feature it is hidden in the numerous releases that come about over time.

From Batch to Continuous

The delivery process of releases changes from the big batch release to the continuous and frequent releases of changes. Enhancements are put out and measured to see what value they bring and changed or removed depending on the metrics.

, , ,

No comments yet.

Leave a Reply

Powered by WordPress. Designed by Woo Themes