The Stack Overflow Disease & Other Related Illnesses
Diagnosis
You’re sitting at your desk with a high fever and shivers all over your body so you’re forced to take a trip to the doctor’s office seeking for a cure.
After examining your symptoms he concludes you’re suffering from what he calls: Stackoverflow-itis. “Huh? What the heck is that?” You say “And what does it mean to me?” Allow me to explain.
Stackoverflow-itis [StakOberFlou-iris]
noun. Mental condition that generally affects developers indiscriminately of their experience level, manifesting itself in subjects who fail to understand the real cause of a problem, let alone finding a solution; so they simply seek for an answer, ditching to grasp the inner workings of such. See lazy.
Why it Happens?
It has happened to all of us - your baby crashes and you’re unable to determine exactly why. You’re approaching a deadline, own some very ambitious requirements or have a huge to-do list on your plate, or maybe all three. (Heck, aren’t all developers superheroes after all?)
At this point you will probably try a few of these, if not all:
- Print statements
- Breakpoints
- Diagnostic tools
- Tests
- Ask your cooler & way smarter neighbor
To your surprise you’re still stuck and despite the fact that you’ve wasted all this time and energy you’re still unable to come up with a solution. So you turn to a developer’s most badass friend on the planet: Stack Overflow. Type in a few keystrokes and done… YOU FOUND A SOLUTION!!!
The Result
“I’m a genius, I figured it out!”
“I don’t really know how, but it just works”
“Of course! Why didn’t I think of that?”
These are some of the thoughts that go through your mind at that moment when, thanks to a tool developers cannot live without (how did we ever get by without it?), you are able to solve just about ANY problem, in ANY programming language, regardless of whether you understand it or not.
And this is precisely the issue. It seems like the knowledge base behind Stack Overflow has caused many developers to cease to think as engineers, fall out of love with problems and stop soul searching for the inherent beauty found in algorithms. In other words it has made us LAZY, very LAZY!
Instead of finding the nearest white board to sketch things out or jotting down a list of probable causes (from which we can progressively arrive to a solution), we are consistently resorting to tools like Stack Overflow before we even fathom the issue at hand. We are racing to copy and paste our logs into Google seeking for the shortest path to an answer, an answer that could put us back on track in the race of shipping a product, FAST.
We are effectively removing the fun out of development and turning it into a cyclical, monotonous process that anyone can partake in simply because the the tools available to us have lifted the barrier of entry. Anyone can code, anyone can google how to create a calculator app.
Lowering the barriers of entry is fine though; this will allow young developers to start programming at earlier ages and allow project managers to understand how engineers spend their days at work. However, this comes with an undesirable side effect: it also lowers the standards needed to create software and thus the quality of such.
The conclusions are clear:
a.) Developers have gotten lazy (Duh!)
b.) We care more about the destination (product) than the journey itself (development)
c.) We are outsourcing the problem-solving process to fellows like Stack Overflow & Google
d.) Developers are most often opting for the fastest solution rather than the most appropriate one
e.) Our code base is looking more and more like your favorite spaghetti dish. Yuck!
The Challenge
My invitation is simple: let’s think about problems critically not impulsively, let’s fall back in love with our work and let’s take pride in the software we build.
Technology is single-handedly changing the world as we know it and gradually revolutionizing every single industry. We are the catalysts of that change and I can’t think of a more exciting industry to be in today! Are you really aware of this?
We are ambassadors of innovation. Let’s embody that and reflect it in what we do. Let’s stop relying on our toolset and go back to relying on ourselves and our greatest asset: our minds.
Disclaimer
This might sound outlandish or farfetched to those who learned to program looking to build the next Facebook or Twitter; those that simply picked up a programming language eager to create the next billion dollar venture featured on Tech Crunch on a sunny Monday afternoon. This isn’t directed at them. This isn’t intended for them for it is understood they are only identifying a business opportunity and not an inspiration to wake up to and feel excited about every single day.
It is, however, targeted at those who feel an insatiable hunger for complex problems that typically represent real life situations and their decomposition into a smaller set of problems which stem from a scientific approach to solving them.
P.S. Remember to recommend this article if you found it fun or useful (or both).