Software Development Blues
By: Bien Baldonado Jr.
Tags: Stress, Work Life Balance, Software Development, Challenge, Teamwork

Photo by bruno neves from FreeImages

This was originally posted in http://www.thebeet21.com

I guess I’m not the only one that would say being a software developer is not easy. Apart from the demands of the IT industry in terms of skillset and the added requirement to have a certain amount of critical thinking and problem-solving skills, which you need to have right off the bat, there is also that part where you have to be an amenable person towards everyone at all times: whether it is your team, your boss(es), your clients, and God knows whoever else you have to deal with on the job, regardless of what happened to you in the morning, yesterday, or the day before that.

You may have to deal with all the deliverables that your team has when the deadline is at the end of the day and you’re the only developer around. You may have a lot of stuff to deal with at home, which makes it even worse for certain people if their home is also their office (or for workaholics around here, when the office is also their home). You may have to be there for the kids because you know someone would lose a finger if you leave them unattended. These are just a few reasons out of hundreds of thousands of why anyone will have a terrible time at work.

You might be the person everybody relies on. You might be the go-to guy that knows everything about a certain project (or projects). People generally have no idea when it’s the right time to talk to you, and sometimes, they just need you at the wrong place and at the wrong time. It’s not their fault. It’s just that not all days are filled with strawberries and rainbows. But still, you just can’t help but feel the weight of the Earth on your shoulders sometimes. You can smile and grin all you want. But you know you’re already cussing and ranting and breaking things inside your head, all the while asking yourself why you should be the one dealing with all this. It can even be unreasonable at times. Asking yourself why these people don’t know what you know? Yep, that sounds idiotic. But that’s what stress and frustration do to people. Too much stress and frustration can change us drastically.

Other things that might be bothering you are those times you messed up and made a fool out of yourself. There’s probably that one time you were presenting something in a meeting and someone pointed out what’s wrong with your presentation. Maybe you felt stupid for that one time an intern solved something that you’ve been working on for days. Maybe you don’t like the idea of getting help from your team, either because you don’t want to bother anyone or you don’t want to be bothered by anyone. Whatever the situation is, we all know how it feels: it sucks.

Sometimes the difficulties extend their ugly mugs outside work and affect your personal life. There are times when you have to go on overtime just to deliver a commitment. Sometimes estimates were created without seeing the entire picture and turned out the requirements are more complicated than whatever you have fathomed. Sometimes systems break, someone has to fix them, and you’re the only person available. There are also times when you thought everything is going fine, you go on a date with your significant other, then go home only to find out the deployment went kaput and everyone’s looking for you. There are times when you have to wake up in the wee hours of the night to deploy the latest version of a project to the production server. There are times when you have to stay up until the sun shines to complete a deliverable because, maybe, either you have underestimated the request, or you had to deal with certain personal commitments that can’t wait until you’re out of work (so you deal with them first, in the hopes of not being interrupted further once it’s done.)

There are days when you just want to sit down, relax, watch Stephen Colbert’s Late Show clips on YouTube while you are inside the house drinking iced coffee on a hot summer day. But you cannot do that because of your responsibilities and usually, no one can deal with them but you. That’s alright. We all get tired sometimes. We all get stressed out. People would sometimes depend on us even when we don’t quite understand the situation or the actions that can be done. But at any time like this, we should remember a few things to get us out of the rut.

We must remember that people like us will never have it easy. If we’re having it easy, we’re probably doing it wrong. Anyone who has the privilege to contribute to society will never have it easy. And yes, we’re not just writing useless code. We’re contributing a lot to human society in a myriad of ways. The developers before us built modern society by creating the systems we currently enjoy: banking solutions, accounting solutions, inventory systems, the internet, you name it. Now, as the new breed of software developers, we’re called upon to push the envelope further, and pushing the envelope is never easy. It doesn’t matter if you’re working on an old enterprise-level system or a new Android game. They will always have a place in society one way or another.

In addition, do not beat yourself up for not knowing something or for messing up or for making a fool of yourself. Real software developers are lifelong learners by nature. We will make mistakes and we may appear or sound stupid at some point. But that’s the beauty of it. We can learn a lot from our mistakes. Instead of seeing it as a detriment, look into it through the eyes of a learner. What did I do wrong? Why is it wrong? How can I do better next time? Everyone makes mistakes so no big deal. It’s just a matter of what to do with them when they happen.

We should be able to accept help from anyone regardless of their position, regardless of educational background, and regardless of the amount of experience in the field. Sometimes we’re blinded by what we know that we need a fresh set of eyes to see how it can be done. Asking for help is not something that we should be ashamed of either. We can only do so much with our abilities. Having more sets of eyes, brains, and hands can accomplish any task quicker and better.

Another thing that we should remember is we can never assume that we’re better than anybody else and only people like us can develop software. Coding is a skill and anyone can learn how to do it with enough patience and perseverance.

We must also remember that it’s nice to be needed. Whether we love it or hate it depends on what kind of people we are. But at the end of the day, being the trusted person to do certain things is a really good thing. Honestly, I love the idea that I’m the go-to guy for certain things. It makes me feel significant and it drives me to get the job done and to do better. It is always an honor to be trusted for something. Being trusted means they believe that your decisions and capabilities won’t be detrimental to the project and/or cause.

When your work is starting to affect your personal life, you must remember to ask yourself. Are you dealing with an issue because there is something wrong with the process? or are you dealing with an issue because you’re not focusing enough and/or you’re missing certain details? Everything is distracting these days. There are a lot of things to think about, while we don’t fully understand what is needed of us. That’s alright, that is normal. When such things happen, the question of priority should be discussed. When that’s done, the next question should be how to pull off the priorities without compromising anyone’s personal life. At this point, it should be apparent which things should change. While having this discussion either with your team or yourself, you must remember that although working as a software developer is a privilege and we must do our very best, we all have the right to live like normal people. We are not machines after all. Apart from our responsibilities to society as software developers, we have the responsibility to take care of ourselves as well.

Ultimately, you have to remember that no matter what happens, things tend to get better over time. That terrible thing that happened to you yesterday might be just a way to prepare you for future challenges. Maybe the next time you remember it, you just can’t help but laugh at it and think that it happened for the better. At the end of the day, every challenge can only make us better as a software developer and as a person.