Grassroots Testing: A Campaign for Improvement


With the votes cast, the polls closed, and the candidates elected, we say farewell to another political season that captivated everyone in a way that we thought only the Super Bowl could. Of all the soap opera-esque drama that occurred during the general election, Dion Johnson found grassroots campaigns to be the most interesting because they generated the greatest level of success from the bottom up, as opposed to from the top down. He believes the world of software testing can learn a lot from this grassroots approach. In this week's column, Dion embarks on a grassroots campaign trail that he hopes will get any process improvement initiative elected.

Grassroots movements are among the most powerful for getting things accomplished because they are driven by the people. Too often solo attempts at instituting improvements to testing processes fail because we don't connect with the people that will ultimately be electing and driving these improvements. We become mavericks that pull out our best practices and formal test process improvement models and use them to let everyone know how poorly they are currently conducting business. The recipients of our condescension view mavericks as "testing elitists"—a.k.a. "The Establishment," "The Man," or "The Machine"—trying to keep them down. This creates a disconnect between us, the mavericks, and the people, which ultimately results in our failure to institute improvements.

To succeed in implementing positive improvements on a project—specifically improvements that are not driven by and strongly supported by upper-level management—it often becomes necessary to organize a grassroots testing process improvement campaign. The key elements of this campaign are as follows:

  • Talk with and understand the constituents
  • Become one of the people
  • Become the people's champion
  • Accept the people's call for improvement

Talk with and Understand the Constituents
We can view our projects as the community, where managers and peers represent the constituents of the project. Talking with constituents is important for getting a clear picture of the needs and issues of the people. The project constituents often are unreceptive to implementing process improvement initiatives, but as much as we'd like to dismiss them as being shortsighted or having no vision, it is not always their fault. Part of the problem is that we start our campaign by attempting to impose traditional power structures, known as best practices, that instill in us many preconceived notions without truly conveying what is going on around us. If we start with open minds and truly listen to people instead of just waiting for our turn to talk, we'll get a lot farther.

Close-mindedness will assure failure in any campaign, especially if you make grandiose campaign promises without understanding how they will be funded or if you don't understand the full scope of the project environment. For example, attempting to implement a time-consuming process-improvement initiative in an environment that relies heavily on schedules probably won't gain you any points in the polls. It's like a politician who plans to repave the roads but says that raising taxes is necessary to do it. Everyone likes the prospect of eliminating potholes, but no one likes taxes! That politician won't be winning many votes.

As you're listening to and gathering information from your constituents, you may want to takes notes regarding the following topics:

  • Stated goals and objectives
  • Systems and environments
  • Roles and responsibilities (including your boss's management style)
  • Processes (defined and undefined)
  • Current tools that support processes (automated and manual)
  • Historical data

Become One of the People
As you begin to learn about the people, you have to become one of them. Test process improvements are often rejected simply because the constituents believe the improvements are nothing more than a self-serving attempt by someone to make a name for himself. They don't believe that the improvements really are meant for the good of the project. It takes sincerity and hard work to become one of the people. Keep a low profile, and let your work speak for itself. Exercise the current processes to the maximum extent of proficiency and productivity to a point that is far above and beyond what is expected. Producing positive results will always be more beneficial than focusing on improvements because it will eliminate the belief that you're offering a new process simply because you don't understand the existing one.

Become the People's Champion
The next step is to become the people's champion. As you illustrate an understanding of current processes and procedures, interject personal enhancements. Don't attempt to drastically change any processes; merely make them more convenient and streamlined. As you get the enhancement to work for yourself, share it with one or more of your team members. This calls for humility. Forfeit personal glory by presenting ideas directly to individuals with whom you later may have to share credit—in lieu of presenting them to the powers-that-be in the organization. By providing something useful to others on the team in confidence, you begin to build their trust and support. You want to be perceived as being helpful.

An example of a personal enhancement involves improving methods of preparing test data. If test data is currently being prepared manually, identify an algorithm for preparing the data, and then create a simple automated script to execute the algorithm. (Use a free scripting language if no other tools are available.) This type of improvement probably will not be very time-consuming, won't cost a significant amount of money to implement, and won't make wholesale changes to the existing processes. What it might do, however, is reduce to minutes a process that takes hours. Anyone can appreciate that—particularly the resource whose time you've just saved. The best part is that through small successes you'll find an ally that is willing to champion you and your causes.

Accept the People's Call for Improvement
As you consistently produce positive results in the project's current environment, all the while subtly improving that environment, you will begin to instill your constituents with a high-level of confidence in you. They will begin to sense that you understand the organization's goals and are looking to truly add value, not just promote your own agenda for selfish reasons. This will create a relationship in which you don't have to sell test process improvements anymore.

Your results, plus the results of peers that you've helped, will create a thirst and excitement among management and other peers that will energize your campaign for improvement in a way that you never could have done on your own. At this point, you can begin slowly to introduce more formal models and approaches for test process improvements that are sure to be decisively elected.

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.