What is good enough? What does it mean to be done with a task, iteration, or project? What does it mean to be fast and have acceptable quality?
In the software development world we often struggle with these questions. As a quality assurance / testing professional, I can always find more to test. I have never seen a product released with zero defects. The major role of a QA / test engineer is to provide information to both the technical (development) and business (customer) teams. As we rapidly give feedback to developers, we help them avoid defects and adding unnecessary features to the software. When we give information to customers, it enables them to make critical decisions for their business. As QA / test engineers, we perform a balancing act between helping our teams receive timely and appropriate tasks and accomplishing iterations and projects as fast as possible, while ensuring acceptable quality.
To excel in this role, teams need to communicate well with both the development and customer teams. They need to help establish a common understanding of requirements and help the team develop acceptance criteria. Acceptance criteria can include both entrance and exit criteria into various phases of an iteration or project. Acceptance criteria are the key to establishing a trusting relationship with the customer (meaning that we do what we say we will do). However, I am not advocating a big, heavy process. Actually, I advocate for agile methods. I believe that there should be just enough process to enable the necessary communication between teams and the customer. In my experience, teams that communicate well need very little process.
If QA / test professionals’ biggest responsibility is to provide feedback information to developers, then it is imperative that their tasks are prioritized in a timely manner. If a developer receives feedback on code finished six months ago, how quickly will that developer be able to regain context to find a solution? If a customer finds out the day the product is scheduled to ship that two of the five new features are not working, it does not leave the customer with acceptable options. Therefore, it is absolutely critical for QA / test team members to communicate early and often. We need to be as transparent as possible with all the work we are doing.
If we follow these basic principles, we will be able to deliver faster, with acceptable quality, because we will have agreed in advance what is good enough, what it means to be done, what is fast enough, and what is acceptable quality.
Tim Anderson is the ICS director of quality assurance for the Church.