The scope of your development work lies well beyond the scope of your current project plan.
I once took the attitude that the code I wrote was purely driven by a project or development manager as prioritized and requested by some business unit. I viewed my code as almost pure utility, that its specific purpose was to improve some feature, add some benefit, optimize some function or streamline some process.
I once took the attitude that the code I wrote wasn’t that important. Sure, it was important to the business unit in question, or even the company. But – in the big scheme of things – it wasn’t that important.
We often have a myopic view of the code we’re writing and its overarching total impact. Even if we’re working on “large frameworks” or “enterprise applications,” we’re likely not looking at the bigger picture. How big is the bigger picture?
Think bigger. Your code may impact the world.
The Theory of Thinking Big
Are you working on a framework? Stop for a moment and think about impact. Can you think a little bigger than your current problem? Can you broaden your scope just slightly? Can you distil some domain-specific bit of logic into a more generic pattern? Can you add hooks into the appropriate points to allow other developers or frameworks or businesses to benefit from your algorithm?
We’re often too focused on the immediate, tactical solution to think at a much larger scale.
Let’s look at a hypothetical process. Are you trying to improve your nightly process from 500,000 Widgets to 1,000,000 Widgets? You know what’s cool? A billion Widgets.
Hyperbole aside, if you’re working on a tactical solution to a scaling issue that brings your business from 500,000 Widgets to 1,000,000 Widgets during some nightly process, that’s great. You’re happy. Your business is happy.
But what if you could process a billion Widgets? How would you solve such an issue? What would it take? How much would it cost? What kind of solution could you build with infinite resources and time?
Who would benefit? Who could benefit?
Let’s Talk Reality For a Moment
We don’t have infinite time or resources. Sometimes, we’re so far behind schedule we’re working late nights and weekends just to push the bare minimum!
Thinking bigger has a cost.
Your one-billion-widget solution might be perfectly impractical from a budget and time point of view. That’s alright. The point is to think, that’s your real value.
By thinking bigger, you’re looking at your immediate problem from a much higher point of view with much a broader use-case. It’s ethereal thinking and it’s likely to be thrown out, but your thought process helps strengthen your base implementation.
Perhaps you can add one more hook, or improve on just one single web service that gives you a bit of an edge. Perhaps figure out a slightly more efficient algorithm that processes just 500 more Widgets per minute. It’s not billions, but it’s a substantial improvement.
Think about scale. Think about code. Think about integration points and areas of dependencies.
The code you write may be driven by a project plan for a specific business problem. But ultimately, as a developer, you’re in control. Your code may impact the world.