The Agile Process 101: Understanding the Benefits of Using Agile Methodology
The agile mindset really took root in the early 2000’s, when a group of programming pioneers set out to improve software development delivery. After years of mismanaged software delivery projects with unsatisfactory results, the agile process enabled delivery leaders a way to produce software reliably and quickly, with less rework. But what does it really mean for organizations? And what are the benefits?
A recent report by CollabNet One shows that 97 percent of organizations are now practicing agile development methods. While agile projects are almost 30 percent more successful than traditional projects, only 22 percent of respondents reported that all their teams are agile, 26 percent are more than half and 48 percent are less than half.
The secret of agile’s popularity lies in the ability to move software development solutions to market more quickly. From advocating early delivery, continual development, adaptive planning, and being flexible regarding response to changes, agile software development enables cross functional teams to develop and iterate, producing minimum viable products (MVPs) easier. Feedback is gathered and implemented continually. This dynamic process allows teams to work together towards one goal.
Agile is not as much a methodology as it is a set of values, ideals and goals. Scrum and kanban are implementations of agile. Both practices are implemented differently while having the same foundation, the Agile Manifesto. They have specific, measurable and quantifiable procedures and processes. Both share the goal of breaking down projects into smaller chunks and focusing on continuous testing. The number one performance gain of agile is preventing rework. Applying either process in your company will help you spot deficiencies sooner and allow you the clarity to fix any problems that arise during the process, rather than at the end of the project. Being most effective, while adding business value, should be the end goal.
Manifesto clearly specifies the fundamental principles of the agile approach:
“Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan.”
“A big emphasis in agile is predictability and visibility.” Joshua Armstrong, Technical Architect, nvisia
As you think about your own agile software development practices, consider the following best practices, as taken from our own consultants at nvisia:
- Use iterative development
This is a hallmark of the agile software development practice. Bigger projects are broken down into smaller chunks and continuous testing is done. In Scrum, tasks will be prioritized into sprints. Each member of the sprint will be responsible for specific tasks to complete during the sprint. In Kanban, iteration is not time-bound but implemented per task.
- Don’t lose track of your daily standups
The more consistent you are with your daily standups the less backtracking and rework you will have to do. Development Team members should be prepared to discuss what has gone well or been completed, along with any concerns or roadblocks they may have incurred. Team members need to come prepared with answers to: What did I get done in the last 24 hours? What am I going to do in the next 24 hours? And what help do I need in order to get my work done?
There should be transparency of work so that each member is responsible for a portion of the work and know the responsibilities of their team members. Other recommendations include adhering to the “time box”: standups should not exceed 15 minutes and reserving long discussions for your weekly huddle or set up a meeting to follow.
“If longer discussions are needed, a promise between affected team members to follow-up after the stand-up works wonders to keep the session moving and also ensure follow through to resolution.” Jim Ash, Product Management Principal, CSM, nvisia
- Set clean communications guidelines for your teams
This is where transparency comes into play. Each sprint should have clear and prioritized tasks and each member should know what part of the sprint/task they are responsible for. During daily standups, progress and any concerns (at a high level) should be discussed to prevent rework. Members should arrange to follow-up after for more in depth discussion and resolution.
- Ensure feedback (from end user) is continuous and transparent
Feedback from the end user throughout is imperative. The agile process, in nature, is a collaborative process. At the beginning, expectations and goals should be discussed and used for road mapping. During the process, continuous feedback is necessary in navigating any issues or adjustments to deliver a satisfactory end product.
“In Scrum and Kanban, the end user requirements should anchor everything you do.” Joshua Armstrong, Technical Architect, nvisia
“Make sure in agile to look at it from a customer lens and what business value you can drive. Often, there isn’t enough communication with the end user.” Jurek Dzierzanowski, Managing Director, nvisia
- Focus on flow. Try to reduce starts and stops.
Every time you stop a process, your team is going to lose momentum and cohesion. They are going to lose valuable brain “state” and productivity. By minimizing starts and stops, you minimize context switching that must be done by the technical team.
“The project becomes this conglomeration of interlocking user stories that provide the full amount of required business value.” Joshua Armstrong, Technical Architect, nvisia
Keep in mind, the main idea of agile implementation is to point out deficiencies in your current process. It is not intended to be a quick, easy or a painless adoption. These frameworks are in place to help you identify what needs to change or be adapted in order to get the benefits you are looking for. If you have never done agile before, we suggest starting with Scrum because it is easier to implement – and to implement in small groups rather than across your enterprise.
Up next, we will explore how to assess and optimize your agile process that will improve your overall process effectiveness. If your organization is looking to improve its overall agile process performance, don’t hesitate to reach out to nvisia.
We’ve also included some resources for you from our team of agile experts:
- “Agile Testing: A Practical Guide for Testers and Agile Teams”; Lisa Crispin; 2008; click here to learn more on Amazon
- “Scrum Handbook: Single Team Scrum”; Dan Rawsthorne and Doug Shimp; 2018; click here to learn more on Amazon
- “Adaptive Code: Agile Coding with Design Patterns and SOLID Principles”; Gary McLean Hall; 2017; click here to learn more on Amazon
Next Up: Agile Methodology 201
If you liked this post, check out our Agile Methodology 201: How to Assess Your Agile Process & Spot Critical Gaps to Improve Your ROI