Many of us work Monday through Friday at breakneck speeds, trying our best to meet deadlines and produce quality code, with the ultimate goal being to deliver great products and services to our clients. For me, the feeling of accomplishment that I get when I complete a large task is one of the most rewarding aspects of software development.
And, while accomplishment is a great feeling, there’s a related phenomenon I’ve struggled with over the course of my 10-month tenure here at Algonquin Studios, and it’s what I like to call “tunnel vision.”
Imagine attempting to paint a twenty-foot wide mural without ever standing more than three inches from your canvas. Since you are so close, you’re able to add extra detail, and maybe even come up with new ideas while you’re working on the small section of the painting. But, what does this painting look like in the end, you might ask? Up close, the individual components of the painting appear beautifully intricate. However, if you step back twenty feet and look at the entire painting, you might realize that you accidentally have half of the people in the scene looking in the wrong direction or perhaps you gave someone two left hands. When you are in this tunnel vision state, you’re so focused on your task that you feel productive and it isn’t until you actually step back and look at the big picture that you realize the glaring mistakes staring you right in the face that will likely end up costing you time and resources.
So enough about painting, what exactly am I getting at here?
If we take this painting example, and apply it to any software development project, there are clear similarities. For example, if you have a large development team working on a project that’s estimated to take several years to complete, it’s easy to sit and simply focus on your task at hand. The issue is that, just like the painter I referenced earlier, your task may appear perfect up close but when you take a step back and look at how it fits into the rest of the system you may realize that things aren’t as peachy as you thought they were. Maybe you’ve missed an opportunity to collaborate with someone who could’ve given you insight into how to better complete your task.Or perhaps you’ll realize that the extra functionality you implemented (which made sense to you at the time) actually breaks a significant part of the system or will require a significant amount of additional testing. Even something as mundane and simple as changing a database table column name can have a rippling effect throughout the entire system. These things can cost a project time and time is money.
It’s clear that we need a way to recognize when we’re experiencing tunnel vision and find ways to eliminate it.
Here at Algonquin Studios, we might take a quick run up to the seventh floor, just to get our blood pumping a bit. Others simply take a few minutes to sit on a couch and read a book. In the rarest of cases, we’ll watch cat videos on YouTube. Even simple things like these can help clear your mind of distractions and stay focused on the big picture, ultimately improving your productivity and making you a more effective developer.
Do you ever experience tunnel vision? Have you managed to defeat it? If so, leave me a comment with some of your favorite techniques. It’s certainly an issue that I struggle with on a daily basis and I’m sure that I’m not alone.