Last month I spent two weeks traveling to Mexico City, Bogotá, São Paulo, and Rio de Janeiro with Geeks on a Plane Latin America. This was my second GOAP trip; my first was last year’s trip to Eastern Europe. GOAP is an amazing professional and personal experience and I highly recommend it to everyone.
Once our group of geeks arrived in Mexico City, I discovered I forgot to pack socks, so the only pair of socks I had with me were the ones I had on my feet when I left home. Not a big deal, as I figured I’d just buy a few more pairs when we had a few free moments.
What I had forgotten to account for was the jam-packed GOAP agenda. There’s a lot to do and very little downtime, and when there is downtime there’s tons of awesome stuff to see and do. So after the first day I still found myself sockless. I didn’t want to offend my fellow geeks with nefarious foot odor, so I hacked my way to clean socks: I hand washed them with soap in the hotel sink and used the hairdryer to dry them. Not an ideal solution, but it worked.
I convinced myself I would only do this until I had a chance to buy more socks, but I was lying to myself. I had found a solution that worked well enough, and so I kept putting off going to the store for socks. So every night when I got back to the hotel, I washed my socks. But a good hacker doesn’t just ship solutions, he or she iterates on those solutions to make them better. And I did, a little bit; I started letting my socks air-dry overnight and using the hairdryer to finish them off in the morning so it would take less time. And I only almost lit my socks on fire once!
I was paralyzed because I knew exactly what the ideal solution looked like (spoiler alert: acquire more socks) but my current solution was “good enough” and as a bonus it made me feel a little bit clever. In my experience, the hardest part of engineering management is finding the balance between building new stuff and paying down technical debt. And here I was paying for my hacky solution with my time because I didn’t want to slow down for a moment and fix the root cause of my problem. By the end of the trip, my socks were threadbare from the vigorous washing and a lack of proper detergent.
Don’t forget that a key part of being a good hacker is learning from your solutions and iterating to improve them. Otherwise you end up with a solution that requires constant care, might catch on fire, and breaks down over time.