As the ancient Greek philosopher Heraclitus once said, "Nothing endures but change".

But have you ever wondered why some of us handle change better than others? And how does this relate to software testing? Well, it's not the change itself that's the problem, but rather the uncertainty that comes with it. And who plays a crucial role in managing this uncertainty? Our software teams use testing as their primary tool. 

In this talk, I will take you through uncertainty and its impact on our lives by looking at case studies from the cotton mill workers of 19th Century Britain to the fall of Nokia as the world's No. 1 phone maker and how change connects them both. Then, I will explore how the uncertainty of change can sometimes cause us to ignore, deny, distort, or even try to stop it from happening instead of working with it. 

From there, I will show you how to work with uncertainty by getting curious and learning about our environments. However, this approach works well for well-understood things with expected outcomes, such as a combustion engine. But creating software is far from certain. 

The problem with software development is that we can only be partially sure that what we build will give us the desired outcomes. Moreover, we don't always know the best way to build it. To reduce this uncertainty, we use testing, but not always in the most effective way. We may use testing to feel that we are reducing uncertainty, but it does not necessarily do so. Yet, wonder, curiosity, and learning empower us to navigate the uncertain waters of software development.