GSA / innovation.gov

Deprecated - This project repo is no longer being maintained.
https://innovation.gov
14 stars 14 forks source link

Agile #23

Closed krnance closed 7 years ago

krnance commented 7 years ago

Agile

Summary

Purpose and Outcomes

Purpose: Agile methods support government in the iterative and responsive design, implementation, and ongoing management of both functional and mission-oriented projects.

Agile is a set of project management methodologies commonly used by innovative organizations because its practice emphasizes simplicity, quick iteration, and close customer collaboration. Agile is both a philosophy and an umbrella term for a collection of methodologies or approaches that share certain common characteristics. Agile methods are commonly applied in the federal government in contracting, project management, design discovery, and software development.

There is no universally accepted, formal definition for Agile, though one federal Agile practitioner informally defines Agile as:

"an iterative and incremental (evolutionary) approach to software development which is performed in a highly collaborative manner by self-organizing teams within an effective governance framework, with 'just enough' ceremony, that produces high quality solutions, in a cost effective and timely manner which meets the changing needs of its stakeholders." (Source: The White House, " Innovative Contracting Case Studies," August 2014)

The Agile philosophy is embodied in the four tenets of the Agile Manifesto and its 12 associated principles.

Although Agile is not one specific method, there are a variety of common approaches that differ with respect to project approach, resource availability, and desired end result of an Agile project.

Common Agile Methods

Agile Method Framework Description
Extreme Programming (XP) Organizes so customers and developers partner partner around a series of short developmental releases paired with customer testimonials and intensive, continuous code review
Dynamic Systems Development Method (DSDM) Emphasizes business needs/value as the primary criteria for delivery and acceptance of a system while rigorously defining requirements and ensuring reversibility of developments
Features-Driven Development (FDD) Designs and schedules the build around end product's expected and desired features
Kanban Manages a process focused on visualizing a workflow, limiting work-in-progress, and measuring and optimizing lead time
Scrum Provides teams with a process to manage prioritization, implementation, delivery, and testing of iterative work

The variety of Agile methods available must be considered in relation to the intent and expected outcomes of any one intervention. However, adopting an Agile methodology can equip practitioners with one or more of the following outcomes:

Agency practitioners should have an understanding and the resources necessary to incorporate Agile methods in the development and execution of programs, services, and products.

Examples

Below are applications of Agile methods at the federal and state levels, including benefits of using these methodologies, challenges of adopting and how to address them, and common best practices for Agile methods

  1. 1. Department of Justice (DOJ) : Beginning in 2014, the DOJ adopted a Scrum Agile methodology to modernize and consolidate the DOJ website, justice.gov. With early success in implementing version releases on time and to budget, the DOJ overhauled justice.gov across 12 iterations within the Scrum methodology. Scrum Agile lessened project challenges impact and encouraged stakeholder investment as the iterative approach allowed for user testing and feedback during development.
  2. 2. Salt Lake City: The Salt Lake City Information Management Services (IMS) department wanted to implement fresh ways to approach business, so the department leadership established a project management office (PMO) and Agile training series. The Salt Lake City IMS now applies Agile for a variety of projects including software development, system implementations, and upgrades.
  3. 3. State of Maine : The State of Maine moved to Agile processes to better quantify and prove success within initiatives while progressing through them, to avoid risk and project failures at cost. In adopting Agile, the State of Maine established an Agile Center of Excellence (CoE), responsible for equipping project teams with the skills and resources necessary to effectively apply Agile in their culture.

Approach

Benefits of Using Agile

Agile methods enable teams to develop programs, services, and products incrementally and be able to quickly adapt to changing requirements. Other project management methodologies, such as waterfall, are focused on developing a 100% solution upfront. Agile methods differ as they focus on building working increments of a given product or solution that both allows for faster time-to-market and flexibility to change requirements and/or directions for the next version of the program, service, or product. This also reduces lifecycle costs by not creating unnecessary and unwanted components.

Although Agile methods are iterative and build programs, services, or products in increments, they also provide a clear process and structure for discussing priorities and tradeoffs. This generates more accurate assessments of the project state at any given time. The process also requires constant collaboration between contractors and government personnel, increasing the understanding of the requirements which potentially results in a deliverable better suited to the end users' needs.

Other benefits of using Agile Methods include:

(Source: The White House, " Innovative Contracting Case Studies," August 2014)

Any federal agency that develops or purchases software can benefit from Agile – either by embedding Agile practices in its work, or in working with offerors using Agile methods. When adopting Agile – or entering into contracts with Agile-practicing businesses – agencies should be mindful of the various flavors of Agile and select the method(s) that most closely aligns with its goals.

Understanding Agile: Common Challenges

Adoption of any methodology requires a change in the prevailing culture, and adopting Agile is no different. It requires a marked shift in perspective to development from traditional waterfall approaches, with implications for the organization structure, rewards system, communications, decision-making, and staffing model. To meet the challenges of adopting Agile, a program management office can take specific actions:

Additionally, terminology will need to be learned or relearned if terms have different meanings across project teams. Once adopted, however, Agile's transparent nature provides continuous and immediate insight into the project state.

Best Practices when using Agile

In addition to understanding the common benefits and challenges to applying an Agile framework, the Government Accountability Office (GAO) has identified a number of best practices to consider and practice when adopting Agile:

For teams actively adopting Agile methodologies for their projects, follow the guidance below to ensure effective delivery and collaboration among stakeholders throughout the project lifecycle:

Applying the above actions is integral to successful practice of any Agile framework.

Policies

Resources

krnance commented 7 years ago

Table embedded after "Common Agile Methods"

brookarch commented 7 years ago

See #28