It was January 2021. At 4:05PM, evening was well underway. Boston’s light gray clouds matched the dirtying snow that lay on the yard. My now-fiancee, my roommate and I were gathered at the kitchen table, witnessing the onset of evening. Our minds were a numb blur filled with thoughts of the ongoing pandemic, social isolation, and a longing for adventure. Something needed to change.
I didn’t have a job at the time, but my risk appetite was high. I knew that making a change, no matter how risky, was more beneficial for me than burying myself in snowy stagnation.
The result of that twilight conversation was an intention, then a plan, and ultimately a move to Austin, TX. I knew the move was experimental. There were plenty of unknowns, including the fact that I had never been there before. I knew that moving wasn’t guaranteed to be comfortable and it wasn’t guaranteed to be permanent.
Yet, I felt strongly that it was a move that would provide a foundation that I could pivot and build off of for the rest of my life. Something about Austin called to us. It’s hard to explain concretely. But if you’ve ever felt a piece of this Earth beckoning to you from afar, you know exactly what I mean.
Changes in life can feel weighty, overwhelming. We often use the term “life decision” when we decide to make these changes. There’s a heft to the term, an expectation that we’re fully in control.
Instead of heavy “life decisions” — what if we treated our evolving lives as experiments instead?
On Tracer Bullets and Prototypes
Building software is almost identical to crafting a life we love. There’s an idealized “final product” and a whole lot of uncertainty on the way. Prototypes and tracer bullets are two ways developers experiment before launching a product or feature.
You’ve likely heard of a prototype before. Focusing on exploring design options and getting early feedback, prototypes are rudimentary versions of a product. They often don't represent an end-to-end system, and the code will likely get canned, intentionally.
Prototyping is a learning experience. Its value lies not in the code produced, but in the lessons learned.
~ From The Pragmatic Programmer
Tracer bullets, on the other hand, provide an end-to-end proof of concept of a fully functioning system. They’re still messy and experimental. But a tracer bullet intends to create a path for incremental development. In other words, code written for a tracer bullet isn’t deleted. That code is intended to make it into the final version of a product.
Tracer code is not disposable: you write it for keeps.
~ From The Pragmatic Programmer
Both tracer bullets and prototypes aim to reduce risk and uncertainty in the software development process. And they can help us experiment with life, too.
Life Experimentation
You may not even realize when you’re crafting a life experiment, but if you find yourself planning something that feels “big” – there’s a good chance you might be. When I get the feeling that a “big plan” is brewing, that something within me is bubbling up, desiring to find a place in my life, I ask myself: What am I trying to test?
🧗♂️ Test: Do I like rock climbing?
About a year ago, I found myself curious about rock climbing. But there’s an investment when committing to the sport. I didn’t show up to a bouldering gym with new shoes, an unopened bag of chalk, and zero experience – ready to buy a membership. Instead, I purchased a 10 day punch pass and I rented shoes for my first few climbs. It was a prototype. After I climbed a handful of times, I gleefully purchased a monthly membership, chalk and shoes. I learned from my prototype, and I embraced a “full product.”
🏠 Test: Do I want to live in Austin?
When my fiancee and I first arrived and explored what kind of home Austin could be, we reduced the risk of our commitment by initially prioritizing cheaper housing and secondhand furniture. We fell in love with the city. We found new friends, excellent coffee, and tacos. At a certain yet subtle moment, our move to Austin was no longer a tracer bullet, an experiment. It was a full product. Now, we’re settled in a two bedroom place with a cat, a great couch, and a couple standing desks. Not lavish, but certainly settled!
Examples of prototypes and tracer bullets are everywhere if you look:
Fostering a pet is building a prototype. Outright adoption is building a tracer bullet.
Visiting somewhere for a month and learning about what it would be like to live there is building a prototype. Moving and seeing how you like it is building a tracer bullet.
Dating is building a prototype. Arranged marriage is building a tracer bullet.
There’s no “right” option between prototypes and tracer bullets. They’re simply different tools to employ, better or worse depending on our risk tolerances, preferences, and seasons of life.
Applying this nerdy engineering metaphor has had a powerful impact on my decision making. Instead of worrying and strategizing my next move, I’ve invited a dash of levity when approaching life-evolving crossroads.
I’m saying goodbye to “serious” life changes. I’ll build life like I build software. Everything’s an experimental prototype or a tracer bullet instead.
Really great lessons in here. I think it’s so helpful to treat new things like experiments, yet I so often forget to do that or to test new things out, and that leads to feeling stuck. Really liked the different examples you gave to illustrate your approach!