top of page

Development Techniques to Improve Product Quality the Agile Way

LK Stewart

The vast majority of techniques commonly used in Agile to ensure and improve the quality of a product throughout development were designed specifically for software development. After all, Agile was originally designed for software development.


This post will mainly focus on how these techniques are effectively applied to Agile software development, but with that being said, some of these techniques can also be generalized and adapted to effectively ensure quality for non-software projects as well.

 

 

 


Quality Management & Agile Projects

Many key aspects of Agile itself will improve the quality of the product if implemented correctly. The key aspects implemented by different Agile frameworks that improve product quality most significantly are outlined below:


Iterative Development: Agile's iterative approach involves delivering functionality incrementally, allowing for continuous feedback and adjustments. This development cycle inherently improves product quality by allowing the team to catch and respond to issues and errors early as well as being able to quickly incorporate feedback [1].


Frequent and Open Communication and Collaboration: An essential part of virtually all Agile frameworks is for the members of the development team to communicate and collaborate frequently and for all team members to be an active part of the team [1] [6].


Agile also includes the product owner as a part of this team and if possible, should take an active role in the development process, frequently communicating with the team and providing feedback about the product at different stages of development [1] [6].

The quality benefits here are twofold:


  • First, the direct engagement between team members helps avoid misunderstandings, redundancies, and produces solutions to problems the project encounters faster.

  • Second, the direct engagement between the product owner and the development team ensures a deeper understanding of user expectations, leading to a product of better quality that more effectively meets the product owner’s needs.

Now remember at the beginning of this section when I said how many key aspects of Agile itself will improve the quality of the product if implemented correctly? The key word in that sentence is correctly.


A frequent talking point of Agile is that an Agile framework will deliver working software faster than traditional waterfall methodologies. While this can be true in many cases, the Agile framework must be implemented correctly otherwise that speed will come at the price of product quality [2].

 

 

 

 

 

Agile Development Techniques To Ensure Product Quality

 

Continuous Integration

Continuous Integration, often shorted to CI, is a quality management technique that focuses on frequent change integrations and keeping an up-to-date central repository for the project [3].


In CI developers merge their code changes into a shared repository, often daily, or even multiple times a day, which triggers automated builds and tests.The frequency helps ensure all team members are working with the most current version of the project and reduces redundancies and miscommunications [3].


Additionally, the automation of builds and tests that run automatically when new changes are integrated helps catch bugs early and helps avoid the unfortunate situation of unknowingly building new code on top of faulty code [3].  





Continuous integration is a technique mainly suited to software development but if you’re an Agile project manager for a non-software project there are still aspects of CI that can be applied to enhance your quality management.


Even if testing can’t be automated, or if testing is only feasible at certain points in the project you can still implement something like a shared workspace to contain all project materials.

 



Test Driven Development

Test Driven Development, or TDD, is a technique commonly used to improve product quality in Agile projects as it naturally fits into Agile’s cyclical development process [5].



 


TDD can be thought of as a testing first development approach. It was originally created for software development and involved creating automated tests for a specific functionality and then writing the code necessary for the test to pass [4].


The idea was that if developers had to think more thoroughly about what the end results of what a specific section of code should be, they would gain a deeper understanding of the project requirements, catch bugs earlier, and write cleaner more streamlined code as a result [4][5].

 


 

Behavior Driven Development

Behavior Driven Development, or BDD, builds off of Test Driven Development. It was first created as a software development technique meant to emphasize communications and collaboration in order to develop better quality, more streamlined software faster [5].


The core of BDD involves teams, together with the product owner, and any shareholders collectively defining testable specifications for how users will interact with the product. Product development is then based around meeting those specifications and passing the tests based on them [5].


 

The BDD technique can play a crucial role in enhancing the overall quality of the product by helping to identify potential misunderstandings and ambiguities in the project requirements early in the development process. It also forces those developing the product to more thoroughly consider how the end product will be used from the very beginning of development [4] [5].


You can probably see how BDD would work particularly well for software development, and that BDD is a technique that is really meant to be used on a project from which clear testable requirements can be created.


However, the core concept of thinking about the project from the user’s perspective and collaborating closely with the product owner about project requirements can still be applied to many other types of Agile projects to help effectively ensure the quality of a product.

 

 

 


Summary

Quality in Agile projects is highly dependent on how Agile principles are implemented and there are a variety of development techniques that can help improve product quality in your Agile project.


All the techniques covered in this post work to improve product quality through frequent communication, enhancing collaboration, and frequent checks and testing. Although the majority of these techniques are meant specifically for software development but have aspects that can be generalized and applied to all types of Agile projects.

 



 

Sources






 

 

 

 

Comments


Commenting has been turned off.

©2024 by Planet Agile. Proudly created with Wix.com

bottom of page