Boredom. It’s something we all become intimately familiar with at a very early age. Boredom is the ten-year-old sitting on the couch with a million video-games, a hundred channels of TV, an Internet full of YouTube and Facebook, a bookshelf full of unread volumes, and the statement that frustrates every parent: “I’m so BORED. There’s NOTHING to do.”
What exactly is that ten-year-old trying to say? Clearly they don’t mean there is nothing available for them that they enjoy doing, because I know they love video-games and YouTube and books. What they really mean is: there is nothing sufficiently novel that it is going to get my brain excited right now.
Boredom isn’t about the choices available to you. Boredom is about a state of mind and how you feel about your choices.
So why does this matter to a Software Development Manager? Because bored coders are unproductive coders. Worse yet, bored coders are actively looking for interesting work; if they don’t find it where they are already employed, they’ll find it somewhere else. So how do you prevent bored-coder-syndrome?
Taking a lesson from our ten-year-old on the couch, the answer is not as simple as giving your team a bunch of different stuff to do. Our bored pre-teen has that, but it doesn’t stop them from moping about on a Saturday afternoon. The key is to tackle the mental attitude about the stuff your team is already doing. This is good news for most of us, because even if it could solve the problem, a never-ending supply of brand-new coding challenges is pretty hard to come by.
So how do you change a coder’s attitude about their work? Here’s a quick list of some techniques you can use.
- Assign Them as a Mentor. Get this coder to begin teaching what they know to someone else. Maybe you can assign them to a new employee, or a new member on their team. Perhaps they are a specialist in high demand (or simply low supply) and you can tackle their boredom by having them train a backup; this solves a risk problem at the same time.
- Remind Them of Their Purpose. Your software group exists for a reason, and it isn’t just to “make money” or “keep the accounting department happy”. Figure out who your customers really are, and figure out why they want your software. Identify what you do for that group, and get this coder energized to do it better.
- Make it a Challenge. Find a metric you can measure and challenge this coder to improve it. Maybe it’s the performance of a key algorithm. Maybe it’s the number of failed unit-tests per week. Best of all, have them pick something they care about and make it better.
- Investigate Something New. Ok, sometimes the answer really is to find something new and novel. Challenge this coder to find a topic of investigation that appeals to them and give them some spare time to work on it. Maybe they can improve your build, or identify a new way to create those domain-specific-languages you are so fond of.
- Break The Work Up. Google has their mythic 20% time. Atlassian has FedEx days. At GenoLogics we have Ground-Breakings (previously known as Hack-Days). All of these have one thing in common: sometimes you need to let your employees just explore and pursue a passion. Every organization that has done something like this will agree that they get the value back, often with interest.
The important thing is to remember that ten-year-old on the couch. You can’t solve the boredom problem by just providing a new toy – at least, not in any permanent way. Your boredom solution must be an integral part of how you run your entire team.