Ever wonder how some people achieve so much in their lives while others accomplish only a fraction, even though we're all given the same amount of time in which to work?
Productivity is about being able to see the results of what you're doing. It's more gratifying when you are able to see that what you're doing is having an impact on software quality.
So how can testers squeeze more out of their time? How can you generate a higher impact in the same amount of time you've always had, elevating your testing career and improving the quality of your life?
I've spent over 15 years being obsessed with optimizing my productivity as a tester, reading books and trying many different techniques and methodologies. Here are the four productivity hacks that actually work for me, with explanations for each, and how to apply them in a testing context.
1. Tackle
It's essential to have control over the time that you have to do things in order to be effective, but it's important to understand that you cannot invent more time. Instead, you have to decide what to do with it. You don't manage time; you manage tasks and priorities. To be effective, you have to decide how to prioritize and move forward with your tasks.
Manage your priorities driven by purpose
Without knowing your purpose, it's impossible to know how to focus your efforts.
Ask yourself, "In what do I want to invest my time?" Think back to your new year's resolutions; what goals did you have for the year? What does success look like for you? Every so often, like every three months, review the progress you've made on these goals.
I also do a review every Friday of what I've managed to accomplish during the week (things that were actually meaningful). By doing weekly reviews of the important achievements I've made in the last seven days, I can gauge whether my focus is great enough to achieve the important things and whether I need to work harder (or smarter) in the next week.
You can apply the same thing for testing. Think about the purpose of your tests; then you will have a better idea of how to prioritize the time spent on each test activity. What are you testing for? Why? What's the goal?
Getting things done in the day-to-day
Once you've figured out the overarching goals that drive your purpose, here's how to organize your daily tasks to help you reach them.
Something I've adopted from the book Getting Things Done, by David Allen, is how to process your inbox. This means all the new tasks or assignments that you receive through all means (emails, phone calls, instant messages, action items in meetings, etc.).
Here's how it works:
First, if something will take less than two minutes, do it right away. It can be a question or clarification needed in a bug report, or it can be another tester asking for access to the environment of the last version of the application under test.
But if it takes longer than two minutes, determine who's the right person to do the task. Maybe you have to delegate. If so, you still "own" the task and you need a mechanism for not losing track of it. One thing you can do is tag an email you sent to someone as "waiting" and then review that tag every once in a while (such as once or twice a week, depending on the task).
If the task takes longer than two minutes and you are the right person to do it, postpone it. That's when you add it to your to-do list or to your calendar if it's related to a specific date and time. I use a Trello board for my to-do list, like a Kanban with four columns: To-Do, This Week, Doing, and Done.
What’s on top of my to-do list is the most important, and I never have more than one or two things in "Doing" at once. Finishing things before starting new ones is important to avoid multitasking. You wouldn't run two test cases at the same time, right? Chances are you'd just mess them up.
Remember, multitasking is evil.
2. Reduce
Of course, one way to feel less overwhelmed and more focused is to reduce the things you have on your to-do list. Basically, Marie Kondo it!
Don't do the unimportant
Cut out what you don't need. Ask yourself, "What can I clean from the backlog?" Which test cases are not useful anymore?"
You need to be realistic, since you probably won't be able to get to everything. If a task has been in your backlog for more than two months and you know you'll never do it, just delete it.
I tend to add tasks such as "Look into this state-of-the-art tool that just appeared in my Twitter feed," and after giving it more thought, I realize I don't really need to do that. Don't let tasks pile up; that will only cause you more stress.
Reduce distractions to achieve the flow state
Flow state is a mental state in which you're motivated, focused, and so immersed in an activity that you lose track of time and of what's going on around you. To achieve the flow state, it's necessary to have zero distractions. Things that can take you out of the flow state include phone notifications, pauses to check email, interruptions from other people, etc.
The Pomodoro Technique is very popular. It says that you should schedule blocks of productive time (20 minutes or so) and then have a five-minute break in between them to rest and take care of any distractions.
I simply prefer to turn off notifications and put my phone on silent, and check it when I finish something or when I need it. The important thing is that your phone can't say, "Hey, pay attention to me," and that you decide when to pay attention to it.
Go lean
Doing repetitive tasks in batches stops you from wasting time while changing contexts. For example, don't go grocery shopping every other day; go once a week and try to plan your purchases ahead of time. This way, you'll spend less of your life standing in the checkout line.
The same goes for email. Don't open up every email as it arrives in your inbox; instead, check all the emails you've received every hour, or two hours, etc. When you do small, repetitive tasks in batches, you'll improve your efficiency noticeably.
If you were to stop the testing that you're in the middle of, open your email, and start doing what someone else asked of you in that email, then you're practicing "email-driven testing." Don't do that!
Also, try to go "counter-current" to save time. For example, if your company allows, take your morning calls from home while the rest of the world is on the freeway, and then drive to work when the roads are clear. At that point it takes just a fraction of the time to get there, reducing idle time.
3. Focus
Many distractions can conspire to pull you away from what's really worth putting your time into. Here's how to focus on what you need to do.
Avoid procrastination
Many people suffer from this terrible habit, but you can train yourself to procrastinate less and less.
One way to procrastinate about doing something important is to put it off by crossing off smaller and easier tasks on your to-do list. This does give you a sense of accomplishment, but it's not the highest form of productivity—not if you want to accomplish what truly matters.
To avoid this, do the most important thing right away, even before starting any meetings or opening your email, if possible. Mark Twain called this habit "eating the frog." Once you've finished that one task, then you can go and check off the easier ones.
Block out meeting-free work time
I used to practice having one meeting-free day a week. This helped me have more relaxed and spontaneous chats if need be and also helped me devote time to the tasks that require greater concentration and suffer from interruptions.
Now that I live in California and most of the people that I interact with are in Uruguay (which is four hours ahead), my afternoons are typically when I have more quiet time for things that I need to do while in the flow. Find times that work with your routine when you can focus better on the important tasks that you must get done.
4. Optimize
Last but not least, find things that you can optimize. This is the last hack because it's important to first eliminate the clutter.
Is there a tool you can use to automate certain tasks or free up your time? Are there some unnecessary steps in your processes that you could eliminate?
A saying I like regarding this goes, "Any optimization that's not related to a bottleneck is an illusion of improvement." This is very important when doing performance testing, but here I am talking about optimizing your time.
What is eating up your time? Look for things you could do to save time because you repeat them many times, or because they take much more time than they should. Work on these things, such as:
If it is hard to get the logs files from your server, make a script for that.
If you spend too much time writing test reports or bug reports, create templates.
Are you doing repetitive checks? Use an automation tool if possible.
How to apply these hacks to testing
Now that you understand the ways you can tackle, reduce, focus on, and optimize your tasks, let's look at how you can apply those techniques to exploratory testing. Exploratory testing is agile in itself because it prioritizes effectiveness over other techniques. But there are still many aspects to consider to be more efficient when doing this type of testing.
For example, you can apply a lean approach, as in this example of an exploratory testing scenario:
Tackle: Analyze the purpose of your tests and define the objectives.
Reduce: Eliminate the test cases that aren't interesting or don't add enough value.
Focus: Place your efforts on the most business-critical aspects of the software.
Optimize: Find the bottleneck. If you see you’re spending too much time on bug reports and setup and not enough on testing, you can have the build arrive with fewer bugs by having the developers implement unit tests. You can also make the test setup easier, freeing up more testing time.
That's how I get more done with my time. What are some productivity hacks that you have found that help you to be a more productive tester? Post your suggestions in the comments below.
Keep learning
Take a deep dive into the state of quality with TechBeacon's Guide. Plus: Download the free World Quality Report 2022-23.
Put performance engineering into practice with these top 10 performance engineering techniques that work.
Find to tools you need with TechBeacon's Buyer's Guide for Selecting Software Test Automation Tools.
Discover best practices for reducing software defects with TechBeacon's Guide.
- Take your testing career to the next level. TechBeacon's Careers Topic Center provides expert advice to prepare you for your next move.