Agile Government Handbook

Connect

Join the LinkedIn group for community discussions and idea sharing.

Subscribe

Stay up to date on the latest agile government news, events, and jobs.

Contribute

Join the working group and help others who are bringing Agile to government.

Learn

Explore self-directed online courses for using Agile in government projects.

About Agile

Agile management or agile project management is an iterative and incremental method of managing the design and build activities for engineering, information technology, and new product or service development projects in a highly flexible and interactive manner. (Source: Wikipedia)

History

On February 11-13, 2001, 17 representatives from Extreme Programming, Scrum, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic Programming and others sympathetic to the need for an alternative to documentation driven, heavyweight software development processes convened. The result was the Agile Manifesto. (Source: agilemanifesto.org)

Agile Manifesto

We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.”

Principles behind the Manifesto

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  • Business people and developers must work together daily throughout the project.
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  • Working software is the primary measure of progress.
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Continuous attention to technical excellence and good design enhances agility.
  • Simplicity — the art of maximizing the amount of work not done — is essential.
  • The best architectures, requirements, and designs emerge from self-organizing teams.
  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

(Source: Principles behind the Agile Manifesto)

GOV.UK on Agile

Benefits

The U.S. federal TechFAR Handbook highlights six key reasons why government should adopt Agile for IT project management and development.

  • Improvement in investment manageability and budgetary feasibility
  • Reduction of overall risk
  • Frequent delivery of usable capabilities that provide value to customers more rapidly
  • Increased flexibility
  • Creation of new opportunities for small businesses
  • Greater visibility into contractor performance

(Source: The TechFAR Handbook for Procuring Digital Services Using Agile Processes)

Roles

The U.S. federal TechFAR Handbook offers examples of key government and contractor team members needed to effectively support Agile software development.

Government

Tester: Government user to test features and functionality of the system.

Contracting Officer (CO): Authorized to bind the Government contractually and direct contractor action.

Contracting Officer’s Representative (COR): Performs functions specifically delegated to them by the CO in writing for the particular contract/order. This individual may also serve as the Product Owner.

Project Manager: Government manager of the Agile process. Also sometimes called Scrum Master.

Legal: Provides legal review of all documents and actions.

Contractor

Developers*: Software architects who design the system and write code.

Project Manager: Manages the team’s execution of the project.

Tester: Tests features and functionality of system to uncover software bugs in functional and non-functional areas of the system; ensures system functionality.

Interface: Ensures system can communicate with other systems or people as needed. This is not a required team member; membership depends on project needs.

*Cross functional individuals should occupy these roles (developers and testers are both able to work each position). Automated testing is encouraged where the tester can write and run automated tests that are supplemented with exploratory testing. (Source: The TechFAR Handbook for Procuring Digital Services Using Agile Processes)

Terms

Continuous delivery: A design practice used in software development to automate and improve the process of software delivery. (Source: Wikipedia)

Kanban: A visual process management system that tells what to produce, when to produce it, and how much to produce. (Source: Wikipedia)

Retrospective: A meeting held by a project team at the end of a project or process (often after an iteration) to discuss what was successful about the project or time period covered by that retrospective (Source: Wikipedia) See also: Running retrospectives

Scrum: An iterative and incremental agile software development framework for managing product development (Source: Wikipedia)

Sprint cycles: A “timeboxed” effort; that is, it is restricted to a specific duration.[14] The duration is fixed in advance for each sprint and is normally between one week and one month, although two weeks is typical. (Source: Wikipedia) See also: Features of agile

Stand-ups: A meeting with attendees typically standing. The discomfort of standing for long periods helps to keep the meetings short. The meetings are usually timeboxed to 5–15 minutes and are held standing up to remind people to keep the meeting short and to-the-point. There are three questions to ask and answer in the daily stand-up (“What did I accomplish yesterday?” / “What will I do today?” / “What obstacles are impeding my progress?”) (Source: Wikipedia) See also: Features of agile

User stories: One or more sentences in the everyday or business language of the end user or user of a system that captures what a user does or needs to do as part of his or her job function.(Source: Wikipedia)

See also: Writing user stories, 5 ways to help user research work better in agile

Best Practices

In July 2012, the U.S. Government Accountability Office identified 10 practices for applying Agile software development methods to IT projects.

From the GAO report:

“The practices generally align with five key software development project management activities: strategic planning, organizational commitment and collaboration, preparation, execution, and evaluation. Officials who have used Agile methods on federal projects generally agreed that these practices are effective.”

10 best practices

  1. Start with Agile guidance and an Agile adoption strategy.
  2. Enhance migration to Agile concepts using Agile terms, such as user stories (used to convey requirements), and Agile examples, such as demonstrating how to write a user story.
  3. Continuously improve Agile adoption at both the project level and organization level.
  4. Seek to identify and address impediments at the organization and project levels.
  5. Obtain stakeholder/customer feedback frequently.
  6. Empower small, cross-functional teams.
  7. Include requirements related to security and progress monitoring in your queue of unfinished work (the backlog).
  8. Gain trust by demonstrating value at the end of each iteration.
  9. Track progress using tools and metrics.
  10. Track progress daily and visibly.

(Source: U.S. Government Accountability Office, Effective Practices and Federal Challenges in Applying Agile Methods)

Checklist

Every Agile team should make sure they:

  • Ship a functioning “minimum viable product” (MVP) that solves a core user need addressed by the service as soon as possible, and not longer than three months from the beginning of any new digital project, using a “beta” or “test” period if needed
  • Run usability tests frequently to see how well the service works for users, and identify improvements that should be made
  • Ensure the individuals building the service are in close communication using techniques such as 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 features and improvements multiple times each month
  • Create a prioritized list of features and bugs, also known as the “feature backlog” and “bug backlog”
  • Use an “issue tracker” to catalog features and bugs
  • Use a source code version control system
  • Ensure entire team has access to the issue tracker and version control system
  • Use code reviews to ensure quality

Running an Agile project in government

Key Questions

Important questions to ask when executing Agile projects:

  • How long did it take to ship the MVP? If it has not shipped yet, when will it?
  • How long does it take for a production deployment?
  • How long in days are the iterations/sprints?
  • Which source code version control system is being used?
  • What tool is being used to track bugs and issue tickets?
  • What tool is being used to manage the feature backlog?
  • How often do you review and reprioritize the items in your feature and bug backlog?
  • How do you collect user feedback during development and how is that feedback to improve the service?
  • At each stage of usability testing, what gaps were identified in addressing user needs?

(Source: U.S. Digital Services Playbook)