When I worked in my second company, they had a Software Quality initiative. The Quality mission statement was pretty simple, and percolated to all levels of the organisation. That was:
Do It Right The First Time, Every Time!
It made a lot of sense to me. As I do my activities even today, when I remember this phrase, this helps me in getting all the relevant information and parameters into consideration, and then performing the act. This avoids wastage of rework, and saves our time, energy, and money.
Looking at the current situation in Software right now, we are obsessed with continuous integration and continuous delivery in fast pipelines. The fast and immediate effect of change taking effect is indeed gratifying, but if I had thought well about all the parameters and artichitectured/designed/coded it right the first time, would there be any need for multiple iterations?
Ah, the customer requirements and market realities keep changing – you may say! I would still push back and say that your product management / marketing department has not done enough due diligence to find out all the influencing factors into consideration so that they knew what’s coming and developing the product with the market expectations!
Far fetched? Not really. Unless you have a big production line delivering 200 features a day, your CI/CD pipeline should not be buzzing on an hourly basis.
Software Testing folks can help by giving their inputs on requirements to the product management and marketing while the requirements are being finalized.
So, watch out when you commit next time. Could this change commit have been avoided by some foresight thinking and planning?
What is your Software Quality strategy? How would you approach Software Quality? When you design or code, would you consider all attributes of your Software Quality strategy upfront to avoid rework? Do you collect statistics on how much time and effort you save by avoiding rework?
Tell us in the comments below!