Team Collaboration in Agile for the Software Quality
Team Collaboration in Agile for the Software Quality
Transitioning to agile requires a cultural change. Learn techniques to collaborate and break the mini waterfall culture for achieving the software quality
Join the DZone community and get the full member experience.Join For Free
Agile practices are widely adopted by all companies. Many software teams have transitioned from waterfall to Agile practices. Are we sure all of them correctly adopted Agile practices? Teams would have transitioned waterfall practices to mini waterfall practices just because of Agile.
Unlearning is the toughest thing than learning new things. Agile practices are cultural change. The cultural changes are the most complex ones to break.
Agile practices are about working together to achieve software quality. It is not directed by one person on what to do? It needs the maturity of the team members to proactively pick up the work from the backlog and collaborate to achieve the software goal. Team members must be proactive in all activities of software development. They should not expect someone to guide or push for getting things done.
The Risk of Mini Waterfall
In the waterfall method, the teams would be creating walls like development and Testing as separate phases of software development. After shifting to Agile practices, high chances of creating similar walls in sprints.
There will be an attitude of throwing up a code for testing. It is an attitude carried forward from the waterfall practice. I have done the development now it is your turn will be the tone of development teams. The tone of QA is I have identified plenty of bugs in your code now it is your turn to fix them. The juggling between Development and QA teams will be the biggest risk for software quality.
One of the most important aspects of Agile practice is to collaborate between the Development and QA teams. The aim is not about how many bugs are identified by QA rather how many bugs avoided as a team together. The cycle of identifying bugs and fixing them will create more churn in the code and it will become very fragile.
As we all know the cost of bug increases depending on how late it was found in the software. QA's role in Agile practices is not about identifying the bug rather how the bugs can be prevented.
First cultural change should be about breaking the barriers between the teams. All team members should work together. It is about sharing responsibilities than dividing the responsibilities. All team members must be involved in all activities. To be successful in Agile we must break the practice of creating phases in software development.
How to work together?
There will be a lot of questions and arguments about working together. The skills of development and QA are different, how is it possible to work together. It is because of that reason I quoted it is about sharing responsibilities than dividing responsibilities.
The responsibility of requirement analysis should not be divided and assigned only to an analyst. The dividing responsibility is in the waterfall. All other team members look up to Analysts to provide all requirements.
In a collaborated approach, the developers, testers all work together to detail the requirements. All business rules are identified and agreed upon by them.
It will help to make the requirements crisp and clear. Any bugs in the requirements will be identified in the first place. The team brainstormed together to fill the gaps. QA will not wait for their turn to identify the gaps. This way it will ensure the implementation is more robust and free from bugs.
The teams transitioned from Waterfall are inclined to divide the sprint of 10 days to 7 days for development and 3 days for testing. It is called a mini waterfall. The true Agile is to break this division of iteration into Development and testing. Hence it is a cultural change to shift from waterfall to Agile.
The thought process of Agile is completely different from the waterfall thought process. The process of dividing the iteration into two phases will end up with the below issues.
- More issues are found in the last 3 days
- No time for fixing the issues as they were found late in the iteration
- More number of bugs will block the deeper or regression testing
- A high rate of spillover. It is better to spill over instead of skipping the testing
Level the ground: The acceptance criteria are defined by both development and testers together. So both of them are clear on the end goal of the deliverables. It will avoid the functional bugs as no gap in understanding of requirements
User stories splitting: In case the sprint is 10 days long, the team debate it is not possible to create stories completed in 10 days. Yes again, it is a cultural change. The teams in the waterfall are always thought about bigger requirements, development cycle, QA cycle, etc.,
The story splitting is a very important exercise in agile practice. The team must be open-minded to split the user stories. We should create stories with less number of business rules. It is ok to create a story even with a single business rule in case of complexity.
Working together: Now it is about executing the stories with a smaller scope. Developer and Tester should be collocated and work together on the user story. Both should communicate very often. As and when the story is ready, it should be tested immediately and give feedback to the developer. The developer would be in constant touch with the tester on acceptance criteria so fewer bugs and more quality.
The above process will help to achieve
- No bugs in the backlog
- Avoid spillover
- Regression test cases are not postponed
- Helps to do deeper testing
All the above benefits will help to push the deliverables on the completion of a sprint.
Right at the First
The stories must be developed right at first. The more bug will have more patches to the software. More the patches more the breaking points. The software will become very fragile. So it is very important to get things right at first.
Agile methodology is a cultural change. Be open to the change for better agile practices. I hope the tips in this article will help to implement better agile practices.
Opinions expressed by DZone contributors are their own.