Software Quality and Agile/SCRUM Development
I have been asked why Agile? Its just a buzz word, we will be back to waterfall in no time, We do not really know if Agile development improves software quality or productivity.
The answer is, Agile is not a way of doing software development, but the only way of doing business. We at SW-Quality.com believe in Agile/SCRUM/Iterative development for developing high quality products. Agile development helps us build Software Quality in the product. We have our own proprietary approach to Agile/SCRUM development. Utilizing this form of Agile development forms the core of our beliefs that quality is built in to the software.
Below are the basics of Agile development as recommended by SW-Quality.com. The principles below allow for a Software Reliability Growth model to be built in to your Agile/SCRUM process.
- Your design has to be modular, leading to independently verifiable software components.
- Automated development testing, so we can make incremental changes and verify them
- Automated regression test as we add incremental changes to validate we have not broken existing code base
- A Continuous Integration/Continuous Delivery process that enables incremental changes
- 1,2, 3 & 4 allow for a Software Reliability growth model to be built in to the Agile/SCRUM process (Building Quality into the product)
- Rapid root cause analyses and defect escape metrics to show us where the majority of defects are and how we can learn “in development phase”. (We have metrics that work with Agile development that we recommend)
- A cross functional team works best in an agile world
Please contact us or post us your views on the agile approach.
Another reason to use Agile development is the predictability of the work, i.e.,
Lets assume I have a 1000 requirements, that translate in to 100,000 Lines of Code (LOC). if I am to use cross functional teams, and I have 10 teams available, then I want to be able to break the work into 10 teams as “equally” as possible. We can predict “100 requirements” a lot easier than predicting 1000 requirements.
Agile development truly allows us to divide and conquer when it comes to Software development, and hence another very important reason to use Agile.
Please share your experience on Agile development and Software Quality. Can you provide any suggestions for us? Can we help you?
This post is authored by Vivek Vasudeva