Skip to main content

skip to main content

developerWorks  >  Rational  >

Warriors of QA: Part 1 -- Battle strategies for high-performing testers

developerWorks
Document options

Document options requiring JavaScript are not displayed

Discuss


Rate this page

Help us improve this content


Level: Introductory

Laura Rose, Design Partner Program Manager, IBM 

15 Apr 2008

Journal icon from The Rational Edge: Read how a veteran quality assurance engineer uses ancient Chinese writer Sun Tzu's The Art of War as a guide to effective testing throughout the software development lifecycle.

From The Rational Edge.

warrior Let's face it: software testers are constantly in a state of warfare, figuratively speaking. There's a tug of war between resources and the amount of work that needs to be done. We struggle against time. We juggle between finding defects and validating fixes. In short, we are warriors, and it's the high-performing testers who are successful in battle.

In this article, I will consider ancient strategies from Sun Tzu's book The Art of War and apply them to the realm of the high-performing software test engineer. These same fundamental principles define our best means for success on the battlefield, in the board room, or in the development labs.

A brief introduction to The Art of War

Sun Tzu was a practical philosopher who wrote the The Art of War approximately 500 B.C. For centuries The Art of War was held in the highest regard among both Chinese and Japanese military and political strategists. In 2001, Gerald Michaelson translated these strategies for the business world in his book titled The Art of War for Managers.

Many books cover similar strategies for business and socially minded people (The 100 Simple Secrets of Successful People, The Seven Habits of Highly Effective People, and Getting to YES: Negotiating Agreement without Giving In, just to name just a few), but I think that returning to an ancient source is fascinating, and besides, when it comes to pure strategy, we can hardly improve on the fundamentals laid out by Sun Tzu.

Michaelson translated Sun Tzu's strategies into thirteen sections. Borrowing against both Master Sun's and Michaelson's ideas, I've "translated" this work even further to focus specifically on what is most relevant to the high-performing software test engineer. I found Michaelson's categories and subtitles very useful, so I have structured my discussion in a similar manner, as follows:

  • Laying Plans
    • Thoroughly Assessing Conditions
    • Compare Attributes
    • Look for Strategic Turns
  • Waging War
    • Marshal Adequate Resources
    • Make Time Your Ally
    • Everyone Must Profit from Victories
    • Know Your Craft
  • Attack by Stratagem
    • Win Without Fighting
    • Strength Against Weakness -- Always
    • Beware of "High-Level Dumb"
    • Obey Fundamental Principles

That will get us to the end of this article, Part 1. Subsequent parts will cover the following remaining areas, each with its own subsections:

  • Disposition of Military Strength
  • Use of Energy
  • Weakness and Strength
  • Maneuvering
  • Variation of Tactics
  • On the March
  • Terrain
  • The Nine Varieties of Ground
  • Attack by Fire
  • Employment of Secret Agents

As I consider these topics, I will not attempt to cover each of them at the same level of detail, since some are more relevant to high-performing testers than others. I will also be using the pronoun "he" in much of the article to represent "a high performer." The designation is not intended to identify the warrior-tester as a male. In fact, in conventional Chinese the third person singular pronoun is neither male nor female, and while there is a female radical that can be used with the written character, this was not done in Master Sun's time.

Laying of plans

For any important endeavor to be successful, it must be deliberate in nature. In software development, this is sometimes made more difficult because, while the fundamental principles are the same for all projects, the tactics (or execution) are modified to specific situations. Therefore, you cannot blindly reuse previous plans. This leads to the three points I'll discuss in this section:

  • Thoroughly Assess Conditions
  • Compare Attributes
  • Look for Strategic Turns

Thoroughly assess conditions

"Good assessment is the foundation of a successful operation." 1

Assessing is what testing is all about. Solid contributors and dependable testers have to assess the quality of their products effectively, accurately, and objectively. That's really the primary role of any reliable tester.

However, the top-performing tester isn't satisfied with the typical product quality assessment. He is not limited to testing against the requirements or how the product was designed to work. He takes it a step further, understanding that the listed requirements are only a baseline for product use. He sees value and inspiration in going beyond how the designer expected the customer to use the product. He investigates how the customer expects to use the product, taking time to understand the customer tasks and outlining how the product accomplishes the customer's goals.

