During my last improv class, we did an exercise where everyone had a monologue. I was surprised at how each person was able to make a scene come to life with a beginning, climax, and end so seamlessly. When one of my classmates Olga went on stage and was given the location ‘ice cream shop’, she immediately transformed into an ice cream shop server. As she pranced around the shop, she sampled a taste of ice cream and made the ice cream cone come to life. She took a few licks, and then scolded the ice cream cone for making her butt big, but wrestled with how delicious he was. She finally decided to toss the ice cream in the trash. Every person appeared as if they had been preparing for this scene for the past week.
But none of them had any even preconceived notions in mind. They had all been given a random location on the spot, and had to create a scene based on that location.
I notice an analog in programming. When I was pair programming with our front-end developer Bruno today, I asked why he had defined a function in class A but not in class B, I expected him to be prepared with an answer. Instead, he said “Let’s investigate” and opened class A, going line by line to trace back where the method was being used. He realized that there actually was no need for that method and we ended up taking it out.
You can’t know the answers to some things in life. And trying to hold everything in your head is exhausting. What you can do is be quick to adjust in the moment and execute on the spot.