Agile ideal for federal software development – with a few caveats
The concept of Agile software was first introduced back in 2001. Since that time, Agile's popularity has grown tremendously. Countless organizations, in both the public and private sectors, now rely heavily on Agile for all or most of their software development needs.
"It is often best for agencies to pursue a synthesized form of Agile development."
And understandably so. When utilized effectively, Agile software development offers significant advantages over more traditional approaches, including superior flexibility and responsiveness. With these and other benefits, Agile development is quickly becoming the standard for many organizations – including the federal government. However, it is critical for federal decision-makers to recognize that there are a few factors which can mitigate its value. As a result, it is often best for agencies to pursue a synthesized form of Agile development, one which includes advantages inherent to more traditional development strategies.
Agile for the feds
The federal embrace of Agile software development has been progressing for some time. Notably, The Association for Enterprise Information, a nonprofit firm with a focus on government IT, hosted the Agile in Government: Mutual Adaptation conference. The event addressed a number of issues in this space, including the question of how Agile methods can fit within the context of heavily proscribed government acquisition policies. Various attendees shared their experiences with using Agile to streamline and improve software development efforts.
The very existence of this conference highlights both Agile's growing popularity among federal decision-makers and the fact that this approach is not yet universally embraced by these leaders.
The same could also be said of the Agile Government Handbook. Developed by the Agile Government Leadership organization, which advocates in favor of Agile, the handbook is supposed to serve as a tool for public sector professionals looking to improve their Agile knowledge and efforts.
Agile's growing role for federal agencies is not purely a matter of specific tactics. In a significant sense, Agile development is more of a philosophy than purely a set of development strategies. Agile emphasizes tackling large projects in small, easier-to-handle increments. As NextGov reported, Federal Chief Technology Officer Megan Smith embraced this approach during her keynote speech at the ACT-IAC Igniting Innovation event.
"What's the minimum thing we could launch?" said Smith, the source reported. "Let's not 'spec' the whole huge thing out. Let's do the minimum thing and then get it out there and start iterating with the community."
By embracing this philosophy, federal agencies' IT departments can avoid delays and better allocate their resources on an ongoing basis.
All of this goes to show that Agile software development is quickly gaining adherents among federal agencies, and Agile proponents are eager to push for even greater adoption. Yet this does not mean that Agile can or should be the default option for every federal software development project. On the contrary, a purely Agile-based approach may lead to complications and other problems.
"Many Agile groups struggle to scale up their Scrum efforts to match project needs."
One of the biggest issues in this area is scalability. Speaking to InfoQ, industry expert Gunther Verhyen emphasized that many Agile groups struggle to scale up their Scrum efforts to match project needs.
"The pressure is so high that entire development organizations are turned around toward agile development with Scrum at a pace that is not feasible," Verhyen said, the source reported.
This does not mean that Agile cannot work in these situations. However, it does suggest that it is not necessary the best choice.
This highlights the value of an alternative approach to software development, one that combines Agile's flexibility with traditional, milestone-driven methods. Such an strategy enables federal agencies to strike the ideal balance for their unique needs and goals, maximizing value and efficiency for all software development efforts.