This way he can tie his actions and activities directly to the client's overall business goals and easily illustrate how his activities toad value for his client's clients.

Once a problem is detected, all good testers report, describe, and track the defects. But the high-performing tester goes beyond the current situation. He digs into the underlying cause of the problem and why it took this long to discover, and creates ways to reduce this discovery time. He searches for new and better ways to test, automate, and report. He inserts faults and errors, to bring hidden problems to the surface quicker and more efficiently. Understanding that there will always be more defects in the system then there is time to test, he focuses time and energy on the areas the customers are most likely to use. He also champions and inspires organizations to create better diagnostic and calibration tools for the software he produces. Serviceability tools predict degradations in their products before a problem affects customer productivity. And monitoring tools save time in the long run, because they reduce the time to create the known problem condition. 2

The high-performing tester also monitors field and customer reports to verify any missing test areas. He interprets a "pilot error" or "customer mistake" as something ambiguous or vague (not intuitive) in the product. He reduces the cost of ownership by publishing papers, FAQs, and journal articles to reduce the client's learning curve. He avoids future issues by adapting his product knowledge into reusable intellectual customer collateral such as articles, presentations, audio files (e.g., podcasts), and videos.

He also takes that reusable customer collateral to trade shows, conferences, and seminars. This helps position his company as the "thought leader" in those areas, which in turn increases his value to his organization.

Compare attributes

"Compare competitive strengths and weaknesses."

The high performer understands how his contributions compare to those made by his teammates, so he can complement and complete the team. He understands that a stronger and more successful team has diverse talents. Everyone appreciates what others bring to the table. The high performer chooses absolute and continuing abundance, for he understands that there is no limit to the things he can do and achieve. He knows that his coworkers' abilities and talents do not limit his own worth, but expand his ability to accomplish more. The high performer understands that within the team he has an unlimited supply of talent, experiences, and resources.

At the same time, the high performer is realistic about his value and contributions. He understands what is holding him back from his full potential. He realistically reviews his career paths and education. He reaches out to mentors and identifies heroes in his area to emulate and admire. He considers quality or test certification appropriate and in harmony with his career goals. He understands outside certification provides additional authorization, branding, and level of recognized expertise. Each achieved rung on the career ladder gives him a different perspective or view of his craft. With each new perspective the high-performing tester creates new desires and goals.

Look for strategic turns

"Develop strategies that go beyond conventional rules."

High performers develop strategies that go beyond the conventional rules. While solid performers work within the "perceived" confines of their assignments and wait for opportunities to be presented or assigned to them, the high performer creates the opportunities and separates "the people" from "the problem." He focuses on shared interests, not individual positions (based on egos). He visualizes options for mutual gain, instead of purely focusing on Objective Criteria. 3

After identifying the problem, the high performer quickly focuses on the solutions. For he understand that the results will come from the solutions and not in continually discussing the problem.

Applying this wisdom

In this section I've presented general concepts for accessing conditions, comparing attributes, and creating inventive strategies. But what are some practical solutions and applications for those general solutions? Some include:

  • Writing white papers, conference presentations, and FAQs based on experience from testing and using the product in a way a customer would.
  • Meeting with customers to collect the customer's business process models, applications, test files, and environment data.
  • Traveling to the customer site to perform their testing in their labs using their real-world applications and environments.
  • Continuing to evaluate the appropriate of certain certification.

Waging war

The ideal strategy is whatever works best. With today's ever-changing software technology, what works today may not work tomorrow, and the right strategy only succeeds with the proper execution. Separating planning from execution dilutes the effectiveness of both.

Marshal adequate resources

"Invest adequate resources so the operation can be sustained."

This is extremely challenging in any test organization. In the testing arena, we have many resources to manage and coordinate. Since your teams have to test on many platforms and configurations, the responsibility falls on them to set up and maintain those environments. Even though others make use of those same machines, the testers often become the on-site "expert" when something goes down. Each machine also requires continued remediation and security patches to comply with security regulations. This costs much time and effort. All this effort is in addition to testing the product.

