Reflecting on Wasting Time

With limited time comes great responsibility
Published on 2024/06/24

As I get busier and busier in life (raising a family anyone?) I'm trying to be careful about how I use my time. This is part of the reason why in the last year and a half I've been focusing on experimenting with different ways to use my time efficiently. Starting from how I choose the books I read, to how I consume content or social media in general. I constantly try to apply this at work too, and it helps to have a goal (more about this in Setting Your Target). Any time I stumble upon a task, I try (and not always succeed) to weigh it against my goal (in a leading position, one of the goals is the team's success). If I don't think it will move the needle then I won't do it. If I think it can move the needle for someone else, I delegate.

This reminded me of some extensive amount of time I wasted back in 2017 (if I remember correctly). I was bootstrapping a lot of new projects at work, this included setting up Webpack over and over again. Unfortunately, it was often an extensive fight. This led me to spend evenings digging into the docs, and books, and playing with different configurations. Keep in mind that, most of the time, once you get the setup right, you'll rarely touch it (to be fair, that was at least my experience). Every time I had to go change something up, I had to re-learn the tooling.

Frustration led to "innovation" (I'm very hesitant to call it so in this case, but generally that's how it goes). So I built a layer of abstraction on top of it, which made the setup declarative and composable in a way that Webpack didn't provide natively. I never open-sourced it because it was not close to production-ready (maybe it was, I guess we'll never know). Going beyond the details of it all, I gained little to nothing from that experience. And I spent several months on it. Today I wish I could afford to do so!

This is part of the reason why I don't like to over-focus on a specific framework or a tool. I always recommend having strong fundamentals in your field, those will rarely go out of fashion. Tools, on the other hand, come and go (look at all the options we have today, for better or worse). There are a few things I learned from that experience, but nothing worth several evenings of my precious time.

Thoughts

Without getting too philosophical, we only have a limited amount of time in this life. If you put things in perspective, you realize that you should be very cautious about how you spend your time. Realistically, there are tasks (for lack of better wording) that are still hard to resist, or possibly they are just a gamble. Nowadays I timebox anything that I know won't contribute to getting closer to my target. If the ROI is high, I consider pursuing it; if not, I drop it. It took a few attempts before I learned this lesson. I won't get that wasted time back, and to this day, I wish I spent it on something else.

There's a caveat to all this that I think is important to highlight. Sometimes the ROI is not immediately clear, and you have to make a bet and take calculated risks. This is a skill that's hard to develop. It's also part of the reason why you should work on refining your intuition. This is something that Understanding Software Dynamics mentions several times. Before revealing the answer to anything OR looking at all the data available, attempt to guess what the outcome would be. Reveal the data, compare it to your intuition, and adjust accordingly.

All of this said, I consider my time spent speeding up our test suite for a specific feature a positive. It helped the team move a lot faster cutting out 20 minutes from our development lifecycle. I also consider the ungodly amount of time I spent learning the ins and outs of JS a great use of my time. I carried that expertise for a decade and should probably freshen up again.

0
← Go Back