Why Sailing and Software Testing are much more Similar than you Think

The other day I was sailing the sea. It was a calm early summer day, but there were still some waves. The sun was shining, and it was about +20 degrees Celsius (about 70 Fahrenheit). It felt like my boat could sail forever. I just sat there and enjoyed the silence of nature.
A few hours later…. back to work. My job during that week was to test a new software release of a new platform, so I got back to my computer and started testing.
It struck me how testing is like sailing: you have so many unpredictable elements around you. You can’t control these elements, but you can do your best to manage them by planning ahead and being prepared for most situations that may occur – both in testing and sailing.
It’s no secret that software testing is a profession wrought with complexity. From keeping track of various types of tests to understanding the ever-changing landscape of technology and user needs, testing has challenges that are unique to the industry. But for me software testing has a lot in common with another field I love – sailing.

Both are a way of life

Many might be thinking of software testing, “Oh, I suppose that sounds like something I could easily do.” But let me tell you: software testing is a way of life. It’s not just something you do for a few hours each week or month – it’s what and who you are.
Software testers live and breathe testing; it’s a purpose. Good testers have a deep understanding of how the software works, and what can go wrong with it, so they always know where to look for issues. They have a special way of approaching a task, and their initial thought process is different from others (in the software project team). Their behavior is like that in other areas of life.
The same goes for those who sail. Especially the long-distance travels, across seas, but not only. To understand the beauty of sailing, and how to embed yourself with the boat and sea, one needs a different approach to life, a unique way of thinking. Others will not understand. They might even think that sailing (or testing) is boring. That’s exactly the gap between those who realize what it’s about and those who don’t.
There’s also a similarity in how they both require a strategic mindset and both involve planning for worst-case scenarios.

The team is crucial in both

There’s no question that the team is crucial in both. The boat’s crew needs to be able to work together, and each member must fit in and know their tasks. In software testing, the team is your crew – and you need them all working together in order to have success on your project. Each tester brings something a little different to the table, a skill, a way of thinking, experience, etc. Knowing how to make them all work together, coordinate, and drive to the same end goals is what will determine the quality of your testing project.

The more variables there are, the harder it is to test (or sail)

Think about how many variables are involved in sailing. There’s wind, waves, currents, location, and even the time of day. Then there’s the boat type, its equipment, your crew… there are many more variables. And of course, they can change constantly, to make it even more unpredictable (and even more so when we’re dealing with a sudden weather change or damage to the boat of some kind).
Software teams face similar challenges when they’re busy helping build products: they have multiple roles with different responsibilities; they must take into account external factors like time constraints or budget restrictions; and they need to communicate effectively both within their team and externally with others in the project group, perhaps even customers/end users.
We’re all familiar with the constant changes in the requirements of the product we’re working on, changes in the team during the project lifetime, and even budget and schedule changes. Adjustments are made continuously, as variables change.

Both professions involve dealing with the unknown

In both yacht sailing and software testing, the unknown is a constant presence.
The unknown can be as simple as not knowing what to do next on your project or how well your product will perform in the market. It can also be more complex: how far away are you from your destination? How long will it take to get there?
There are many reasons why these questions are unanswered. Some are obvious – the data isn’t available yet; it’s too early to know; nobody has done exactly this before. Other times, though, things just aren’t clear because we don’t have enough information yet – or maybe even because we don’t have any information at all! But whatever our reasons might be for not knowing something important about our work, its landscape, components, or future – we’re doing our best not just with what we currently know but also with how much we’ve learned over time through previous knowledge, gained through experience.
Experience helps of course, but prior education and practice should be always given high priority for more efficient and knowledgeable handling of the unknown.

Practice makes perfect

You know that old saying, “Practice makes perfect?” Well, it’s true. The more you practice something and the better you get at it, the more confidence you have and the more aware of your own mistakes you become.
In sailing, as with software testing, the more you do, the better you get. But that’s not all. The more you invest in learning and educating yourself, staying on top of new stuff, and expanding your knowledge to new areas of your profession – the better you get. Your tasks will be done easier, faster, and most importantly, with high-quality results.
The reality is that you can’t control the wind, waves, or weather. You can’t control the other boats’ behavior. That being said, you can, and should, focus on your own boat and the process of sailing it. You need to know to plan, learn your sails, and get ready so well, that when conditions change there’s no hesitation.
The same goes for testing. A good tester knows their project goals, are familiar with the testing methodology, and is well aware of the requirements of the tested product. They learned their testing tools and can use them for the testing in the best way possible.

Testing and Sailing

Sailing and software testing have more in common than you might think. Both require knowledge of your environment, preparation, and teamwork. For both, the more educated you are, the more you keep yourself updated, and the better your results are.
And in sailing as well as software testing, you should have proper processes and methodologies in order to perform best.

And for me, above all, they are both great fun…