The problem of adequate resources is especially critical when parallel activities are in progress. Although everyone recognizes that the allocation of adequate resources for both current and future products and services assures success, many organizations share resources across maintenance branches and future product research, as well as current development streams.

Given the above scenario, where do you fit your career development, the preparation for the next technology, or the implementation of forward-thinking ideas?

Since the high performer understands his true skill set and career goals, he integrates training needs and solutions directly into his work schedule. He realizes that he is in full control of his own calendar. He knows that no one else is responsible for his growth and well-being. The high performer demonstrates good project planning skills on any task that he undertakes (i.e., marks out level of effort, forecasts a completion date, and plots progress against forecast goals to report when he is falling behind). He finds creative ways to marshal the right resources at the right time. And he keeps his stakeholders well-informed on this progress.

The top performer is a "solution-oriented" person who realizes that complaining has limited value. He uses the inevitable roadblocks as an opportunity for innovation. He may play a game of putting an unfamiliar face on the familiar problem, to force a different perspective.

The high performer also has control over time. He is a master of time management skills, which leads us to the next discussion point.

Make time your ally

"The key is to become rapidly effective and efficient."

What is valued in war is a quick victory, not a prolonged operation. The high performer is quick to turn a workable idea into measurable and useful results for the organization. The high performer "begins with the end in mind." 4 Before he schedules a class, attends a conference, or participates in a panel discussion, he has identified the tangible and useful product that he will be producing for the team and the organization. Before he accepts and attends daily or weekly meetings, he understands the agenda and goal of the meeting and how they mesh with his current intent. If a meeting, conference, or discussion is not in harmony with his goals, he spends his energies on things better aligned. This does not mean that these gathering are a waste of time. These particular meetings may very well be interesting and engaging. It's just that he has already envisioned the business value or value-add of their activities in regards to his goals. And he has determined that other items are more appropriate.

He makes time his ally. Once he aligns his activities with his goals and desires, time becomes less of an issue because he will be accomplishing things through inspiration.

Everyone must profit from victories

"Strengthen human resources and material assets with each victory."

In war, a successful directive is where everyone wins. When one defeats the enemy, you take the spoils; you mix their resources with your own, you are kind to the prisoners, and add them to your forces.

It is the same in business. The high performer converts the majority of his organization's activities into a win/win for the entire organization. If he reads a book, or attends a learning lunch session or other educational activities, he shares the spoils either by creating a utility that contains that knowledge or incorporating a procedure that is adopted.

Good performers see the tasks outlined in front of them, and the timeline. They may work extra hours to accomplish what's laid out for them. But they limit their resources to themselves. The high performer considers other options that expand resources beyond what he can muster on his own.

Here are a few examples:

Example 1: In one project, we needed help in system-level testing. Our technical support, field enablement, and customer training teams also needed to understand our product to accomplish their work. Although we could have worked additional hours to cover the testing, we positioned those other groups to help us with our system-level testing. As a result, we got our testing and those teams got the training and materials required for their tasks. We also wrote many of our system test cases based on their experiences with their clients.

Example 2: We found Inspections a difficult requirement to incorporate into our current development culture. The reasons stemmed from "not having the time in our schedule" to "we're not really ready for that level of process maturity." But once we moved past the excuses and instituted inspection for test plans and test cases, including development participation, we influenced development toward code inspections. It became a win for us, because we improved test plans and test cases, and it was a win for development, because they were gently introduced to the inspection process without feeling that they themselves were the objects "under inspection."

Know your craft

"Master the expertise required to win."

Of course you need to master the expertise required to win, but when do you find the time to hone your craft? I've already covered the multitude of activities that consume a tester's time.

Since the high performer understands his true skill set and career goals, he identifies training needs and solutions for himself. He makes these needs well-known in advance, because he understands that funds must be available before the attack is launched (not during or after the start of the project). Training is conducted at the appropriate time, close to when the skill is actually needed. 5

The high performer illustrates sustained industry knowledge in his craft. Positioning himself as a recognized expert in his chosen field, he presents at local or remote events. He may even submit a conference proposal prior to actually knowing much about the topic. When that topic is accepted, he then learns all he can for that presentation. Moreover, he doesn't always scope the subject matter to the interests of his own peers. There are opportunities and benefits in presenting and writing to audiences at every level in an organization, from the individual team member to the executive.

