Execution of Agile Iterations: Best Practices

This is the 4th article in a continuing series on best practices for Agile implementation in the Federal Government.

In order to reduce the costs of IT development projects in federal agencies, the Office of Management and Budget (OMB) has recommended implementation of modular (or Agile) software delivery. Agile software development describes several different types of methodologies which involve close collaboration between the development team and customer, and frequent delivery of product with immediate business value.

While Agile methodologies are widely used in the private sector, they have been slower to be adopted in the public sector. Several public and private groups have developed guidance documents to help shepherd federal agencies in the transition to Agile. The American Council for Technology-Industry Advisory Council has created Planning for Success: Agile Software Development in Federal Agencies. This document provides an overview of Agile development, best practices, and strategies for overcoming implementation challenges.

Another study by the Government Accountability Office (GAO) has identified best practices for implementing Agile methodologies within the Federal Government and is a reference for government leaders.

In order for Agile implementation to be successful, your organization must first plan strategically, be committed to Agile, and ensure the necessary preparations have been made. When it is time for execution of Agile iterations, keep in mind the following suggested practices, compiled from the above referenced reports:

Use the same duration for each iteration

Maintain consistency by using the same duration for each iteration (or time-boxed development effort). Choose a duration that makes sense for your organization and your customer.

Combine Agile frameworks and/or practices, if appropriate

The term “Agile” includes several different development methodologies. Become familiar with the methodologies and practices available in order to determine the solution that will benefit your organization the most. One resource to review is from The Agile Alliance, which provides a working guide to Agile Practices.

Test early and often

Development iterations which include testing help to support customer involvement. Testing also improves the focus on delivering working software at frequent intervals; one of the basic principles behind Agile.

Include security and progress tracking in your backlog

Security review, project tracking and other tasks that are not directly development-related should be included as individual tasks within each iteration. Tracking these tasks independently ensures the associated time and cost is captured.

Document defects and other pending tasks in your backlog tool

Be sure to record requirements or identified tasks in an upcoming iteration. Adding these tasks to a future iteration cycle ensures that they will be addressed. If defects or other requirements are added to a backlog, make sure you have a process in place for periodically reviewing the backlog.

Expedite delivery using automated tools

The Planning for Success guidance document states: “The key to frequent software releases is the use of automation to accelerate testing, manage rapidly changing code, and (sometimes) track work requests. Automating test cases is the only feasible way to test software as extensively and frequently as is required by agile and ensure that every sprint and release delivery is high quality.”

Agile execution is not a destination, but a journey. The very nature of Agile is that continuous improvement is built into the process. Iteration retrospectives allow for reflection and implementation of process improvements. Some planning is essential, but the important part is to just start the process and improve and grow as an organization along the way.

To continue the discussion about implementing new methodologies or increasing your capacity for Agile development, contact us.

 

facebooktwittergoogle_plusredditpinterestlinkedinmailfacebooktwittergoogle_plusredditpinterestlinkedinmailby feather