If you want to adopt RST for yourself, you don’t need anyone’s permission or coordination. That’s personal matter. But if you want a team or a whole company to adopt RST, that’s going to require patient, persistent leadership. Here are some of the keys to success.
1. Learn about RST.
To lead technical people, even if you aren’t doing any of the work yourself, requires something called interactional expertise. Even if you are an upper manager, you need to know enough about testing to be a good customer of testing services. You need to follow progress closely and ask sharp questions about it. That means, even as a leader who is not doing hands-on testing work, you should learn about RST. Otherwise, the excellence of the people working for you will be determined entirely and only according to each practitioner’s personal standard, which tends to drift lower as people discover what they can get away with.
2. Establish or re-establish the role of “responsible tester.”
Many Agilists are suspicious about the word “role.” But a role is, among other things, an agreement to handle certain kinds of problems, should they arise. It’s reasonable to wonder why everyone on the project team doesn’t just agree to handle every kind of problem that could arise in the project.
The answer is clear: some kinds of problems require special preparation, competence, commitment, or coordination. The orientation you need to handle one kind of problem may make it difficult to handle others. If you’ve ever tried to work at home while taking care of small children, then you know exactly what we mean.
The spirit of Agile is that everyone helps everyone. This is why Agilists are justifiably nervous about roles becoming “silos.” However, we find that roles don’t have to be silos. They can be villas — open and spacious; providing focus without confining us. Just as you can live in a villa, yet come and go as you please, roles can be taken on and put aside from day to day or hour to hour. You can also invite people, as honoured guests, into the villa that you look after.
In RST, we recognize three kinds of testing role: supporting tester, responsible tester, and test lead (or coach):
- A supporting tester is someone who helps testing but is not responsible for the quality of their work. This means that, while testing, either they work under supervision (e.g. a trainee tester or a senior developer who offers to help test for an afternoon) or else no one relies on the quality of their own work (e.g. a beta tester out in the field who may or may not report a problem). It also means that someone cheerfully helps them with aspects of the work that might be less appealing, like the setup, cleanup, and administrative tasks. That someone is the reponsible tester.
- A responsible tester (inspired by “able seaman” and “pilot in command“) is someone who is responsible for the quality of their own work. Responsible testers can work without supervision, and know the difference between good work and bad work. They only do work they believe is good, within the context at hand. A responsible tester who feels that good work is not possible will raise the issue to the client and resolve it.
- A test lead, or coach, is responsible for supervising, facilitating, or coaching the work of others. Leads have a duty not just to test, but to make better testers. A big part of test leadership on an Agile project is to get people with other roles, especially developers, to test well when they are temporarily operating with a testing role.
What we mean by establishing (or re-establishing) the role of “responsible tester” is to make clear that some person (or persons) needs to take responsibility for the testing. That means to prepare in advance to be ready to test at the right time, to improve their testing competence over time, to commit to dealing with any testing problems that arise or are brought to them, and to coordinate with the rest of the team to make all this happen.
We believe that unless testing is someone’s focus, it will not be anyone’s competence, nor will it be anyone’s commitment.
3. Give responsible testers a little too much freedom.
Freedom, wisdom, responsibility are essential elements of excellent technical work. Does that sound like new-agey pablum? Well, think about what freedom means.
Freedom can be thought of as options plus agency: the availability of possible moves along with the liberty to choose among them. Freedom is relative. There can be no perfect freedom, because some choices contradict or constrain others, and because of obvious limits of physical reality. But any freedom worth talking about must encompass bad choices — those with the potential to harm you or someone else. Freedom without the power to choose trouble is the “freedom” of a prisoner in a strait jacket. Free speech would mean nothing, for instance, if you were only free to speak what didn’t upset anyone.
Freedom is important in technical work for at least two reasons. First, in order to solve problems there must be solutions available. Availability depends on the freedom to search for solutions or to develop them. Second, technical work is expensive to supervise closely, and constant supervision tends to reduce motivation and inhibit experimentation.
Therefore, good technical work at a reasonable cost requires that workers have a high degree of freedom. This raises the question: Whom do we trust with the power to make potentially bad choices? Think about it this way:
- Freedom is the power to make bad choices.
- but, wisdom is knowing how not to make bad choices.
- and, responsibility is choosing not to make bad choices.
In the world of testing, you can’t just assume that you will find ready-made wise and responsible people to hire. Many testers are new to the field. Others with experience have not received training; have not worked in a wide variety of roles; have not studied the craft. Few have reflected on professional standards or ethics. There are no serious qualification programs out there for testers. So, how do testers develop wisdom and responsibility?
They develop it partly by having a little too much freedom.
Rita Mae Brown once quipped, “Good judgment comes from experience, and experience comes from bad judgment.” We all know this from our lives as children. We needed the freedom to experiment in order to discover how to talk, how to walk, and how to get along with others. We all had to do some fighting in order to learn how to avoid fights. We all had to experience hurting other people’s feelings to learn deeply why kindness matters.
4. Foster good work; then require it.
As a leader, it’s your job to create the conditions necessary for good work to happen. A key purpose of testing is to find problems in peoples’ creations, which makes it a socially awkward role. A leader must protect the bearers of bad news. Reasonable training for you and your team (whether via self-education or some other method) is an ongoing requirement. Your organization must support that. You must also foster testability within the project. But arguably the most important element lies completely within you and your own behavior: your insistence on good work.
Some say that “self-organizing teams” mean that middle and upper management no longer has a role in how the work gets done. That’s a misunderstanding of self-organization. Yes, a self-organized team controls how it works, but management ultimately sets standards for excellence and makes those standards a reality. Whomever the responsible testers are, they need to know that you care about the quality of their work, and that you will question it and critique it. If no one in leadership will do that, either because they can’t or they won’t, then your organization is settling for mediocrity or worse.
Here’s a final thought. There are six major things you must manage to effect positive change in any organization. If you neglect any one of these, your work will be all the slower and more painful:
- Focus: It has to be someone’s priority to spend sustained time and energy to solve this problem instead of some other problem.
- Bandwidth: The people involved need sufficient time and energy available to get the job done.
- Skills: The people involved need to know how to solve the problem.
- Infrastructure: Your people need space, equipment, and tools to support the work. This includes facilities, machinery, processes, software tools, and any other services required to support the efforts of people trying to solve the problem.
- Difficulty: If you are trying to do too much at once, it’s possible that nothing will get done at all.
- Culture: If what you want to do is not aligned with the underlying culture of your organization (which incorporates both attitudes and personalities), maintaining focus will require constant intervention.
To make testing better, someone has to work on it. That person cannot be overburdened with other work, and probably needs to build new skills. New tools may be required. Don’t try to do everything at once. And finally, you have to ask yourself, are your people excited about testing? You may have to get them excited about it before anything else can get done.