With a true passion for programming and design, I build systems and services. Author of "msscohen.com - a mind of a software engineer".
Originally posted on msscohen.com - career hacks for software engineers
Although software engineering is often considers a dream profession, in real life it is sisyphean work which often requires many hours at the office under the fluorescents lamps, a freezing air conditioner and no sunlight. On the other hand, writing simple code which works is a craftsmanship and like so it requires inspiration, focus and high energy levels. In this article I will try to demonstrate how to balance between the two and manage to maintain energy levels high in a demanding workplace.
I returned to work 5 months after having my first child. My baby was still waking up 2-3 times at night and I was exhausted. My fatigue levels were so high that I decided to stop driving to avoid accidents. Thinking about returning to work and managing to function normally seemed like an impossible mission. I decided to analyze my daily routine and see if I can avoid energy waste.
Knowing myself, my most productive time of the day is the morning. Therefore, in order to be effective I should make sure that my energy levels are high in the morning hours and are being used correctly.
Analysis of my morning hours showed that most of my energy is spent even before I arrived to the office. In those days I woke up at 5:00 am to feed my child, dressed him up, prepared myself, took him to his daycare and then took a 2 buses ride to get to work. When I arrived to work at 8:00 am, I was already exhausted.
I considered replacing the 2 buses ride with a cab. The price of a cab is expensive - about 10$ in each way. Meaning, 400$ a month. Once I realized that by paying for a cab I’m actually paying for a more productive work day, it seemed more reasonable. Looking at the total value instead of the price of an individual cab ride, I started taking a cab about everywhere - meetups, courses and conferences that I wouldn’t go to otherwise.
To conclude: check what is your most productive time of the day, analyze where your energy is wasted in this time and find solutions for energy waste by concentrating on the big picture and not on an individual action.
One of the workers I know doesn't take breaks. None. He arrives early and leaves the office at 19:00. Sometimes he continues working from home too. There are days he doesn’t go to lunch breaks either: He just grabs something and eats at his desk while he continues working or he rushes to the nearest restaurant, buys something to go and disappears back to the office. There are managers with similar behaviour.
Unintentionally, this behaviour creates stress, burnout and it is a killer antidote for creativity. Managers who act this way create the same level of expectations from their workers, even if they don’t ask it explicitly.
One of the main evils of this profession is that in most companies workers are still measured by the time clock and not by performance. Recent studies show that breaks are good for the brain: they increase creativity, improve focus and keep us healthy since we’re not designed to sit all day.
So in order to maintain energy levels high, next time you feel tired, not in focus or stuck with a bug for hours, continuing to work will only make you feel more tired. Try taking a break instead and the bug will be resolved before you notice.
The meaning of break is not simply stop working. The meaning of a real break is giving rest for your brain. During break time do something which will help calm your mind like getting some fresh air, listening to your favorite music, drinking green tea and water, stretching exercises, and taking a shower or a quick nap if possible.
The software engineering profession is full of tasks that require different skills: reading emails, writing code, performance testing, talking to stakeholders, learning a new topic, reviewing code, debugging an issue, writing documentation, designing a feature, etc.
If you’re working on a task which requires one skill and feel like you are running out of energy, switching to a task which requires a different skill is similar to taking a break for a specific part of the brain. So you can switch to another task which gives the part of the brain that was working some rest and then go back to that task later.
For instance if you code for 2 hours and feel lack of energy, try talking to stakeholders or reading emails, which require different skills. If you learn a new topic and need some rest, try reviewing code or debugging an issue. After some time, go back to the original task and you’ll notice increased energy levels.
To summarize, in order to maintain energy levels high at a demanding profession such as software engineering: find solutions for energy waste by concentrating on the big picture and not on an individual action, take a break and do something that will calm your mind, and shift between different tasks to allow a specific part of the brain to rest.