Ever had a solution staring you in the face and didn't even realize it? I have. It's always one of the obvious ones that (in hindsight) I can't believe didn't occur to me sooner.
Like the blinds in our baby's room. For months he'd been able to grab them, and he'd managed to break a few of the slats. I'd walk by the room, pause to consider where the crib could be moved, and walk away convinced the room was too small and nothing could be moved. Then one day it hit me - don't move anything, just leave the crib in the corner and turn it 90 degrees. It was longer than it was wide, so turning it on the spot moved the window out of range. This took months for me to realize. Even as I type it, I have no idea why. Maybe if I had mentioned it to someone - like another parent - they would've suggested it earlier.
Or the shelf I built in our living room. It's floor to ceiling and heavy, so I couldn't move it when it came time to stain it. I spent an hour carefully taping the wall, behind every cube (5x5), the outside of it, and underneath where I'd built longer shelves. After I was all done and showing it off, someone asked why I hadn't just slid a large piece of cardboard behind it. .... @#$%!
Then last week at work, I was trying to modify a piece of code to log any errors and prevent it from potentially crashing. We use Erlang, which has the ability to supervise itself and restart blocks of code that fail. It's neat stuff, but I spent a full day trying to retrofit things without much success. I finally vented to a coworker, who suggested using a
try/catch block to make it log an error and keep on truckin'. His suggestion was one of the most basic concepts in any language, and was exactly what I needed to get the job done. I was just too focused on the first solution I had thought up.
What's my point with all this? If you're a developer, don't hesitate to share what you're working on with others. If something's been annoying you for a long time, throw it out there - someone may have a fix. If it's taking too long, vent - someone may have a faster way to do the same thing. And if it seems too hard, it might be that you don't understand it well enough yet, or maybe you just need a second pair of eyes to help fix your tunnel vision! (Now I just need to keep repeating this to myself, over and over again.)
Forcing full-time pairing is not a good thing, but pairing when it makes sense for the team absolutely is. It's about collaboration and a fresh point of view. From my own experience, when I work on something alone I may think up a better solution.. eventually. More likely, the first thing I think of is liable to be the thing I drive towards with laser focus unless I will myself to take a step back. It's usually when I bounce the idea off someone else that we come up with a better solution together together.