The following is a guest post from Lisa Crispin. Lisa is the co-author with Janet Gregory of “Agile Testing: A Practical Guide for Testers and Agile Teams” and the newly published “More Agile Testing: Learning Journeys for the Whole Team”. I highly recommend both of these books—in fact, I recommend reading everything Lisa and Janet write. In the following post, Lisa argues the benefits of scheduling anything that's important. I am a fanatic for doing this. Over the holiday I put fancy new batteries in my smoke detectors that are supposed to last 10 years. So I put a note in my calendar to replace them in 9 years. But, don't schedule time to read Lisa's guest post—just do it now.—Mike
During the holidays, some old friends came over to our house for lunch. We hadn’t seen each other in a few months, though we live 10 minutes apart. We had so much fun catching up. As they prepared to leave, my friend suggested, “Let’s pick a date to get together again soon. So often, six months go by without our seeing each other.” We got out our calendars, and penciled in a date a few weeks away. The chances are good that we will achieve our goal of meeting up soon.
Scheduling time for important activities is key in my professional life, too. Here’s a recent example. My current team has only three testers, and we all have other duties as well, such as customer support. We have multiple code bases, products and platforms to test, so we’re always juggling priorities.
The product owner for our iOS product wanted us to experiment with automating some regression smoke tests through its UI. Another tester on the team and I decided we’d pair on a spike for this. However, we had so many competing priorities, we kept putting it off. As much as we try avoid multi-tasking, it seems there is always some urgent interruption.
Finally, we created a recurring daily meeting on the calendar, scheduled shortly after lunchtime when few other meetings were going on. As soon as we did that, we started making the time we needed. We might miss a day here or there, but we’re much more disciplined about taking our time for the iOS test automation. As a result, we made steady, if slow, progress, and achieved many of our goals.
Even though both of us were new to iOS, pairing gave us courage, and two heads were better than one. We’d still get stuck, though, and we needed the expertise of programmers and testers with experience automating iOS tests. Simply adding a meeting to the calendar with the right people has gotten us the help we needed. Even busy people can spare 30 minutes or an hour out of their week. Our iOS team is in another city two time zones away. If we put a meeting on the calendar with a Zoom meeting link, we can easily make contact at the appointed time. Screensharing enables us to make progress quickly, so we can stick to short time boxes.
Another way we ensured time on our schedule for the automation work was to add stories for it to our backlog. For example, we had stories for specific scripts, starting with writing an automated test for logging into the iOS app. Once we had some working test scripts, we added infrastructure-type chores, for example, get the tests running from the command line so we can add them to the team’s continuous integration later. These stories make our efforts more visible. As a result, team members anticipate our meeting invitations and think of ideas to overcome challenges with the automation.
Time for testing
Putting time on the calendar works when I need to pair with a programmer to understand a story better, or when we need help with exploratory testing for a major new feature. I can always ask for help at the morning standup, but if we don’t set a specific time, it’s easy for everyone to get involved with other priorities and forget.
The calendar is your friend. Once you create a meeting, you might still need to negotiate what time works for everyone involved, but you’ve started the collaboration process. Of course, if it’s easy to simply walk over to someone’s desk to ask a question, or pick up the phone if they’re not co-located, do that. But if your team is like ours, where programmers and other roles pair full time, and there’s always a lot going on, a scheduled meeting helps everyone plan the time for it.
If you have a tough project ahead, find a pair and set up a recurring meeting to work together. If you need one-off help, add a time-boxed meeting for today or tomorrow. If you need the whole team to brainstorm about some testing issues, schedule a meeting for the time of day with the fewest distractions. And if you haven’t seen an old friend in too long, schedule a date for that, too!