Modern society can be summed up in two words: instant gratification — and we have technology to thank (and blame) for it.
Want to order any product you can imagine? Buy it on Amazon and get it in two days.
Want your thoughts validated by a stranger? Post them on social media and get likes in minutes.
Want to learn how to do something? Go to YouTube and watch a video in seconds.
The speed of technology is a blessing and a curse. On the one hand, it’s given humans access to more information, goods, and services. But it’s also depreciated our value of time. And it has caused us to have unrealistic expectations for other areas of life.
Why can’t learning your company’s codebase be as easy as watching a 15-minute YouTube video?
Why does it take longer to be liked by your coworkers than by strangers on the Internet?
Why does it take months to approve a new technology for your tech stack when the entire team is already on board?
You don’t have to work long in tech to realize some things are frustratingly slow. It can take months to learn a codebase or build trust with your manager. And it can take years to change team processes or get promoted.
Today, I want to explore how to embrace slow progress at work with the right mindset. When you stop watching the clock, you can accelerate both your own growth and that of your team. In doing so, I believe you'll find even greater value in your efforts.
A Deeper Understanding
When it comes to software engineering, learning takes time.
You can learn the basics of React in a 30-minute YouTube video, but it’ll be surface-level knowledge. Likewise, you might be able to learn how your company’s codebase operates in a few weeks, but you won’t have a deep understanding of it until you’re contributing code to it.
If something at work is taking longer than you’d like, lean into it. Had you learned it in a day or even a week, how much would you truly know? And would you understand the nuances and edge cases to possess a thorough knowledge?
Be thankful you have the opportunity to dive deep into the topic. Give yourself the grace to learn at your own pace. Think about how well you’ll know the subject after some time. And how valuable that knowledge will be for your team.
One simple rule I follow when learning complex material is to break it down into micro-tasks. Here are some examples:
Learn React→ LearnuseState
in ReactLearn the checkout flow→ Learn step 1 in the checkout flowLearn the deployment process→ Learn how code is tested during the deployment process
Celebrate these micro-tasks when you finish them. Acknowledge the progress you’re making and keep going.
Being a strong software engineer is less about quantity and more about quality. When progress is slow, focus on the details and inner workings.
Refining the Process
Another benefit of slow progress is the potential to improve processes. You might discover that something can be updated to make a process better. Or you could find a related process that warrants improvements.
Take the process of setting up a development environment and learning the codebase for new hires. Is the onboarding doc outdated and unclear? This is an opportunity for you to make the necessary changes. This improves the developer experience for your team and makes it easier to onboard for the next hire.
One more example of this could be your efforts to learn how your team deploys code. The deployment process itself might be running smoothly. But you may notice it takes longer than expected for tests to run. Perhaps this discovery is worth mentioning to the team. A task can then be created to investigate this further.
It’s hard to level up processes without spending the time to understand how they work. Making slow progress on a task can be a blessing in disguise. It can reveal worthwhile improvements to the systems your team relies on.
The Sweetness of Success
Think about the last time you had to work hard for something. How did you feel when you finally did it? I bet it felt amazing.
The truth is success tastes sweeter when you overcome challenges along the way.
The next time you feel frustrated with a slow-moving task at work, take a moment to visualize the finish line. Imagine the satisfaction of that victory — and let it fuel you to march on.
I can’t even count how many features, bugs, code reviews, and meetings felt like they lasted an eternity. I used to count the hours, days, and weeks ticking by, and it was excruciatingly difficult to find any silver lining.
But over the years, I’ve learned to appreciate the not-so-obvious benefits in these moments. When I acknowledged them, my perspective shifted, and I found the motivation I needed to move forward.
You will too — because slow progress isn’t wasted time. It’s an investment in deeper understanding, better processes, and a more rewarding finish line. Keep going. It’s worth it.
Well said, David. People say "time is money" but in a literal and opposite sense, money can be the product of time well spent: where a more careful, considerate approach to understanding a system or performing a task will ultimately result in greater success for all.
I don't know about anyone else, but I surely needed this reminder.
I've changed careers more than once; I recently caught myself running headfirst into burnout because I didn't feel like I was progressing fast enough.
Thanks, as always, for helping us put things into better perspective, David!