It’s crunch time for my current project at work. We’re a week away from launch and I want to release on schedule, seeing as we already flew right past the previous planned release dates.
Feeling the pressure for the last few weeks, I’ve rushed through everything. Every ticket I pick up is a race, to work late and get it done quickly. When I talk with teammates about technical aspects of their work, I always lean towards them picking the quick hack that gets the work done now, rather than invest the time to build it correctly.
Busy period like this happen - what’s different this time is how mindful I am about the negative effect it’s having on me. I’m more cognizant of how the extra hours are affecting my energy levels. How the team is overwhelmed. How to get this out the door on time, we’re building up tech debt that we’ll inevitably have to repay someday.
Although I’m getting a lot of work done, I’m not growing as an engineer.
For example, I recently had to put together a script to select a key that matched a regex from a JSON array, using the command line tool jq. Usually, when I have a problem like this I would first sit down and spend time reading the jq documentation. This pays off two fold - it would give me the context to fully understand what I was trying to accomplish, while also learning some of the underlying concepts and making it easier to use jq next time.
Instead I did what programmers often do - I googled my question, “JQ select key from JSON array”. I scanned the top Stack Overflow response (not even reading the question of course!), copy and pasted & voila! I had a working solution. I verified it was what I wanted, added it to my PR, and moved on.
There’s nothing wrong with using Stack Overflow like this, to grab a quick answer. Sometimes it would save you hours of research that you don’t have. However each time you do it, you lose an opportunity to spend your time learning and truly understanding something. That research is some of the most valuable time in your career. If you ever wonder how the people answering questions on Stack Overflow know so much, that’s how. Treating each problem as an opportunity to learn, rather than an obstacle to be cleared.
Over the long arc of your career, your success doesn’t come down to how quickly you can accomplish tickets. It comes down to all that time you spent learning, and mastering the subject.
So in the rare situations when you need to rush something, go for it. Say twice a year - deadlines are real, knuckle down and get it done. But if you find yourself sprinting through life more often than that, take a break. Your career is long. Stop viewing it as a 500m sprint, and think of it like a marathon. Constantly rushing isn’t good for your organization, and it’s certainly not good for you. Spend the time, go deep, and learn.