Years ago, when the agile manifesto was written, it focused on four core values that later changed the course of the software development industry.
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
What about the bugs?
In a perfect world, bugs don’t exist. But neither is this a perfect world nor is any software ever perfect. You have to make room for mistakes and errors that are inevitable, even if top bug management tools are in place. Agile development teams require a plan to manage bugs that don’t interfere with their agile process.
Avoiding Bugs: Individuals and Interactions
One of the best ways of dealing with bugs is to empower all of the individual developers to avoid bugs in the first place. While companies continue to use and deploy test-driven development, it’s important to make use of individuals and interactions, a rigorous code review to be precise. Interaction between developers in this way ensures a tight code with minimal defects.
Code is submitted by the developers from a branch, and team members can test and pull changes, view affected files and change sets, submit a new version, vote on the request, and ultimately reject or merge the request. One way to interpret the agile manifesto to avoid bugs is to have multiple individuals interact in this way.
Resolving Bugs Quickly: Working Software
Instead of working on a documented policy about dealing with bugs, focus on resolving them quickly using bug management tools, especially the blocker bugs. It’s always better to fix them as they are discovered and include them in the current sprint whenever there is capacity. There’s always an option of rolling back to the previously deployed working version within eight minutes of discovering a bug when the issue can’t be resolved right away.
While there is no single hard and fast rule that needs to be followed by all teams on all projects, it is always better to fix issues sooner than later, maintain lean inventory, and always ensure that the product is working.
Test Cases and Customer Success: Customer Collaboration
Customer-developer collaboration is always key to a project’s success. Together, it’s important to understand the issue to resolve it quickly. Then comes the part of writing test cases.
Post-Deploy Monitoring: Responding to Change
Many teams witness that users often find new ways to customize the software to their workflow. A feature may be designed for a certain use case but when it’s used in a completely different way, bugs emerge. Post-deploy monitoring is the only way through which these ongoing changes can be responded to.
This is the most suitable way of responding to the changing requirements of customers and the changing uses of products.