The term “Agile” is a word that wears many hats. Some people use Agile as a business philosophy, closely following Agile practices in the hopes of improving business operations and management. Others see it as a system for refining programming and software development techniques.
But neither of these explanations are quite right. At its core, Agile is a discipline that can be practiced using a consistent, cyclical pattern of actions used to promote maximized efficiency and simplicity for an entire organization.
Many people do not understand that the point of Agile is to simplify processes, not over complicate them, using Best Practices to support development operations and deliver outcomes of the highest quality.
Another common misunderstanding about Agile is an underestimation of its power to restructure and support even the largest and most established federal departments in the United States and around the world. Even the U.S. Government could benefit from simplified operations, clearer communication, and streamlined progress.
In fact, they might be the ones who need it the most.
The Department of Defense requires a higher level of capacity, flexibility, and responsiveness across its systems and processes, as well as leverage learning and best practices across departments such as the Air Force and Navy.
Without a doubt, the best way to achieve these goals is by implementing Agile practices for systems modernization.
To properly understand how an organization will be transformed by an Agile structure, it is first important for individuals to understand the current, non-Agile structure of many organizations and how it is holding them back.
Site and Contract-Centric Structure
In the typical Site and Contract-Centric Structure, each team is individually managed by a contract. This severely limits the ability for teams to communicate and collaborate, as each team has their own, individual tasks and there are no shared goals across teams.
Due to this lack of collaboration, teams use inconsistent tools and methods, which creates a further lack of unification for the organization.
Unfortunately, when a project is finished and ready to be delivered by the customer, the fragmentation experienced by the teams during processes always follows.
In the Site and Contract-Centric Structure, it is common for teams to have had limited customer engagement and collaboration throughout the development process, which may be detrimental to the success of the entire project, which depends on responsiveness to customer needs.
In order to prevent these negative outcomes, organizations should heavily consider reorganizing teams in an Agile Pod approach. This structure will mitigate lack of collaboration between teams and disjunction with customers.
Roadmap and Release Planning
Another recommendation for large organizations like the Department of Defense is to set aside time before the projects begin in order to plan ahead. The most important tools in this area are Roadmaps and Release Planning.
The first step to planning for your project is creating a Roadmap for your project, or an overview of a project or product’s strategy before the plan is implemented. This extremely useful tool can act as a visual summary that briefly outlines why this project is important and what it will hopefully achieve.
Next, each project should have a Release Plan. A Release Plan is an in-depth, actionable plan of short-term details and activities that will be utilized for a project’s implementation.
Unlike the broad, visual guide that a Roadmap provides, a Release Plan is an internal working document that specifically explains what must be done for a project to be completed.
When used together, Roadmaps and Release Plans create a vital strategy for fulfilling your project goals despite unplanned changes and roadblocks.
The Agile Development Process
Another crucial area of applying Agile practices is following the five-step Agile Development Process. As stated in the beginning of this post, Agile is a disciple. As such, it can be practiced using a set, repeatable process that helps to quickly identify and resolve issues and make preparation and presentation easier.
Below is a very brief description of each of the five steps of the Agile Development Process.
The objective of this step is making sure that all team members have a collective understanding of the work to be done in the current sprint. The Scrum Master, or team leader, will provide the context for the sprint, discussing the previous sprint and priorities of the current sprint, and establishing a clear goal.
Next, the team will go over the backlog to discuss what tasks will need to be completed in the sprint and assign team members to each task. Sprint Planning will be completed when everyone in the team reaches an agreement about what will qualify the project as “complete.”
Finally, teams are free to breakout and begin discussing concrete plans while the Scrum Master performs regular check-ins to ensure that each team is on track.
Sprint Planning should take approximately two to four hours.
This phase is comprised of morning and afternoon standups, that can help inspire productivity for the developers and create visibility for their progress.
In this step, the developers must make sure that they are constantly updating their progress on a physical Kanban Board (a popular tool in Agile processes) as well as online so that the Scrum Master can properly monitor their progress.
Daily Standups (a.m. and p.m.): In this step, the Scrum Master briefly discusses the current status and progress of all activities, including any problem areas, and then assigns workers to assist in problem solving wherever they are needed.
Each standup should only last about fifteen minutes, as this step is for problem identification and not for problem solving. Any further discussion required should be scheduled for separate meetings.
In the sprint demo, team members collaborate to present everything they have accomplished in the sprint, from the perspective of the user, to owners and stakeholders.
The demonstration should include the context of the sprint including the purpose of all new features in relation to the rest of the system, instructions for how to use each feature, and an explanation of issues encountered in the sprint and how they were mitigated.
Finally, in sprint "retros," teams will review the process, approach, and solution for the current sprint, looking to learn from mistakes and identifying potential improvements that can be applied in following sprints.
The Scrum Master will begin this step by outlining the progress and issues raised during the sprint. Next, the team should discuss these issues. This includes giving input, making suggestions, and concluding by reviewing documenting what was discussed.
This whole step should take about an hour and a half to two hours.
Architecture Alignment refers to the process of making sure that an organization's infrastructure, application, and business architecture designs are all working toward the same, organization-wide goals.
One real-life example of a company with successful architecture alignment is the world-wide popular music streaming service, Spotify. The company uses a Scaled Agile framework in which individual teams are provided with the opportunity to choose their own Agile models that can adapt to the ways they work.
Since each team has their own model, each has their own unique mission or project goals. Despite having individual missions, each one ultimately contributes toward maintaining a company-wide strategy.
Learning and Best Practices
Finally, when applying Agile practices for the improvement of your organization, you must always utilize Learning and Best Practices.
Learning in agile development simply refers to learning from past mistakes, data, and customer feedback to assure that your processes are improving each time you start a new cycle or project.
Best Practices refer to a large set of recommended actions to perform while practicing Agile to ensure maximum efficiency, communication, and simplicity in your projects.
Some Agile Best Practices include:
- Learning from past performance and customer feedback
- Working in small, Agile teams/pods with coordination across groups
- Consistent collaboration with users and clients
- Utilizing sprints and the five-step Agile Development Process
Collaboration-Centric Agile Approach
Once Agile practices have been implemented for product implementation and sustainment, the transformation of your company will be apparent. Your small teams/Agile pods will enjoy clear communication with management and other teams and a common understanding of your organization’s goals and objectives.
In addition, your Agile processes will be flexible enough to support scalable resource allocation as well as to mitigate unexpected changes.
Perhaps the most valuable improvement, however, is the “blending” of Agile teams and clients that allows close collaboration across all teams and contracts to ensure that expectations and feedback can flow easily from client to development operations personnel.
With everyone on the same page, operations and processes will enjoy maximized efficiency, simplicity, consistency, and early mitigation of issues.