TrainingConferencesAbout UsContact UsAdvertiseSQE.com

StickyMinds.com: brain food for building better software

Join

Join

Clarify Your Search Criteria
Tips on Using Our Search Feature(s)
StickyMinds.com Home
ResourcesEventsTopicsPowerPassJobs
Software Testing & QA Online Community  >  Detail: What Testers Can Do about Technical Debt (Part 2)



A StickyMinds.com Original
Article Picture
What Testers Can Do about Technical Debt (Part 2)

By Johanna Rothman

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: Signs of technical debt are everywhere in software development organizations, ranging from developers leaving because they’re tired of only doing maintenance, to daily patches being released for poorly tested products. In Johanna Rothman’s last column, she listed several indicators of technical debt. This week, she continues the topic by showing how you can diagnose the magnitude of the debt, and some things you can do to decrease it.


ASTQB
Technical debt is the unfinished work your organization owes your product. It comes in varieties: requirements debt, design debt, and testing debt. It causes the developers to have trouble finding and fixing defects, and causes testers to have trouble knowing how and what to test. Is there anything you, or your organization, can do about technical debt when you see it?

Diagnosing and Decreasing Debt
If you’re seeing signs of technical debt in your organization and you’d like to reduce that debt, you have some choices in your testing:

  1. Keep tabs on the debt yourself. Know what you’re looking at and the magnitude of the debt. Measure the size and FFR (Fault Feedback Ratio) of the product over time. I prefer weekly measurements to monthly or quarterly measurements, because the earlier you know, the earlier you can choose to do something about the problem. For the product I mentioned in last week’s column, we first gathered quarterly data to see if we had an idea where the problem was. Then, for the next project, we gathered weekly data, to be able to make quick course corrections in the product.
  2. List the kinds of testing you’re doing now, and review the field-reported defects. If you’re not doing end-to-end, performance, reliability, or standard dataset testing, should you? Could you give the developers different information if you changed the testing you do? With that information, could they better recognize or reduce technical debt? Do your tests address the field-reported defects, or are there entire classes of problems your testing is missing?
  3. Create testing experts. Staff the testing projects with testing staff for long enough that the testers become experts in the product area. One of the problems in the organization I mentioned in my previous column is that the testers were only assigned to the project for a few weeks at a time. In the course of a year, the developers had to explain how the product worked to numerous testers, not all of whom understood how they could help test the product.
  4. Reduce the number of concurrent projects you are working on. If you’re a tester, and you think you need to take on more projects because otherwise you’re not helping the company succeed, step back a minute and reassess. If you’re not doing a great job on one project, if you’re only doing mediocre to poor jobs on projects, are you really helping the company? (In my experience, no.) If you’re a manager, stop assigning your staff to multiple concurrent projects. You can’t squeeze more work out of people, and the more projects you assign people to, the less work they can do on each project. You’re better off not staffing projects you can’t adequately staff, so that no one is under any illusions. To see some pictures of the dynamics of inappropriate test staffing, see Elisabeth Hendrickson’s paper, "Better Testing, Worse Quality?" posted here on StickyMinds, and on Elisabeth’s Web site.
  5. Help the developers test the requirements. One way testers can be helpful is to test for a complete definition of the users, including the users you want to prevent from using the system. You can do this two ways: Use personas (as described in Alan Cooper’s book, The Inmates are Running the Asylum); or if your group is not familiar with personas, group all possible users as favored, disfavored, and ignored a la Gause and Weinberg, Exploring Requirements, Quality Before Design.
  6. Help the developers test the design. You can participate in informal design reviews, using some rules of thumb: Did the developers consider three alternatives before choosing the one they took? Under what circumstances will this design not work? Are there performance limitations of the design?

If technical debt is a reality for your organization, then learn how to increase your testing sophistication and expertise to help diagnose and decrease the debt.

Technical debt impedes you from making project progress, and in my experience, it appears to dramatically affect how much testing you can do. Remember, technical debt is like credit card debt. The more you accumulate, the more you are impeded.

You might be able to shortchange your product on one or two releases, but at some point if you don’t pay it off in a planned way, the debt buries you.

Acknowledgements
I thank Esther Derby, Dale Emery, Dave Smith, and Jerry Weinberg for their review on this column.



