Knowing that vacationers were looking for information about hiking and camping in national forests, the U.S. Forest Service (USFS) undertook a project to create an Interactive Visitor Map. The USFS hoped to provide visitors with an easy way to discover and explore recreational opportunities across 193 million acres of National Forest System land – including 371,000 miles of roads, 158,000 trail miles and more than 24,000 recreational sites – and stay connected and up-to-date on current news and tips through social media and crowd-sourced content.
When developing this type of project, many government agencies take the “waterfall” approach. First a request for proposal (RFP) is issued, which includes the project specifications. Once selected, the development team would go to work building software to meet these specs, culminating in a completed project for review several months later. But the waterfall methodology often fell short because it wasn’t flexible enough to easily address evolving requirements of the agencies, or account for changes in the market and end user needs.
The USFS defied this conventional approach, opting instead to follow the lead of the businesses community, which uses proven agile software development practices. The USFS knew that the agile methodology would enable it to more quickly bring the Interactive Visitor Map to the public, and adapt it over time to ensure vacationers were getting the information they desired to plan their trips.
The USFS is not alone in change the way it proceeds with new software-based projects. Many forward-looking government agencies are applying agile development practices, enabling them more quickly, efficiently and cost-effectively deliver the software, apps and online services that they, and their constituents, require.
For years, businesses have applied agile methodologies to drive innovation. Agile development results in frequent iterations of the software and constant input from key stakeholders at every step of the project. This approach significantly reduces the risk of delivering inadequate or obsolete software. With it, agencies can quickly meet the needs of citizens and gain transparency throughout the development process. It also saves valuable taxpayers dollars by reducing the time to market and the need to do costly updates or upgrades.
Old habits die hard
Getting the government to use an agile approach can take some finessing. Most agencies are accustomed to the waterfall methodology because that’s what they’ve done for years.
But in today’s tech-savvy world, development speed is critical, considering that the lifespan of an average web application can be as short as 12 months. By the time an application is developed from beginning to end using the waterfall approach, the stakeholders have often lost interest or the application is obsolete for today’s dynamic marketplace.
When time to market is critical
Agile development delivers working software iteratively, typically every two weeks. Stakeholders see the progress and have something tangible to interact with, then provide feedback. This approach engages stakeholders, enabling them to witness their vision come to life and generating new ideas based on their personal interactions with the software. They also are able to evaluate functionality with hands-on experience, which results in stronger buy-in by all parties and greater user adoption. Getting such feedback early – and often – significantly improves the likelihood that developers will provide clients with software that is useful and meets their needs.
By its very nature, software development is both risky and complicated. But when software is developed for a government agency, it is even more so. The federal procurement process includes security requirements, such as Federal Information Security Management Act (FISMA) compliance, which adds to the time required to deliver useful solutions and functionality. And, you also must consider the various groups – including IT, business units, private citizens and end users – who have a stake in the success of the project, and therefore opinions on how it is developed and implemented. So much input from a variety of stakeholders can wreak havoc on the project schedule and budget. Agile methodologies give developers useful tools to manage changes in priorities and requirements, while addressing stakeholder input and delivering working software throughout the process.
A collaborative process
Collaboration is the key to a successful agile project. In traditional waterfall projects, the work is completed in phases where specialists work independently on specific areas of the project. Business analysts gather requirements analysts. Designers generate the architecture. Databases specialists develop databases. Programmers write the code. Then, finally, the testers identify bugs. With so many people involved in different steps of the project, you can often end up with a game of pass the buck when problems arise or components are missing.
In agile projects, a cross-functional team works with the product owner. Having a dedicated product owner is essential to success. This role is best suited for a person from the business unit who understands the users and can make informed decisions about how the software should function. Once a product owner is in place, this person will participate in the collaborative process. The product owner must be able to easily answer questions that arise from developers, a key to removing any guesswork so the software can be delivered right the first time.
For a government project, the product owner should be a representative from the government organization and be interested in meeting with the development team daily. While the idea of daily meetings can be daunting, because it appears to be way too time consuming. But once they experience the benefits of this close collaboration, and see the results, most clients won’t settle for anything less. One comment we hear often is how much easier it is to keep up with the project if you invest 15 to 30 minutes a day with the development team. Many agencies find that by being closely involved, they get the software they actually need, rather than what was originally defined in the specifications document.
Achieving results with agile development
Several government agencies are successfully leveraging agile development for web-based applications. We have worked on agile projects for the USFS, Bureau of Ocean Energy Management (BOEM) and National Oceanic and Atmospheric Administration (NOAA).
In the case of the Interactive Visitor Map, the USFS included its need for agile development as part of the RFP process, which called for software that could provide an online view of Forest Service roads, trails, recreation sites, wilderness areas, and wild and scenic rivers, from personal computers, smartphones or tablets, and integrates with social media. The USFS map application was built in one year by a team of nine, including a product owner, a scrum master (a facilitator for an agile development team who manages the process for how information is exchanged) and a cross-functional team of application developers.
The agile methodology enabled the USFS to systematically improve the map’s usability and deliver richer content, based on feedback from a range of real users, including USFS rangers, who use it as a primary resource to answer visitors’ questions. The general public has seen value in the map, as well, using it to plan trips, as well as share images and details about their favorite destinations.
The USFS expects to continue making refinements to the map, including the ability to more precisely geolocate Tweets and expansion of the content into a mobile app that is functional in environments where there is limited or no internet connectivity.
New applications, like the Interactive Visitor Map, clearly show the benefits of agile development for government agencies. The collaborative and iterative approach results in solutions that can quickly be introduced to market, perform well and are user friendly, meet government security standards, and, perhaps most importantly, help government run efficiently and provide a high level of service to citizens.