Skip to main content

Software Development: Effective Practices and Federal Challenges in Applying Agile Methods

GAO-12-681 Published: Jul 27, 2012. Publicly Released: Jul 27, 2012.
Jump To:
Skip to Highlights

Highlights

What GAO Found

GAO identified 32 practices and approaches as effective for applying Agile software development methods to IT projects. The practices generally align with five key software development project management activities: strategic planning, organizational commitment and collaboration, preparation, execution, and evaluation. Officials who have used Agile methods on federal projects generally agreed that these practices are effective. Specifically, each practice was used and found effective by officials from at least one agency, and ten practices were used and found effective by officials from all five agencies. The ten practices are:

  • Start with Agile guidance and an Agile adoption strategy.
  • Enhance migration to Agile concepts using Agile terms, such as user stories (used to convey requirements), and Agile examples, such as demonstrating how to write a user story.
  • Continuously improve Agile adoption at both the project level and organization level.
  • Seek to identify and address impediments at the organization and project levels.
  • Obtain stakeholder/customer feedback frequently.
  • Empower small, cross-functional teams.
  • Include requirements related to security and progress monitoring in your queue of unfinished work (the backlog).
  • Gain trust by demonstrating value at the end of each iteration.
  • Track progress using tools and metrics.
  • Track progress daily and visibly.

GAO identified 14 challenges with adapting and applying Agile in the federal environment:

  • Teams had difficulty collaborating closely.

  • Procurement practices may not support Agile projects.

  • Teams had difficulty transitioning to self-directed work.

  • Customers did not trust iterative solutions.

  • Staff had difficulty committing to more timely and frequent input.

  • Teams had difficulty managing iterative requirements.

  • Agencies had trouble committing staff.

  • Compliance reviews were difficult to execute within an iteration time frame.

  • Timely adoption of new tools was difficult.

  • Federal reporting practices do not align with Agile.

  • Technical environments were difficult to establish and maintain.

  • Traditional artifact reviews do not align with Agile.

  • Agile guidance was not clear.

  • Traditional status tracking does not align with Agile.

Finally, officials described efforts to address challenges by clarifying previously unclear guidance on using Agile. In a related effort, the Federal Chief Information Officers (CIO) Council is developing guidance on modular development in the federal government, but it does not specifically address effective practices for Agile.

Why GAO Did This Study

Federal agencies depend on IT to support their missions and spent at least $76 billion on IT in fiscal year 2011. However, long-standing congressional interest has contributed to the identification of numerous examples of lengthy IT projects that incurred cost overruns and schedule delays while contributing little to mission-related outcomes. To reduce the risk of such problems, the Office of Management and Budget (OMB) recommends modular software delivery consistent with an approach known as Agile, which calls for producing software in small, short increments. Recently, several agencies have applied Agile practices to their software projects.

Accordingly, GAO was asked to identify (1) effective practices in applying Agile for software development solutions and (2) federal challenges in implementing Agile development techniques. To do so, GAO identified and interviewed ten experienced users and officials from five federal projects that used Agile methods and analyzed and categorized their responses.

Recommendations

GAO is recommending that the Federal CIO Council, working with its chair, OMB’s Deputy Director for Management, include practices such as those discussed in this report in the Council’s ongoing effort to promote modular development. After reviewing a draft of this report, OMB commented that the recommendation was better addressed to the Council than to its chair. GAO revised the recommendation to address it to the Council working with its chair.

Recommendations for Executive Action

Agency Affected Recommendation Status
Chief Information Officers Council To ensure that the experiences of those who have used Agile development are shared broadly, the Federal CIO Council, working with its chair, the Office of Management and Budget's Deputy Director for Management, should include practices such as those discussed in this report in the Council's ongoing effort to promote modular development in the federal government.
Closed – Implemented
In response to our recommendation, the Council has released a Digital Services Playbook that includes a specific practice on building digital services using Agile and iterative methods. The Council has also conducted a discussion of Agile techniques during an interagency symposium and specifically discussed Agile methods at several of its regular meetings, including a discussion with the General Services Administration's (GSA) 18F on a new vehicle for contracting Agile development assistance, Agile training from U.S. Digital Service staff, and a discussion by OMB on its draft guidance to agencies providing more specific instructions for using Agile in the federal environment. The guidance is currently undergoing internal review and is expected to be finalized in the fall of 2016. By providing specific guidance on the use of Agile in the federal environment, the Council and OMB increase the likelihood that agencies that adopt Agile methods will achieve the potential benefits of its use.

Full Report

GAO Contacts

Media Inquiries

Sarah Kaczmarek
Managing Director
Office of Public Affairs

Topics

Software developmentSoftwareFinancial managementProgram managementInformation technologyVeterans affairsAdoptionCorporate stakeholdersAeronauticsSoftware engineering