What Is the Agile Method?
Agile is a software developmental method that sets a framework for development work in iterations based on requirements of the end-user.
Agile is a customer-centric approach to development where customer-feedback on the existing product version plays a key role in developing the next version. Unlike the waterfall method that takes a linear approach to development and completing it in full, agile focuses on delivering based on established user-needs and updating it in iterations to stay up-to-date on market and user behaviors. Click here to learn more about the differences between agile and waterfall development methods.
Some of the key advantages of using agile method for development are:
- Reduced resource wastage from long development cycles that risk producing out-dated products and features.
- Agile teams are more capable of quickly responding to customer feedback and market needs, hence is a customer-centric framework.
- Development teams are in alignment and focused only on the build’s delivery, which reduces work-in-progress and issues of bottlenecks and backlogs.
- Agile teams are leaner, since the development is done in iterative cycles and therefore drastically reduces the need for more human resources
- There is a greater team-collaboration and work-ownership arising out of the agile principles of self-accountability in work deliveries.
4 Key Types of Agile Frameworks in Use Today
While agile is the lynch-pin methodology, it has grown out into several specialized frameworks, each focusing on improving a stage of the development cycle. Below are 4 key agile frameworks in use today:
- Kanban: Focuses on streamlining development work by reducing the amount of work-in-progress (WIP).
- Scrum: Focuses on building collaboration-driven team independence, with each team member taking ownership of their work at an individual and team-level with least supervision needed to get deliveries on time.
- Feature-driven development: Focuses on prioritizing features requests from customers and clients, through a customer-centric and value-focused developmental philosophy.
- Crystal/ Lean: Focuses on increasing the capacity for individual members to take decisions autonomously for faster, de-centralized day-to-day decision making, and seeks to reduce bottlenecks from decision delays.
Agile Development Life-Cycle
- Feasibility testing
Feasibility studies are fundamental before taking upon any product development method, and agile is no different. Infact, agile focuses on user-satisfaction at every iteration, and testing the request features for cost-benefit analysis is key to decision making each sprint.
- Team alignment
Once a product/ feature has passed feasibility tests, the next step key to any agile framework is team alignment on all aspects of development, DevOps and quality assurance (QA). This step determines the team’s capacity to be in sync with each other’s work and responsibilities, clarity on utility and value of the work; and to collaborate effectively to deliver the final sprint on time.
- Product definition
“Creating product vision, feature roadmap and prioritization” – Product managers create a product and feature roadmap that is both compelling and achievable. They use their in-depth understanding of the target customer’s needs as well as the capabilities of the engineering team and the technologies available. Using this understanding, they create a product backlog to ship the right features at the right time.
- Development and QA
Once the teams are aligned, development work begins as per the sprint plan. Once handed over from the developers, the updates go to QA teams for quality test. If QA clears the update, it proceeds to user-testing, else it goes back to the developers with notes on which components did not pass the test and why.
Once QA clears the product/product update, it passes to external user-testing. These users may still be internally employed and compose a panel of 2 or more people. While QA only looks for compatibility as per original design, user-testing seeks to identify issues in experience gaps, such as inadequate navigation, aesthetics, intuitiveness and ease-of-use. Based on user-test results, a product may go back to developers for final patches.
The product/update iteration goes into production on a planned day. This day is chosen typically on a down-time, that is, when there are least users on the platform to avoid adversely affecting experience for maximum number of users. The update time showed be reduced as much as possible.
- Monitoring and customer feedback
Once produced, the product is closely monitored for any issues for at least 24-48 hours. Even after this period, teams must be set up to monitor error reports and lining them up for the next sprint. Some critical errors may be pushed out in a mid-cycle build, while others are prioritized in upcoming sprints.
At the same time, the customer experience and service teams watch the communication lines for customer feedback and/or may actively seek customer feedback after they have used the updated product for a certain time-period. This feedback is then collected, tested for feasibility and then enters the development cycle.
Best Practice Principles for Agile Development
The below best practices are derived from the central tenants for each framework that uses agile methodology, that in turn improve the implementation of the method itself:
- Limit work-in-progress to streamline continuous development
Limiting work-in-progress in any agile development process is a series of steps to reduce the current work-load on developers till it reaches a point where development can occur efficiently (from an ROI and business goals perspective), while not clogging the production pipeline.
The goal is to have a sustainable and scalable production system in place that can work independently, without requiring constant fixes and issue resolutions to clear bottlenecks and backlogs.
This gives the product managers to identify weaknesses in the pipeline, and to resolve them or to reduce the workload till it functions adequately. This is tough to accomplish when you already have a clogged production machine, and reducing the existing workload on the larger production machine enables you to pressure-test particular teams and developers and identify where the issue lies.
- Designate a meeting/scrum master
Invariant of whether you aim for a scrum method of development with daily scrum meetings conducted by the scrum master, any team using an agile framework may find it beneficial to have a scrum-type meeting in place at least once a week.
The scrum meeting is a quick-check on planned items, work-completed, work-in-progress on that day/week, bottlenecks, backlogs and upcoming work. Each member is given 2-3 minutes for a quick recall before moving on to the next person.
A scrum ensures that commitment-points are met, while allowing teams and members to largely work independently once the meeting is over.
- Enable cross-team collaboration with tech-stack
Enabling the various teams involved in the final sprint development is key to ensuring streamlined product roadmap delivery. Since agile works on the philosophy of individual ownership of work, collaboration will be key to ensuring quality of output.
In the post-Covid lockdown world, teams are largely working remotely and having the right technology-stack has become a necessity. Companies today have the freedom to choose point-solutions for collaboration and task management solutions or can aim for larger product management software.
- Use visual aids for roadmapping and progress management
Visual boards such as Kanban and Scrum boards may be physical or digital boards for product roadmapping and ensuring team alignment on tasks, in-progress and backlogs.
Humans are proven to be driven by visuals and having a visual chart that maps the plan and progress brings immense clarity. Since most employees today work remotely, a physical board may no longer suffice even for small teams and product managers need to prioritize acquiring the right technology tool for their team.