Agile at scale
Over the last few years, government agencies have clearly recognized the need to embrace agile development methods, which enable teams to deliver software releases in a matter of a few weeks to provide high-value features to fulfill rapidly evolving mission needs.
Traditional waterfall methods were wrought with several well-known problems rooted in a lack of flexibility and requiring years of rigid planning, design and development. Organizations within the government and their external partners have brought in new skills and capabilities to help agencies get better at understanding how to effectively leverage lightweight agile frameworks and methods within the government context where scale, complexity and a unique regulatory environment require special consideration.
However, we have long ways to go as evidenced by a recent survey in which federal IT leaders were asked to grade their agencies' effort related to agile development. Around 60 percent of respondents graded themselves at "C" or lower for agile adoption, streamlining their systems development processes and aligning IT management and governance. It isn't surprising that there were few grades of "A" and "B," because the concept of Agile is relatively new, gaining prominence in 2001 with the publication of "The Manifest for Agile Software Development" by a set of 17 pioneers in the field. Only over the last six years or so have many of the popular Agile frameworks, tools and practices become available to suit the needs of large organizations.
Scaling agile development methods and practices for high-risk and complex modernization initiatives is a significant challenge. Agile practices such as iterations, scrums, burndown charts, daily meetings and task boards sometimes miss the "big picture" of high-risk modernizations. I have outlined three practices and techniques that could that can help address the challenges of scaling agile development.
Enable cultural evolution: Agile is as much about culture and core values as it is about principles and practices. This requires agency leaders to champion a "lean/agile" mindset throughout the organization and improve awareness of how agile development processes work in contrast to waterfall methods across all functions -- IT, programs, acquisition, business line/mission owners and end users. For example, program owners typically worry that if they do not address all of their requirements in the first release, they may not get them any time soon. So leaders must establish credibility with them and let them know that they will get all of the features they need in increments every few weeks.
Combine emergent design with intentional architecture: Agile development uses the principle of emergent design where the best architectures, requirements and designs emerge from self-organizing teams and the design evolves hand-in-hand with business functionality. However, this is not sufficient for managing large-scale government programs. Development teams need some intentional architecture – a set of purposeful, planned architectural guidelines that enhance solution design, performance and usability -- to provide the guidance needed to ensure that the whole system is fit for its purpose. Achieving the right balance of emergent design and intentional architecture is the key to developing large-scale systems effectively.
Adopt agile governance: As organizations transition to an enterprise agile model, it becomes extremely critical to establish a governance framework that enables delivery via agile methods while honoring the government's fiduciary, security and privacy responsibilities and improving time-to-market and accomplishing the mission outcomes. It is critical that this governance process provides the ability for senior government leaders and their industry partners to see the big picture as well as understand and manage risks associated with large-scale modernization. This big picture should be very simple and at the same time show all aspects of the process. In addition to scrum development plans, particular focus should be on infrastructure readiness, user authentication, data migration activities, internal/external interfaces, user acceptance, user training, security authorization process and end-to-end performance testing.
Ultimately, ensuring that all agency agile development efforts align to meeting mission objectives is critical to success.