2 min read

An approach to improve software quality

Practical insights on integrating quality practices into agile software development, from involving team members in detailed requirement elicitation and design reviews to fostering a shared responsibility for quality.

AgileSoftware DevelopmentQuality AssuranceProject Management
An approach to improve software quality

In agile projects we test our deliveries frequently. We do not wait until end of the implementation of all functionalities so quality can be ensured throughout the development process. I think that there are several good practices can be embodied to software development process to increase quality of software products.

  1. After overall high level requirements are shaped, they are broken down to detailed user stories. During detailed requirement elicitation phase and describing user stories acceptance criteria, I think that involvement of team members who will deliver that user story is important. I personally experienced how different aspects from different team members helped us to create well defined user stories. Especially testing aspect enriches acceptance criteria and give developers different point of views. Better defined acceptance criteria will help team to implement it in a right way.
  2. Discussions about overall system between team members who are going to develop and test the system will increase shared understanding about how system works as a whole. This is going to help creating better test cases. Better defined test cases will help team to identify problems before they get too expensive to solve.
  3. Design specifications needs to be reviewed by team members but not just by team members who will implement related functionality. At least one team members who is going to design test cases and execute them needs to review design specification. End user perspective is very critical for sure. However, it is not enough to come up with comprehensive test cases. When system design is well known by team members, quality of test cases will get better.
  4. Team members who are working on a feature (designing, developing, testing) are responsible for delivering it with required quality. Team members who are more focused on testing of the system can't be seen as only responsible for the quality. It is responsibility of the team. If there are silos within the team as development and test, it is better to take a step back and rethink about the team.