"Think big" or make progress?
I am being told to "think big."
But I don't know what this means.
And I doubt that most people who tell others to think big can do this themselves.
It is easy to come up with big ideas that are not realistic. "Inhabit Venus" sounds like a big idea, but I can do nothing meaningful to implement it. Finding big ideas that are also realistic is hard.
Big ideas
For the sake of the argument, let's define a Big Idea as follows:
An idea is big if its implementation spans multiple teams or requires substantially altering business-critical systems. By definition, implementing such an idea takes quarters or even years to complete.
Given the risk and the funding Big Ideas require, pitching them is not easy. In many cases, even Staff Software Engineers do not have enough credibility to get such an idea funded. Instead, it takes a team of Product Managers, Engineering Managers, and Software Engineers to prepare and propose the idea.
Big Ideas promise high rewards but are inherently risky. Many won't bring the promised benefits, and some will flop completely. Because of how long it takes to implement a Big Idea, not everyone who started it will be there to witness its completion and get the reward.
Earlier in my career, I spent most of my time trying to find the "big thing." I was not successful. I was obsessed with "thinking big" but couldn't come up with anything. It took me a while to realize that time was passing, but my career was not progressing. This realization led me to an alternative path.
If not Big Ideas, then what?
When I found that trying to "think big" was not helping my career, I shifted my focus to finding and solving problems I and my team or users faced. No problem was too small. I simplified code that was hard to modify, added missing test coverage, or sped up the build. These were simple changes that I could tackle immediately, and they usually didn't take more than a day to finish. But they helped push my career on a growing trajectory. Here are the most important reasons why:
I learned how to take the initiative and propose improvements no one asked me to do
I got better at identifying problems
I improved life for our users, my team, and myself
The nice thing about these small bets is that they can boost a career even though they are easy to find and not risky:
due to the smaller scope, they are much easier to complete
if something goes wrong, it usually is not a big deal
delivering them consistently helps build the credibility
they sometimes lead to bigger ideas
Some of these small ideas occasionally had a much bigger impact than I expected. Here is one example. In response to an incident, I needed to write a tool that inspected data in our data store and deleted stale records. The store my team used was one of the most common infra used by many teams across the company. When researching how to complete my task, I noticed that some other teams already built similar one-off solutions. Instead of creating another specialized tool, I wrote a framework to make these tools rapidly. Because my framework saved weeks of development time, a few teams adopted it. I moved to a different team a few years ago, but my framework is still in use. Some developers even extended it to handle more scenarios.
I observed that, with time, my ideas started to grow. I started noticing bigger problems that needed more time and people to be solved. They still are not in the "Big Ideas" category, but many are noticeable as they span multiple teams.
Parting words
Please note that I am not saying never to "think big." If you can propose or help drive a "Big Idea," by all means, do so. But don't dismiss smaller problems, especially if your "Big Idea" is not quite there yet. At the end of the day, when the review time comes, it's always better to show a few completed small ideas than a "Big Idea" that hasn't or couldn't be implemented.
If you found this useful, please share it with a friend and consider subscribing if you haven’t already.
Thanks for reading!
-Pawel