As a Canada and India-based software developer that also offers software testing services, we have noticed similar trends in these markets and even the world when it comes to software development and testing. Among other things, we have, as a rule, noticed that there is a time during the software development lifecycle when software testing moves away from keeping business needs in sight and focuses only on removing bugs.
The result is not very pretty. In usual cases, what happens is this:
- The bugs are usually removed to the extent possible.
- The developer moves away from the end-use perspective into a more bug-removal frame of mind.
- The client’s eyes glaze over when the developer talks of technical details, and goes away accepting the bug-free software.
- In a few days, he realises that the software is not that great to use. Bugs may not exist but the overall flow is amiss and users – even devoted ones – find themselves increasingly ignoring the solution and going back to tried and tested ways to get the job done.
The end result? The software does not deliver and the client money and effort go waste.
The problems are compounded for customer-facing software. Unlike the employee who is already sold (somewhat, if not all) on the software, the clients do not have any such allegiance and will at first berate the solution for all the ills in the world and then stop using it entirely, preferring instead to move to a competitor. The result is a considerable loss in revenues, especially if you remember that winning back disgruntled customers is a tough job.
Besides the failure of the software, loss of motivation among employee, loss of money and of customers, the erosion in brand value is also another factor to keep in mind.
The best way to take care of this is to keep a clear focus on the end result. As an IT services provider in India and Canada, we find it useful if we tell our developers and Q&A people what is expected out of the software when it is implemented. This ensures that we do not lose focus on the end-business needs.
As a software development services provider with expertise in software testing, here is what we do to ensure our products are tested without compromising on business needs or technical expertise:
- We clearly understand what the client needs and break-down their requirements into smaller components
- We ask about the end user, his habits, times when the software will be used, etc. This helps us understand the end-user environment better
- We also get an idea of the budget and possibility to upgrade the solution with newer updates
- The solution is then formulated on paper and possible issues identified
- The client is made aware of likely problems and workarounds are agreed on after discussions
- The development then starts, all the while keeping the business needs in mind. Any changes to the original plan are approved only after client sign-off
This clear-cut process allows us to get the work done faster and better than what would have been otherwise possible.