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:
●● A set of engineering best practices that allow for rapid delivery of high-quality software
●● A project management process that encourages frequent evaluation and adaptation
●● A leadership philosophy that promotes collaboration, teamwork, and accountability
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.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.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.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:
●● Early users insight into the actual design and implementation of the solution
●● Early and ongoing developers insight into user behavior, leading to more usable applications
●● The ability to change requirements and priorities throughout the life cycle
●● Opportunities to fail fast and make timely adjustments if the early solution ideas turn out to be flawed. This minimizes the time and money spent before that learning occurs, and enables rapid redirection to be implemented
●● Surfacing and addressing bugs earlier in the process
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:
●● Plan for Agile practices and any deficits in resource skill or knowledge;
●● Address deficits and align resources through continuous Agile training;
●● Anticipate changes in the environment and business model that may affect how Agile is applied and implemented;
●● Be Adaptive. Flexibility is a tenet of Agile and should be of any project team.
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:
●● Start with Agile guidance and an Agile adoption strategy
●● Enhance migration to Agile concepts using Agile terms and examples of those terms
●● Continuously improve Agile adoption at both the project and organization level
●● Seek to identify and address impediments at the organization and project levels
●● 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
Actions and Considerations
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:
●● Build a functioning minimum viable product (MVP) or service that solves a core user need, with a clear agreed-upon project deadline, using a beta or test period if needed
●● Ask for user feedback to see what works well and identify improvements that should be made
●● Ensure people building the service communicate closely, using techniques like war rooms, daily standups, and team chat tools
●● Keep delivery teams small and focused; limit organizational layers that separate these teams from the business owners
●● Release improvements to the product or service according to an appropriate cadence
●● Prioritize improvements and use an issue tracker to catalog them
●● Use a version control system to track and understand iterative changes
●● Ensure entire team has access to the issue tracker and version control system
●● Use quality reviews with each improvement
Applying the above actions is integral to successful practice of any Agile framework.
○○ Section 804 of the NDAA authorizes the Secretary of Defense to recommend IT systems for implementation via project management methods that align to general Agile approaches.
○○ FAR 16.306(d)(2) relates level of effort and iterative cadence within an Agile framework where deliverables are provided according to a fixed period of time (or cadence. This guidance is valuable for structuring of compensation and fees within an Agile development initiative.
Resources
●● The TechFAR Handbookand Digital Services Playbook document the best processes and practices, including Agile, that help to advance smarter IT delivery in the government.
○○ A community effort by Agile government professionals to help educate and empower those who seek to implement Agile processes into their own agencies
○○ This editorial discusses broad challenges to implementing Agile development practices in the government sector, including issues of talent and training, change management, customer engagement, and procurement.
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
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
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:
●● Track progress daily and visibly
Actions and Considerations
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