Federal agencies face a number of core challenges when scaling agile software development. The process begins at the team level, wherein groups of five or ten developers define, build, and test their software over a period of a couple of weeks. From there it moves on to the program level, which delivers sections of a particular Value Stream in program increments; and finally to the portfolio level, wherein completed programs are aligned with an enterprise’s business strategy. And at all of these levels, there are challenges to be addressed.
Many of those challenges ultimately boil down to issues with governance, collaboration, and transparency. These are exacerbated by several factors: the use of third party contractors, the variety of team-level tools employed, lack of co-location, and the dynamic nature of agile itself. In order to solve these challenges, agencies need a broad approach to their agile transformation that includes strategy at the team, program, portfolio, and enterprise levels. They also need to employ the tooling required to facilitate the planning, execution, and analytics of large scale agile projects. Let’s take a look at some of the challenges inherent in governance, collaboration, and transparency, and how to solve them.
Many large agile initiatives at the team level mix federal workers with independent contractors. Each team uses their own individual tools and unique methodologies to do their assigned work, which makes that work difficult to audit and oversee. With everyone working in their own way, then it becomes difficult for project leaders to justify changes in direction or re-allocation of resources—and even once those changes have been made, it’s nearly impossible to audit them.
The solution is to integrate directly with multiple team-level tools, so that teams can work the way they want, while still providing visibility into their work. This way, teams can provide traceability to help you validate all work, people, and releases connected to any story, feature, or epic. Furthermore, it’s important to provide CFOs and CTOs with the capitalization and budgeting reports needed for those with ultimate fiduciary responsibility. This way, despite differing tools and methodologies, everyone can be on the same page.
These differing tools and methodologies can not only hinder governance, but also overall project communication. Each team has between five and ten members, but in large complex projects, there may be dozens or even hundreds of different teams, all working together—or trying to. On that scale, connecting strategy to execution becomes increasingly difficult. Communication is key in both directions. Top-down communication infuses team-level developers with a sense of purpose, while bottom-up communication consolidates progress and reporting across disparate teams to a centralized resource. Both are critical. But dependencies and risks become harder and more difficult to manage the larger and more dispersed the teams are. If you’re not careful, it can become a case of too many cooks spoiling the broth.
To solve this problem, everyone needs to start with a unified vision. Organizations should first define their strategy at the highest level, then flow it down to the work being done, so that despite different projects and different methodologies, everyone is working from the same playbook. Teams should then report back up the ladder via roadmaps, forecasts, and status reports, to ensure that they’re following the strategy given them. Also, employ advanced dependency and risk identification capabilities to support cross-team collaboration where it matters most.
Shortened cycle times, rapid response requirements, and the dynamic nature of agile all make transparency in development more important than ever. Traditional team-level agile tools don’t provide the transparency and reporting required across the full program, portfolio, or enterprise levels. And the use of third party contractors to execute much of the work exacerbates this need.
The solution is to provide full top-to-bottom visibility across every team, release, and feature being developed, regardless of location, development methodology, or tool. Everyone’s work, both federal workers and independent contractors, is tracked, and the data is stored in a central location. That way, anyone with program or portfolio level access can get instant visibility into the status and plans of any team in their purview.
Any endeavor that involves hundreds or even thousands of people working together is bound to be difficult to manage. And with something as complex as agile software development, it may seem next to impossible to get what you need in terms of governance, collaboration, and transparency. But with a little bit of planning and the right tools, you can have everyone working in harmony, and ensure a final product that meets your needs.
How have you overcome these challenges when scaling agile at a federal agency? Share you experience in the comments section below.