Implementing agile development methodologies in a government setting can be quite difficult. Government agencies often want to know upfront exactly what they’re getting, and exactly what it will cost. From an agile development perspective, this is a major challenge.
According to Agile In A Nutshell, “Agile is a time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end. It works by breaking projects down into little bits of user functionality called user stories, prioritizing them, and then continuously delivering them in short two week cycles called iterations.” Clearly, this sounds nothing like the fixed terms a government agency is often seeking. So how do you implement an agile framework within a fixed scope project? Here’s how we do it.
Our team works with a fixed number of cycles, which means we give the client a set amount of work we can do for them, but not precisely what that work will be. So instead of agreeing to finish building a new feature, for example, we’ll agree to give them X number of tickets that we can guarantee will be completed. This simultaneously allows our team to do agile work, and also ensures for the client that they will get those X number of tickets completed in a certain period of time. What each ticket will address specifically is not fixed, which allows us to work with our stakeholders to set priorities on an ongoing basis, and allows for changing priorities throughout the duration of the project.
These cycles are also sold at a specific service level agreement, so for example, we might say that all tickets will be completed within 20 days, which allows the team to staff the project however they need to in order to meet that requirement. From the government agency perspective, we aren’t selling “people” for a project, but “capacity” to do the work, so that our development teams can allocate resources appropriately.
The result is a win-win resolution: the client pays a firm fixed price contract for a pre-determined amount of work, and is comfortable knowing that they get a certain amount of work done every 20 days. Our dev team, meanwhile, has the leniency and flexibility to determine how their hours are allocated during that time to maximize efficiency and achieve results.