From the U.S. Government Accountability Office, www.gao.gov

Transcript for: Agile, Explained: Software Bottlenecks

Description: This video looks at some of the bottlenecks to implementing
Agile at agencies that aren't already set up for the kind of
collaboration needed. 

Agile is an approach to software development that encourages
collaboration across an organization and allows requirements to evolve
as a program progresses. 

Related GAO Works: GAO-20-713SP: Science & Tech Spotlight: Agile
Software Development; and GAO-20-590G: Agile Assessment Guide: Best
Practices for Agile Adoption and Implementation  

Released: September 2020

[ Narrator: ] Agile is an approach to software development that
encourages collaboration across an organization. This video looks at
strategies for implementing Agile at agencies that aren't already set up
for the kind of collaboration needed. Collaboration is especially
important between the product owners, who set the requirements, and the
developers who implement them. If an agency isn't set up to support
Agile development, this collaboration can be difficult. Let's talk
through two examples of how an agency's structure can slow down the
process. If the developers have questions about a requirement after work
has started, they need to be able to ask the product owner for
clarification. If the development team can't reach the product owner, or
isn't allowed to contact the product owner directly, there can be a
bottleneck in development. In more complex agency structures, the
product owner may not have the ability to make key decisions, such as
approving a change to the requirement priorities. In that case, the
developers would be unable to work until the appropriate managers give
approval to proceed. Agencies can refine their policies and procedures
to better support Agile development and further collaboration between
the developers and the product owner. One way to free up a product owner
is to limit the number of Agile teams the product owner works with.
Streamlining agency processes encourages collaboration and allows
developers to provide more frequent software deliveries.