Another way the high performer becomes an acknowledged expert is to attack where there isn't much competition (creating a niche for him). Combining his interest with daily activities fosters more inspired and innovative solutions.

Applying the wisdom

In this section I've translated Sun Tzu's ideas for waging war into the realm of software testing activity. Here are some practical solutions and applications for those general ideas:

  • Find a hero and shadow him or her.
  • Submit conference papers on things you want to learn more about, creating a powerful incentive for you to accomplish your goal.
  • Create a study group to collectively achieve a certain certification.
  • Continue to network and create win/win relationships.
  • Take control of your calendar, and only choose those items which are aligned with your goals.

Attack by stratagem

In any operation, strategy is needed. As the "plan on paper," strategy deals with the allocation of resources for the battle. It establishes where, when, and in what quantities the force will be used to fight the battle.

Win without fighting

"The ultimate victory is to win without conflict."

In software development, many developers and testers only hear from clients when there is a critical problem. Sometimes the problem has already escalated up through the clients' management chain, across to our executives, and back down to us. At that point, we certainly feel under attack. Even so, the first rule in strategy is to pay critical attention to the needs and desires of the client and your organization's ability to fulfill those needs. 6 The concept of being victorious without engaging in conflict is fundamental to Sun Tzu's strategic thought. But how can you apply this concept in the testing organization?

One way is to find a non-confrontational strategy. For instance, find the common ground between your needs and their wants. This allows the high performer to see an opportunity before anyone else sees it.

Strength against weakness

"Battles are won by concentrating strengths."

Since the high performer understands both his strengths and weaknesses, he forms collaborative alliances to fill the gaps. This not only strengthens the gaps, but also adds support in the general cause. The issue is not one of raw numbers; superiority can be achieved in variety of ways.

Here are some examples:

  • Since 80% of the software defects originate in the Requirements and Design phases, and since it's easier to fix problems at that stage than in the Construction phase, the high performer puts more focus on those areas. This is accomplished by initiating early peer and code reviews on the requirements and design documents. Appropriate and high-profile clients can also be brought into the development phase to evaluate early requirements and design, before any coding has taken place.
  • Since the technical support staff and technical writers also need to know the software and how the product works, the high performer works with those groups. They learn more about the product as they run through some of the test cases supplied by the high performer.
  • The high performer investigates and networks with other groups to internally deploy early versions of the software. Although most organizations utilize beta releases to "test-run" their applications before general release, the items detected at this stage have little chance of being fixed for inclusion in this first general release. Items discovered in beta are usually scheduled for the next "fix-pack" or "maintenance" release. Only critical "stop-production" finds are fixed (with much stress and commotion). Internal and earlier deployment of code provides much of the advantages of a beta, without external exposure and involving a much friendlier set of clients. This gives the organization a chance to both understand the quality of the product, as well as fix many of the finds.

Beware of "high-level dumb"

"Avoid acting without full knowledge of the situation."

The high performer realizes he might not have the full picture. He knows his perspective is just one person's reality. He works hard to ensure his manager knows the status of everything by supplying status reports and frequent updates and forecasts.

The high performer focuses on the spirit of the organization or goal to avoid errors. Take the following example:

In software development, the intent is not to follow particular procedures or to meet explicit exit criteria and defect numbers. The goal is to produce a quality product. Setting repeatable procedures and identifying metrics and exit criteria are tools to accomplish that goal. But sometimes we become so focused on the metrics, we forget the intent of those procedures.

I once knew of a team that needed to get to 0 unverified (fixes that need to be retested) counts by a certain date. So individuals closed the "assumed fix" defect without retesting to meet those metrics. But by doing this, they showed that they did not understand the quality reason for that metric.

History has shown that ten percent of all changes produce other defects. 7 Retesting by a certain date allows the teams to fix those additional defects. But simply closing the changes without testing does nothing to support the quality intent or reason for that metric.

Success in any endeavor can be achieved by focusing your resources where you can achieve decisive results profitable. You cannot be strong everywhere. If you focus more effort in one place, another will be left uncovered. The high performer understands the reason behind the metrics and procedures, and works to support the quality intent, even if that means not meeting an exit criteria or measurement goal.

