Staying Happy

Written By Nathan Sykes

Being a programmer or software developer isn’t always a glamorous life. Even if you get to do something exciting and innovative — like sitting at home in your PJs working on a current project —it’s easy to feel burned out and become unhappy or uninspired with your tasks and output.

If you’re in an office or cubicle, that scenario could become even worse as you aren’t in the comfort of your home. Sure, you probably share an inside gag or two with co-workers and you have a good time every so often, but it’s not uncommon for feelings of unhappiness to sneak up.

That’s not to say coding and development is atrocious. In fact, we all are a part of this industry because we love doing it, naturally, and we — most of us, anyway — love being creative.

But who really enjoys plugging away at their keyboard all day, with few breaks and lots of coffee drip-fed into your veins? Even if you do, I’m willing to bet there are some days at work where you just aren’t feeling like yourself.

Negative feelings, like being unhappy and burned out, can impact your overall work productivity and satisfaction. So it’s important to remember that, as developers and programmers, we’re going to run into assignments that make us feel like we’re running in place without getting anywhere — but there are ways to fight against these feelings.

You can empower yourself to take control of negative feelings, and in turn be the best programmer you can be. Here are six tips on staying happy and productive on the job.

1. Take Frequent Breaks

Image of the importance of taking breaks

No, your boss is not going to like it if you’re throwing a football outside or playing games while you’re supposed to be at your desk diligently working. However, that doesn’t mean you always have to be at your desk plugging away at the computer or even interacting with the development environment.

When you find yourself feeling burned out or are having a tough time focusing on your current work, take a quick break. It’s OK to allow yourself some free time. If you’re at an actual office or working alongside others, you’ll need to be reasonable, obviously. You can’t let loose and guzzle down an entire bottle of wine, but you can definitely take a few minutes of silence to clear your head.

One of the techniques I have found most effective has been writing myself a debrief note for the next day detailing 3-5 things that have happened to me at work, be they a task I had difficulty with or a conversation with a coworker about a project.

Some other head clearing techniques that have worked for me in the past include taking a couple of minutes to listen to some calming music (I opt for classical as it simultaneously invigorates the mind while washing over you) and taking a short walk away from your desk (physically leaving the place of frustration can be eye-opening sometimes).

The key to remaining productive is not just working constantly but also making efficient use of the time you do work. You could, for instance, get more work done in the span of an hour when you’re hyper-focused, as opposed to three or four hours when you’re distracted.

2. Ship as Early as Humanly Possible

There’s one particularly nasty element of this industry we’ve all grappled with at one point during our careers, and it’s called scope creep. It happens when the burden or responsibilities of a project begin to outweigh budget, time, and resources.

Often, scope creep can happen because of a delayed or pushed-back ship schedule, offering more time to add content and features. The problem, however, is that the more things you add, the more problems you create.

Start with a general outline of the project, and pay attention to the full scope before you dive in. Outlines can help you streamline your process and get more done. Being able to see what you’ve completed and what comes next can make you feel more productive and thus more happy.

Once your outline is complete, be ready to ship as soon as you possibly can to offset the risks of feature or scope creep. You will always have a chance to add improvements and different features in the future.

3. Properly Identify Bugs, Features, and Improvements

Testing is important because it helps us learn all the little — and sometimes major — things we missed during our regular work sessions. Often, there’s time set aside near the end of a project to accommodate this process.

The most important distinction, though, is to separate bugs, features, and improvements, and properly identify and schedule time to handle each and every one. A bug, for instance, is a serious vulnerability or flaw in the system that needs to be fixed. That fix should become a higher priority than, say, adding a new element to the user interface that’s a nice-to-have, not a must-have.

The point is that you need to understand the differences between these three components and use that information in your planning. The hierarchy should always go:

Bug > Improvement > Feature

