4 steps to agile success
- By Matthew Schenck
- Jul 19, 2017
There’s a noticeable shift toward agile development taking place within the federal government. Driven by a need for accelerated application development and meeting internal customers’ needs on the very first attempt, agencies like the General Services Administration and Department of Homeland Security have begun to move away from traditional waterfall project management frameworks and toward iterative, agile frameworks like scrum.
Whether agencies are well into this shift or just embarking on it, they’ll need to implement strategies that allow them to effectively scale their agile development projects. Relatively easy in small-team environments, agile development can become much more challenging in agencies with larger IT practices. While there is no silver bullet for organizations seeking to become agile, adhering to the following four-step approach can help them build out their agile practices and accelerate development.
1. Build teams the right way
Everything in agile is about team rather than individual throughput, so choosing the right agile development team is a critical first step. In today’s development environment, team members’ roles will often -- and should -- overlap, creating a more collaborative and fluid development process. Team members must themselves be highly adaptable and possess the courage to modify their processes as they learn more about their products, development realities and the changing needs of government end users.
Individuals should feel comfortable working with agile frameworks like scrum and its various “ceremonies” -- sprint planning, sprint reviews, sprint retrospectives and stand-ups. During these meetings, team members must be willing to share what they’ve learned and be upfront about a project’s status so they can continue to learn, grow and succeed as a group. For example, team members should feel encouraged to ask scrum masters (i.e., project managers) for feedback on how retrospectives have helped shape planning meetings; product owners should be compelled to discuss what they learned about the solution during the last sprint review; and so forth.
Ceremonies are only as valuable as the information that comes out of them that the team can use. With these insights teams can continually refine their development approach and direction so they can deliver the products their customers need.
2. Implement the right tools
While in-person ceremonies are important, it’s equally critical for agencies to deploy appropriate tools to help teams keep track of progress and spot problems prior to deployment.
Since transparency is key, agencies should consider implementing collaboration tools that allow team members to share and access information on roles, status updates, potential issues and more. These tools keep teams organized and informed on where things stand at any given time during fast-moving development cycles.
Initially, teams can use something as simple as sticky notes to create user stories, plan sprints, assign tasks to team members and track workloads. Eventually, as accurate project planning and tracking become more important, software tools can provide agile teams with automated calculations and permission-based visibility.
Greater visibility can also lead to fewer defects and security flaws prior to deployment. For example, a piece of code that has gotten through the workflow but has not been subject to a peer review could introduce vulnerabilities into the finished product. Correctly configured tools that track progress from requirement to source code can greatly reduce the chance of bugs causing havoc for end users.
3. Use data to track progress
Tools also generate reports and metrics that can help shape the development process and gauge the overall health and success of agile teams. Burndown charts, which show the amount of work left to do versus the amount of time available, provide insight into whether or not teams are delivering on forecasts, honoring the integrity of their sprints, managing unanticipated scope changes and more. Velocity charts can monitor development speed during the course of a project and a team's delivery on its promises. Finally, version reports -- also called release reports -- can be used to see the team’s progress toward the completion of a version.
Collectively, these data points form a complete picture of the agile development process and help identify areas of improvement. Those insights can be applied to the next development cycle -- further emphasizing the core agile tenet of continuous learning as a means of consistently improving the development process.
4. Pack your patience
That may seem like an odd statement in an article about accelerated development, but implementing agile in a waterfall environment is bound to test one’s patience. Migrating from waterfall to agile is the equivalent of moving from a blade server to a virtual IT environment. It requires a much more elastic approach to everything from IT operations to management expectations. That’s going to take time, but the process has been proven to work. Making the move can result in fewer failed projects, improved collaboration and teamwork, enhanced software development and greater agility and innovation.
Matthew Schenck is an enterprise solutions engineering manager with Atlassian.