Obey fundamental principles

"The chances for failure are high when the rules that ensure victory are ignored."

The high performer understands what constitutes "success" in any task he undertakes. He determines a clear direction, maintains objectives, and constantly tracks against those success criteria. He does not wander off the path, and keeps strategies and communications simple, clear, direct, and useful. He selects the proper type of communication, preferring face-to-face conversations over email for important collaborations. And if the communication doesn't add value, perhaps it shouldn't occur.

Applying the wisdom

In this section I discussed general concepts regarding strategy. But what are some practical solutions and applications for those general solutions?

  • Understand the reasons for the procedures and metrics.
  • Value face-to-face communications over email.
  • Understand the goals and value of meetings and tasks, and only attend or assign those that add value.
  • Network with other teams with similar goals for internal deployment.
  • Investigate bartering resources to increase pool of resources.
  • Continue to network and create win/win relationships.
  • Take control of your calendar and only choose those items which are aligned with your goals.

Conclusion:

This is a multi-part article. Here in Part 1, you have learned some practical ways to increase your testing performance. As I noted in the introduction, future installments will cover additional strategies derived from Sun Tzu. Stay tuned!

Notes

  1. Heading quotes are from Sun Tzu: The Art of War for Managers by Gerald A. Michaelson.
  2. One example is inserting a "Disk Full" fault in your system. Instead of taking several hours to run out of disk space, you can quickly find out how your system will react when your disk is full.
  3. Getting to YES: Negotiating Agreement Without Giving In, by Roger Fisher and William Ury.
  4. Steven Covey, The Seven Habits of Highly Effective People.
  5. Problems arise when the team is educated too far in advance. A common mistake companies make is train in an "up-n-coming" technology prior to actually incorporating a plan to implement that technology. Teams are trained with no support to keep those skills exercised and limber. When it's time to execute, teams need to be retrained.
  6. The Art of War for Managers, Gerald A Michaelson
  7. If you have one hundred Unverified defects to retest, statistically you may find at least ten other defects during your retesting/regression testing.


Back to top


References

The Effective Executive: The Definitive Guide to Getting the Right Things Done (HarperBusiness Essentials) by Peter F. Drucker, HarperCollins Publishers Inc, 2002.

Sun Tzu: The Art of War for Managers; 50 Strategic Rules by Sun Tzu and Gerald A. Michaelson, Adams Media Corporation 2001.

The Top Ten Mistakes Leaders Make by Hans Finzel, David C Cook Distribution Canada, 2007.

A Whack on the Side of the Head: How You Can be More Creative by Roger Von Oech, 3rd Edition, Warner Books, Inc, 1998.

Smart Moves for People in Charge: 130 Checklists to Help You Be a Better Leader by Sam Deep and Lyle Sussman, Perseus Book Group, 1998.

The One Minute Manager Meets the Monkey by Kenneth Blanchard, Blanchard Family Partnership, 1989.

The Seven Spiritual Laws of Success: A Practical Guide to the Fulfillment of Your Dreams by Deepak Chopra, 1995.

The Tao of Leadership by John Heider, Lightning Source, Inc, 1984.

The Seven Habits of Highly Effective People by Stephen R. Covey, Free Press, 2004.

The 100 Simple Secrets of Successful People by David Niven, Ph.D, HarperCollins Publications, 2006.

Getting to YES: Negotiating Agreement Without Giving In by Roger Fisher and William Ury, Penguin Group USA, 1991.

Managing Your Mouth by Robert L. Genua, Amacom Books, 1993.



Resources



About the author

author photo

Laura Rose is the quality assurance expert and customer advocate manager responsible for automated quality tools at IBM Rational. In addition to leading projects in both software programming and testing environments, she has thirteen years of programming experience and ten in test management. She has been a member of the American Society for Quality, the Triangle Quality Council, and the Triangle information Systems Quality Association, and has published and presented at various test and quality conferences. You can reach her at llrose@us.ibm.com.




Rate this page


Please take a moment to complete this form to help us better serve you.



YesNoDon't know
 


 


12345
Not
useful
Extremely
useful
 


Share this....

digg Digg this story del.icio.us del.icio.us Slashdot Slashdot it!



Back to top