The Production environment must be considered “sacred”. If the previous processes have been conducted thoughtfully and with a huge amount of dedication and hard work, the application that finds its home in production should make work easier for the end user. It must be remembered that the end user pays the bills. The value the application adds to the end users work is a direct reflection of your quality assurance efforts. Wikipedia has the best explanation of software testing I can find. Here is a quote.
Software testing can be stated as the process of validating and verifying that a computer program/application/product:
- meets the requirements that guided its design and development,
- works as expected,
- can be implemented with the same characteristics,
- and satisfies the needs of stakeholders.
No application is deployed without bugs. The perfect software test would require a knowledge of all the possible ways an end user will engage with the application. Since this cannot be known, having a well rounded and ever expanding set of test scripts is the best way to reduce errors to a minimum. Understanding that there will be system deficiencies caused by unintentional design, coding or environmental errors (bugs) a strong customer support process must be in place to identify, confirm and report issues. It takes cross departmental effort to create, but also support and maintain software.
We now find ourselves where we started; that is forming consensus. Software is not developed, tested and used in a vacuum. Consensus is the engine that drives the development of applications that add and retain value. This agreement must exist at all stages of the process. Input from customers, developers, operations and customer support members as well as sales and finance is vital. I find the quality of an application is more impacted by the quality of the consensus than any other factor. The quality assurance manager can architect the best environments, tests and plans, but if consensus does not exist even the best intentions will remain unfulfilled.
In the past I have shunned meetings as much as possible. At the same time I wondered why my efforts as quality assurance manager were not being understood. Meetings offer an opportunity to understand the goals and concerns of each department impacted by the software under test. Empathic decisions lead to consensus and consensus leads to better software and ultimately stronger businesses and possibly exciting new business opportunities.
Further resources (books that helped me form these thoughts)
- Mastering the Rockefeller Habits: What You Must Do to Increase the Value of Your Growing Firm
- The Athena Doctrine: How Women (and the Men Who Think Like Them) Will Rule the Future
Click here for guidelines to planning software quality assurance projects.