Every time you introduce a new feature, it’s going to introduce new bugs and also highlight some improvements that need to be made. By separating these things and treating them in this order, you can cut down on the stress and problems you’ll encounter during development.

More importantly, you don’t have to run around like a chicken with its head cut off trying to identify and handle these things the night before you ship.

4. Stay Away From Uninteresting Work as Much as Possible

Image of staying away from uninteresting work as much as possible

I’ll level with you: This is not a perfect industry, and your career will not be perfect, either. You’re going to get stuck working on projects that you abhor, which may or may not turn out bad in the end. It happens even to the best of us. Sometimes you just have to roll with the punches and do the work, and that’s true of any job or career.

However, it’s also easy to fall into the trap of thinking you don’t get to have an opinion or choice. You do, as this is still largely your blood, sweat, and tears going into the bulk of the development. You have the ability to take control of your reaction, and a choice on how you will deal with assignments you don’t like.

It’s good to do your best to simply stay away from work you don’t find interesting. However, if you’re assigned something bland, you can choose to find ways to make it more relevant and interesting to you.

One of the best ways to stay in the zone and focused is to have an attachment — on some level — to the creative work you’re doing.

Think about the impact your project will have for a client. Angle your view of the project as an opportunity to learn or refine a few skills. Find a way to make that happen, and if you can’t, you might want to consider moving to another project or possibly even another team.

5. Interact and Collaborate With Others on Projects

You are human. No matter how much you love sitting on your couch at home, binge-watching Netflix alone in the dark, surrounded by melted ice cream and tissues, you are a social creature. Try to find some ways to collaborate with team members or at the least discuss your current projects with one another.

If you work in an office, don’t be afraid to ask a co-worker out for lunch. The time away from the office and the casual conversation will do you good, especially on days when your stress levels are through the roof.

And if you’re working from home, there are multiple Facebook groups for developers and programmers. It’s okay, and totally natural, for you to reach out to others in your industry. They can offer insights into some of your problem areas at work or, if nothing else, be someone to vent to who can personally understand your frustrations.

The social collaboration will contribute to a more pleasant and more enjoyable experience. There’s a reason that the whole water cooler idea is so popular. People love to interact with one another, and you’re no exception.

Collaboration isn’t just good for you personally but can lead to more workplace productivity. In fact, 90 percent of businesses rated collaboration/teamwork as an extremely important skill to have for the next 10 years.

No matter if you’re interacting with a team you’re collaborating with or if you’re just expanding your social circle with other programmers/developers, you’ll find your productivity and enjoyment levels will rise considerably.

6. Speak Up Instead of Stressing Out

Often, our work is marred by higher-ups, red tape, and unresponsive or unknowledgable management. A manager might have no idea about the kind of security or authentication necessary to deploy a new cloud system or platform, for instance.

Don’t just go along with everything they say because they are your superior. You do need to be respectful though, and arguing is never the appropriate way to approach your manager with concerns.

That said, sometimes you do need to speak up for your own sanity if you see real problems with the way the project is going. Don’t keep banging your head repeatedly against the wall because your management is telling you to. Speak up and let them know there’s another way, a better way.

If you feel like you have a good relationship with your boss or supervisor, don’t be afraid to send them an email asking for a meeting to talk about your concerns.

If you’re not comfortable talking to your boss alone about complaints, try reaching out to those co-workers you’re now interacting with and see if they are having similar issues. If you can gather a group of employees who are all having the same issues, your boss might not see it as complaining but rather valid concerns that can be solved.

Enjoy Your Job and Avoid Burnout

Image of avoiding burnout

Staying happy on the job is vital in order to avoid burnout and frustration. There are also long-term benefits: you’ll be able to enjoy the job you’re doing every day, you’ll find yourself falling in love with the field all over again, your productivity will increase, and your mental and physical health will improve from not being stressed out all the time.

By implementing these six suggestions in your daily routine, you can feel empowered and ready to tackle any task — boring or otherwise — that comes your way.