Like many of you I’ve been developing for some time now.
Like many of you I’ve had days where I was not able to perform as well as I wished.
This is kind of normal I guess. I mean, we’re only humans after all. But when that happens I sometimes wonder what the causes of this loss of productivity may be…
Maybe your child woke you up at 2 AM. Maybe you’re worried about something or someone. Maybe you had an argument with your wife or girlfriend and it’s affecting your focus. These things are inevitable and you’ll simply have to deal with them one way or the other: catch up on sleep, talk to your wife, etc. Don’t care what people say: in my own opinion, separating private and work life is next to impossible. Unless you have no private life, that is.
But in a few cases the problem originates from your working environment, from your colleagues. And not because they are mean or anything. They are simply human, like you!
Here’s three human, understandable and yet annoying situations I have encountered lately on my working environment.
The too-friendly chap
The too-friendly chap is usually a very nice person outside work. He (or she) may even be a close friend. Unfortunately he sometimes ends up being too friendly at the wrong moment.
He/she will come to you to ask how your weekend was, if you read that great article about Node.JS or whether you heard about that incredible bit of news that happened just this morning.
As soon as he/she starts talking to you he grabs your attention whether you want it or not, you lose track of whatever mental construct you were building and you stop writing code, sometimes without even finishing your statement.
Basically, “THIS” happens.
I used to work with that guy, a real joker and very funny person. A great young man in everyday’s life, but a real party-pooper if you were trying to get things done: he would shout (yes, shout!) a joke every 25 – 30 minutes, making everybody laugh. Making us lose track of our thinking.
Knowing that a developer needs in average 15 minutes to get back into his code (as explained here), that meant we were working 15 minutes at a time. At best.
The suspicious leader
I once worked under the supervision of this technical leader who didn’t trust us for some reason. No matter how hard we tried in terms of speed and quality, he would be on our backs to check on us. Every 30 minutes or so. No matter what we were doing. Every time we would be interrupted. Telling him something like “Focusing. Talk later” would only make him grin and mutter right next to us, which of course would result in us losing our focus.
I remember one particular episode where he started asking questions about some half-finished piece of code that was showing on my screen. It was half-finished because I was still writing it, basically, in parallel of writing my tests for it on the adjacent screen.
But nevertheless he started asking questions on what he was seeing, on why I was writing that line and why I didn’t use that method instead. My answers being hesitant at first, his tone started to raise up one notch at every question.
What he didn’t understand is that I was not actually fearing his questions. I was trying to cling on that reasoning, that solution I had in my head which I was trying to implement. When I finally lost my train of thoughts I explaining him what I was doing: the code was not finished, it certainly had to be improved by refactoring it, but my priority was first to make that test go green because I was TDD’ing. I had to explain him what TDD was.
By the end of the argument I had lost my voice. The whole explanation and the time I spent calming down took me more than one hour. But the worst part was that my focus was lost. So I spent the next hour trying to catch up and ended up packing my things and go home: nothing useful would come out of that brain o’ mine, I was too busy thinking about that argument’s nonsense.
In other words, “THIS” happened, like, big time!
The man with the golden phone
That colleague was amazing. Not only he had a big brain we wish we could have, not only was he leading the development of that new version of the company’s major product, he also supported the soon-to-be-replaced application all by himself! He answered the phone all day long and remotely resolved the customers’ issues.
And boy did that phone ring! In fact, the desk phone rang at the same time than his iPhone and his Mac, at full volume so he’d be sure not to miss a call should he be in the office next door. That’s three different ring melodies going off all together, completely dissonant. Imagine that!
Of course, the problem was that there were other persons in that office: developers, trying to focus on their development problems. Some days, “THIS” did not even have the time to happen: the developers could not even reach the “focused” state. As soon as they resumed their line of thinking, they were interrupted by three phones ringing. The code produced those days was, eh, basic. At best.
The good news and the bad news
You probably have lived through similar situations yourself. In fact, feel free to share them in the comments below!
The good news is: there’s a very simple solution to solve all the problems above and restore your productivity at work.
The bad news is: to implement that simple solution we need to convince non-developers on reorganizing the office space. And trust me, that’s no small feat!
We might start by showing them this article from Joel Spolsky. In case you don’t know him, the guy’s in charge of Trello and Stack Exchange. Soi he must be doing something right! And he pretty much nails down what many of us can only dream of: getting out of the way of developers that work to make it happen, letting them work at their own rhythm, as much as possible communicating online using chat rooms and leaving room for some “cross-pollination” (his term. Spot-on!).
With that in place, the three productivity issues described here above would be basically non-existent.
One last thing…
I personally have this to say. Here in Belgium more and more companies allow you to work remotely one or two days per week. Most of those require that you ensure you have a calm room or space that will allow you to focus on your work. Working on your sofa with the TV turned on would not be accepted.
The way I see it is those companies require you to have a better working environment at home than you have at work: a calm room at home but an open space at work, and no TV at home but interruptions and phones at work.
Can you feel the irony?