Most of us treat obstacles as “Those things that are blocking my way. I need to get past them ASAP.”
And as developers we face many obstacles every day.
We might be asked to meet impossible project deadlines. Or we’re stuck in an hour long debug session, trying to figure out why the damn thing works on Android but not on iOS.
We find ourselves encountering code that doesn’t work and doesn’t make any sense. Or code that does work, but still doesn’t make any sense.
And sometimes we face real life obstacles. With no compiler or interpreter present to tell us what we’re doing wrong.
I’ve always viewed obstacles as inherently bad things. I believed obstacles should be avoided when possible. I think most of us share that belief.
But I’ve recently come to question this thinking paradigm. Hear me out.
The Obstacle is the Way
I started reading The Obstacle is the Way. A book that talks about how incredible people like Edison, Roosevelt, Rockefeller, and Washington faced their obstacles.
The point of the book is that awesome people do more than overcoming obstacles. Awesome people learn from obstacles and become much more capable because of them.
Creating incredible things along the way.
The main takeaway is that the most inspiring people you know probably became that way precisely because of the way they overcame their obstacles.
And in our defense, George Washington never had to create a functioning webpack configuration file. So no living soul on earth can tell if leading the American Revolution was a harder task. I’m betting on a close tie 😉.
Truth be told we don’t have to look that far to find examples of how overcoming examples can lead to amazing things.
Jordan Walke is a developer at Facebook. Several years ago he was part of a team who was working on the Facebook ads management UI. If you wanted to create a new Facebook ad, that’s what you’d use.
The web app Jordan worked on allowed you filter your target audience according to the entire Facebook knowledge graph. And as you can imagine Facebook knows a lot of things about us. So the web app grew and quickly became a very complex code project.
The team at Facebook realized they created something fairly fragile, which was error prone. No one wanted to touch it.
This fragility happened even though Jordan’s team was using established best practices at the time. And doing their best.
You may have heard of the library Jordan created. When Facebook later open sourced it, they decided to name it “React”.
Douglas Crockford is another man who seems to improve himself and the world around with every new obstacle he encounters.
Back in 2002, Douglas needed an easy way transfer data between the browser and the server. This way would play a key role in what his startup company, State Software was about to develop at the time.
But no one else wanted anything to do with it.
The companies Douglas approached rejected him and his new messaging protocol for several reasons. The responses he got were variations of these three:
- “We’ve Never heard of it.”
- “Our company just committed to XML.”
- “Your messaging protocol is not a standard.”
So Douglas went ahead and created a single page website. Not a single page web application like we know today. I’m talking about a single, lonely, ugly HTML page.
That one page consisted of 442 words, 6 links, and 2 images.
And that’s how the JSON messaging protocol was born.
Side note: JSON.org uses a background color called “linen.” Arguably the ugliest background color in the history of background colors.
The Good Parts
In 2007 while working at Yahoo Douglas faced another obstacle.
This was about 2 years after someone named Jessie James published what was considered as a revolutionary idea at the time.
Jessie titled his manifesto “Ajax: A New Approach to Web Applications.” Thus Cementing the foundation on which all modern web apps are built today.
And the rest is history.
Facing Obstacles Head On
Douglas Crockford was blocked by several obstacles throughout the years.
One time he ended up creating a messaging protocol every developer now knows and uses.
So lately there’s a question I’ve been asking myself quite a bit. And hopefully you’ll start asking yourself too.
What obstacle is blocking you?