Acquisition

Definition: 

Agile acquisition is the strategy, structure, and process to effectively adopt and apply agile software development methodologies. Agile acquisition integrates planning, design, development, and testing into an iterative life cycle to deliver small, frequent, incremental capabilities to an end user. Agile acquisition in government programs requires integrated government and contractor processes and partnerships. It embraces the agile development principles of self-organizing cross-functional teams, frequent capability deliveries, continuous user participation and feedback, and evolving requirements. Definition: Agile acquisition is the strategy, structure, and process to effectively adopt and apply agile software development methodologies. Agile acquisition integrates planning, design, development, and testing into an iterative life cycle to deliver small, frequent, incremental capabilities to an end user. Agile acquisition in government programs requires integrated government and contractor processes and partnerships. It embraces the agile development principles of self-organizing cross-functional teams, frequent capability deliveries, continuous user participation and feedback, and evolving requirements.

Background

Agile development is built around a culture of small, dynamic, empowered teams actively collaborating with stakeholders throughout product development. Agile development requires team members to follow disciplined processes that require training, guidance, and culture change. The agile method does not follow a set of standard "waterfall"-based prescribed formal processes. Agile methods demand processes specifically tailored for a rapid, iterative, dynamic development approach, especially in the areas of requirements, test, and systems engineering.

Agile acquisition can be distilled into four core elements:

·         Structuring the program via small, frequent capability releases

·         Valuing working software over comprehensive documentation

·         Being responsive to changes in operations, technology, and budgets

·         Actively involving users throughout development to ensure high operational value

The foundational structure of an agile program, as depicted in Figure 1, is:

Release: Capability delivered to users, composed of multiple sprints

Sprint: Priority capabilities developed, integrated, tested, and demonstrated (aka iteration)

Daily scrum: Team synchronization meeting to plan activities and assess progress and impediments

When to Use Agile

In determining whether an agile acquisition strategy is appropriate for the program, it is critical to evaluate the operational, acquisition, and developer conditions. Agile acquisition strategies should be considered when:

·         The full set of requirements cannot be defined up front, but an initial set can be determined, at least for a first release.

·         Requirements can be decomposed into small tasks to support iterative development.

·         Users want smaller, more frequent, iterative deliveries.

·         Users are able to actively engage throughout development.

·         User feedback is used to shape the requirements for future releases.

·         Acquisition processes can be tailored to support smaller, frequent releases.

·         Leadership and stakeholders support an agile acquisition strategy and processes.

·         The government program office has agile trained or experienced individuals, tailored processes, and access to coaches, and developers have agile experience.

·         Users, program office staff, and developers can establish a collaborative environment and are able to collocate or establish an effective virtual working environment.

·         The program can leverage enterprise platforms, processes, and documents for contracting, development, and test to enable rapid execution.