A dog leaves a house, runs through the garden, and beams into a starship. The starship traverses space to a far-off planet, where an alien senate watches the ship land. The dog gets out and removes its dog costume, unveiling that it, too, is an alien. The senate then asks the returned alien what it has learned. After a moment of silence, it says, “Whassup?” and the whole alien party joins in. Back on Earth, a scientist hears the alien "Whassup" choir and concludes, "We are not alone!"
Maybe you remember this storyline from a Budweiser ad. What has it to do with software development and testing? We may or may not have alien dogs, but we’re never alone. Whenever we run into a problem, we can reach out to the help that is available. For example, think about the last time you couldn't keep your automation code up to date with changes done to the production code. Or, consider the last time you felt that unit testing the production code was nearly impossible. Or, remember the last time you had to fill out a form for your session report but didn't know what to put in. This article explores these situations and explains what to do about them, where to reach out for help, and how to ask for help and receive it.
When to Seek out Help
Foremost, it is vital to know when to seek help. A programmer may code herself into a dead end with an unfamiliar technology. A tester may become hopelessly lost when trying to pinpoint a particular bug during manual testing. Therefore, knowing when to seek help means knowing when something is wrong. Constraining the time spent on certain activities may help you become aware that you are on the wrong track. Taking a step back and reflecting every thirty or ninety minutes will help you notice dead ends before they waste your time.
Time‑boxing your efforts also works on a larger scale, such as when agile development teams use short iterations. The team focuses on an agreed-upon part of the project and delivers it in one to four weeks. After that, the team reflects over the work. After gaining the relevant insights, the team agrees on actions for the next time‑boxed iteration and continues to improve the process. Time‑boxing smaller efforts and reflecting over a few hours’ work helps us see when we need to reach out for help on a particular difficult task. Just as agile teams reflect and adapt to the situation, we can learn when it might be time to adjust the overall process.
Where to Seek out Help
The developer stuck on a particular bug fix may want to ask an expert in the technology or the underlying code for help. Asking the tester for a broader picture on her code changes may also be worthwhile since testers usually have a holistic overview over the application they are testing, and can expose problems in the solution very quickly—even before you wrote a single line of code.
A tester who gets stuck on a piece of test automation code may want to ask a programmer for help on the design. When stuck on a complicated business rule, the tester may also reach out to the business analyst or consult the customer. In summary, asking the nearest expert for help provides the fastest form of support and feedback. If you are unable to consult a nearby expert, get in touch with a distant helper.