About | HeinOnline Law Journal Library | HeinOnline Law Journal Library | HeinOnline

GAO-20-713SP 1 (2020-09-29)

handle is hein.gao/gaobaebti0001 and id is 1 raw text is: 
                           Science, Technology Assessment,
 G      A      O        Iand Analytics




 SCIENCE & TECH SPOTLIGHT:

AGILE SOFTWARE

DEVELOPMENT


What is it? Agile is an approach to software development that encourages
collaboration across an organization and allows requirements to evolve as
a program progresses. Agile software development emphasizes iterative
delivery; that is, the development of software in short, incremental stages.
Customers continuously provide feedback on the software's functionality
and quality. By engaging customers early and iterating often, agencies
that adopt Agile can also reduce the risks of funding failing programs or
outdated technology.

                       ? : , User
                       ....       feedback





                  Software deployed ..

Source GAO analysis of Department of Defense and U S. Citizenship and Immigration
Services information.  GAO-20-713SP




How does it work? Agile software development is well suited for
programs where the end goal is known, but specific details about their
implementation may be refined along the way.

Agile is implemented in different ways. For example, Scrum is a
framework focused on teams, Scaled Agile Framework focuses on
scaling Agile to larger groups, and DevODs extends the Agile principle of
collaboration and unites the development and operation teams.

Scrum, one of the most common Agile frameworks, organizes teams using
defined roles, such as the product owner, who represents the customer,
prioritizes work, and accepts completed software. In Scrum, development
is broken down into timed iterations called sprints, where teams commit
to complete specific requirements within a defined time frame. During
a sprint, teams meet for daily stand-up meetings. At the end of a sprint,
teams present the completed work to the product owner for acceptance.
At a retrospective meeting following each sprint, team members discuss
lessons learned and any changes needed to improve the process. Sprints
allow for distinct, consistent, and measurable progress of prioritized
software features.


How mature is it? Organizations have used versions of incremental
software development since the 1950s, with various groups creating Agile
frameworks in the 1990s, including Scrum in 1995. In 2001, a group of
software developers created the Agile Manifesto, which documents the
guiding principles of Agile. Following this, Agile practitioners introduced
new frameworks, such as Kanban, which optimizes work output by
visualizing its flow.

The Federal Information Technology Acquisition Reform Act (FITARA),
enacted in 2014, includes a provision for the Office of Management and
Budget to require the Chief Information Officers of covered agencies
to certify that IT investments are adequately implementing incremental
development. This development approach delivers capabilities more
rapidly by dividing an investment into smaller parts. As a result, more
agencies are now adopting an incremental, Agile, approach to software
development. For example, in 2016, the Department of Homeland Security
announced five Agile pilot programs. In 2020, at least 22 Department
of Defense major defense acquisition programs reported using Agile
development methods.

As the federal government continues to adopt Agile, effective oversight of
these programs will be increasingly crucial. Our GAO Agile Assessment
Guide, released in 2020, takes a closer look at the following categories of
best practices:

Agile adoption. This area focuses on team dynamics, program
operations, and organization environments. One best practice for teams
is to have repeatable processes in place such as continuous integraton,
which automates parts of development and testing. At the program
operations level, staff should be appropriately trained in Agile methods.
And at an organizational level, a best practice is to create a culture that
supports Agile methods.

Requirements development and management. Requirements-
sometimes called user stories-are important in making sure the final
product will function as intended. Best practices in this area include
eliciting and prioritizing requirements and ensuring work meets those
requirements.

Acquisition strategy. Contractors may have a role in an Agile program
in government. However, long timelines to award contracts and costly
changes are major hurdles to executing Agile programs. One way to
clear these hurdles is for organizations to create an integrated team
with personnel from contracting, the program office, and software
development. Clearly identifying team roles will alleviate bottlenecks in the
development process.


GAO-20-713SP Agile Software Development

What Is HeinOnline?

HeinOnline is a subscription-based resource containing thousands of academic and legal journals from inception; complete coverage of government documents such as U.S. Statutes at Large, U.S. Code, Federal Register, Code of Federal Regulations, U.S. Reports, and much more. Documents are image-based, fully searchable PDFs with the authority of print combined with the accessibility of a user-friendly and powerful database. For more information, request a quote or trial for your organization below.



Contact us for annual subscription options:

Already a HeinOnline Subscriber?

profiles profiles most