Case Study - How we calibrated NPS from -ve to +ve

I have taken up a variety of roles and have grown to C-level role in engineering & delivery with teams and customers spanning across the geography. I completed a management degree from a premium reputed institution and PhD in computer applications specialised in software quality. Learnt the end to end in building quality software, making a business out of it and serving the needs of not only customers, employees but all stakeholders. Also invested and advised a few of the startups in terms of the tech direction, efficiency and the market needs.

SaaS and Cloud deliveries meant, customers are becoming more non forgiving on quality and dates. NPS, CSAT, CCR, FCR, MAU are some of the metrics that are being monitored.

Has the scenario changed esp. for quality? I decided to do a survey and here are the details (will leave it for your conclusion!)

A survey on software test automation return on investment, in organizations predominantly from Bengaluru, India.

One of the leading startups, had setup a complete CI/CD process and still their NPS was in the negative of thirties and they were firefighting through day & weekends! They had requested me to prune and fix it.

When I went in, I saw quality was an after thought! There was so much of resistance to bring in quality and after inching against all the resistance, several measures and a year later we managed to get the NPS to the upwards of positive forties! Of course it was a team effort. Once we achieved that we sat down to educate the team and advocating to revise the KPIs to the next level. One such item to be revised was velocity. There were a lot of items listed there pretty much covered every single metric, measure and action. One of the architects (good intentions of course! :) got up and said, all these are heavily leaned on quality and started to write a few “dev” items on the flipchart! The items were unit tests, clean code, code review, PR review checklist, impact analysis etc (there were in the original list…) I was wondering, aren't they all quality related items? In fact the choice that each developer makes, to choose an approach to write a line of code for a purpose, is a decision based on quality!

Is my code addressing the right solution to the problem statement in an efficient manner? Is my code testable? Is my code maintainable with minimal cost? Will my code handle the negative scenarios? Will my code yield results in optimised time? Is my code addressing the security & compliance requirements? Will my code be compatible with the claimed factors? Is my code coverage up to the mark? The quality of the code is owned by the person who writes the code.

Unless this is the case, mere automation will not yield any results… (a topic on its own!), a sure shot way for the management to be unhappy and clueless!

Then we have to heavily rely on the quality team! And they, of course should be well versed with multiple facets like; technology used, its pitfalls, scenarios, performance, security, compliance, tailoring test data and most importantly the architecture, code, problem, solution, users and the market space etc. With low code and no code becoming the norm, we need quality developers! Functional automation is at the tail end of the development/delivery process, it can only succeed when each stage has paid their quality tax appropriately with tangible tests and repeatable results.

I have noticed, when a tester turns a developer/architect they are the best kind! They happily pay the mundane quality taxes during all the stages like discovery/requirements stage, unit tests, test-hooks, contract tests to ensure the code is testable. Most of the backend are UI less and testers who can code as well as understand the ROI on their activity, produce the best effective results. Understanding the math behind the test data formulation, logic, sequence and critical paths is the key to write efficient & effective tests for these kind of applications. 

Yes, rather than being just a "click click pass/fail" tester, if you really know how to evaluate the application under test, layer by layer, contribute to the quality tax at each stage, then you will see best results and these in-turn further fuels your passion!

window.lintrk('track', { conversion_id: 9887532 }); window.lintrk('track', { conversion_id: 9887604 });