It sounds obvious enough, but time after time I see testers in particular taking action before they've clearly identified what their end goal is or worse, what problem they're trying to solve.  I'm guilty of it myself, I'm afraid to admit!  Maybe it's a personality trait of people who naturally gravitate towards testing, or maybe it's just a pet peeve that I've started growing more aware of recently.

As testers, we're often incredibly busy with the wide variety of work we do (spec feedback, test plan writing, bug-finding, automation writing & run analysis, etc.).  In fact, we're often so busy that when new work comes up, it's incredibly tempting to fall back on patterns that have brought us success in the past without thinking through whether or not the actual problem or situation surrounding the problem has changed.  

However, the fact that we're so busy is exactly why we should take a moment to make sure we're not doing unnecessary work or worse, causing unnecessary work for others!  

Even if the problem sounds similar to something you've solved in the past, taking just a couple of minutes to answer the following questions can literally save hours for you or your co-workers:

  • Can you clearly state the problem you're solving in 15 words or less?   
    • e.g. "We do not know if we have enough QA capacity for this sprint."
  • Can you clearly state the goal you're trying to reach?   
    • e.g. - "Ensure our team is appropriately staffed for the QA work required in this sprint."
  • Can you separate out actions from your end goal?  
    • e.g. "Discuss options with feature stakeholders" is an action towards solving the problem "Stakeholders are not all in agreement on the strategy for ensuring the new Whizbang Feature ships with high quality" or the goal "Stakeholders are all in agreement on our testing strategy"
Like I said, it sounds simple, but you might find that it actually takes a bit of practice to tease apart problem statements from goals from actions.  Give it a try... I hope it helps!