About the Author
Johanna Rothman observes and consults on managing high-technology product development, looking for the leverage points that will make her clients more successful. Johanna was the Conference Chair for the Software Management (SM) Conference in February, where she conducted a management-improv tutorial and participated in a panel discussion of mentoring and manager making. She recently co-moderated a RoundTable discussion “Making the Transition to Management” with Esther Derby. You can reach Johanna at jr@jrothman.com or by visiting www.jrothman.com. For more information about analyzing job candidates, you can refer to Johanna’s upcoming book Hiring Technical People.

Back to Top
 

StickyMinds.com Weekly Column From 8/26/02 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Vicki Everett 8/27/2002

Johanna...thanks for visiting my world of Technical Debt, as well as many other testers. Your article echoed my daily situation as a software tester for the past 1.5 years. I could easily (yet sadly) attest to many of the symptoms listed as technical debt. So now that I have a name for it, my question to you is how can I (as a software tester) as opposed to a QA Manager be a part of remedying "technical debt"? For the most part, I have kept myself out of the design and requirement phase (when there is one). Or is this the sole responsibility for the QA manager?

Author's Response:
8/27/2002    
Vicki, I don't think the QA or test manager can take the sole responsibility for recognizing and dealing with technical debt; I think it's the responsibility of the entire technical team. And, if there are requirements, architecture, and design phases, I make it a point to participate as a tester. When I'm a tester, I do root cause analysis on my defects (no, not all of them, no one has that much time), but the difficult-to-reproduce bugs, the who-the-heck-would-ever-try-that faults, the that's-not-a-bug-that's-a-feature ping pong (thanks to Rex Black for that phrase) that developers play with testers. The difficult defects to find and fix are the ones I look at. Maybe I only look at one a week, maybe I look at 2-4, but by the end of a month, I have data I can bring to my manager. I look at the kinds of testing I'm doing, and what I think the product needs. I ask the developers what kinds of testing the product needs. If I don't know how to test the way the developers think I should, I ask for help. Product development is so much more than the developers handing over the product to the testers. I try to work hand--in-hand with developers, so that I do the best job I can by the product, as do they. Does that help?

 
 
Comment:    
by Paul Tsuda 8/26/2002

Johanna, you’re article makes a lot of sense, especially point three, Create Testing Experts. I wish my previous employer had read this article before they let me go. Due to budget cuts I was laid off three months ago from a position as a senior tester/subject matter expert. I had over 23 years of experience in my field of subscriber management software for the telecommunications industry (12 of those as a tester). They immediately hired some less expensive QA I and II people off the street to replace me. I think their strategy was to get more process experts in order to find more bugs during the upstream process rather than continue to...Read On

Author's Response:
8/26/2002    
Paul, I hope you find a new job soon. I will never understand people who think they can shortchange the testing part of the project, even if they add in more process experts. Unless the managers change what they do, the process experts will have little to no effect on the project. Whereas, the testers would have tremendous effect on the project. I'm convinced that many of the problems we see in our products would vanish if we had testers with as much professional experience and expertise as the developers our companies hire. I know we don't have a product without the developers, but unless your organization has hired amazing developers and then given them a chance to do their jobs well, the testers need to be of the same caliber as the developers.

 
 
Comment:    
by Robert E. Lee 8/26/2002

Excellent use of the testers' metrics and perspective to pro-actively influence the success of a project! Developers aren't positioned to see many of the metrics you suggest, so the tester brings the value of specialized perspective. I've benefited from having a dedicated customer support organization that profiled field problems for us in development. It helped us identify recurring problem sources and act to quench them. Bob Lee

Author's Response:
8/26/2002    
Bob, testers can add incredible proactive value to the project, if they can measure just a few things (such as cost to fix a defect and FFR), and can keep looking at the project as a whole. Sometimes testers can't do that, but they can measure, and help the project manager see the project as a whole. A dedicated customer support organization is also an incredible assist when you're trying to find those recurring problems.

 
Back to Top



 
Ads By Google
What's This?
 
 



About Us   |   Contact Us   |   Terms & Conditions   |   Privacy Policy   |   RSS Feed



© 2013 StickyMinds.com. All rights reserved.
PNSQC

Tricentis



Agile Development Conference & Better Software Conference West