The Ideal Developer: Bored, Frustrated & Full Of Energy
Tags: productivity, career
Published: 2019-12-04 17:54:59

If you're working in a fast-moving environment, you probably know what I mean when I tell you: Your tools will always feel like they are outdated, some of the work that you're doing seems mind-numbingly dumb but it's necessary for the company's success and none of your processes works really smoothly.

I've personally been in those situations and wasn't happy with the state of things. It feels like you're wasting a lot of time and energy.

But I also believe that this kind of boredom and frustration can be a blessing in disguise. It can make you one of the most productive engineers.

## Waiting For Management To Resolve The Issues

> Olivia is working as a Backend Software Developer. She has just been asked to setup a customer account in the database again. This time it's a complex setup, so she will need to update a few different tables. Luckily she's done this before so she knows what steps need to be performed. There is no documentation that she could refer to, which is also why nobody else was assigned this task.
> 
> She will make sure to have 30 mins of uninterrupted time to do the setup. She hopes that management will prioritise automating this work in the future.

Does this sound familiar? Have you been in a situation like Olivia and waited for management to prioritise the automation of some boring and brittle task and somehow it never came up? But you know that the day management will finally prioritise the automation of this kind of stuff, you have hundreds of other little jobs that should be taken care of, too.

There are tons of reasons why automating these small tasks doesn't get prioritised by management:
* "management" isn't a single person – it might not be clear who is responsible for this kind of improvement. Is it the product manager or an engineering manager?
* your manager might not know that the problem exists – this happens even more often if the task is more technical
* your manager might know about the problem, but might not have a good idea on how to solve it, because they don't experience it hands on
* this little account setup task is to small to receive any priority between other high-value items
* there is no clear customer value associated to automating this account setup
* prioritising a generic "automate stuff" initiative is too vague and doesn't feel like it's urgent at the current stage of the business.

And while all of these sound like excuses for management to not have their act together, the person suffering is you. You're the one who ends up doing this boring work that should have been automated a long long time ago.

## Boredom Leads To Creativity

When you're bored, for example because you're performing a dull task, your mind tends to wander. You have some extra brain cycles and will start to think of dozens of different ideas. While you're doing the tedious account setup, you think about a beautiful admin page you should have where customers can be set up by their account managers. Or this kind of provisioning could be fully automated by connecting the application to your company's sales CRM. Or maybe you just think about what you might want to have for lunch today.

Doing a boring task allows your mind to meander and come up with lots of creative ideas. Creative thinking is a great gift that you can use – e.g. to come up with a proposal on how the setup could be improved, so that next time it will only take Olivia 5 minutes to take care of a complex account.

## Frustration Can Be A Motivator

> 3 months later and the situation has barely improved. Product has a whole admin section in mind, which will take care of the account setup, too. But there are new high value features on the roadmap that need to be delivered as soon as possible. Unfortunately Olivia can barely work on those features, because every day she has to help with the setup of 1 or 2 customers and about once a week she has to do some investigative work to figure out why some of the accounts not working correctly – is that related to an error in the setup?
>
> Olivia is frustrated. She has been doing the manual setup for months now and a solution is still not prioritised.

I've been in this situation and you may have been there too. Everybody around me knew that things could be better and some tasks could be automated, but there was simply no priority allocated to this topic. Did nobody care?

I've found this frustration to be and incredible source of motivation. Sure, frustration is dreadful at first, because you know that things could be better than they are, but combined with some boredom, frustration can be used to find solutions.

Being frustrated can help you talk to your boss about the problem and that it needs to be addressed. It may help you to start talking about the creative solutions that you've found through boredom. And it also means that as much as it's within your own control, you will improve the situation. In Olivia's case it may be as little as writing some documentation about the steps she's taking or automating the setup for simple accounts in a little script.

## Build Tooling To Improve Your Situation

I'm a big believer that developers [don't automate as much as we should](https://dev.to/johannes_scha/bespoke-tooling-building-your-own-hammer-2j06) and it's hurting our productivity. If Olivia takes 30 mins of her time to automate some of the account setup, she will profit from that tooling very quickly. Being motivated and under time constraint allows developers to start out with the bare minimum to improve their current situation without loosing focus.

If you manage to make your situation just 5% better every day for a month, at the end of that month your situation will be 2.65x as good as it was in the beginning. That is a gain of 165%. And you can achieve that by just being persistent in improving things little by little.

## Change Processes

When you're unhappy with a certain process and find it frustrating, chances are that others feel the same way. Take that energy that's building up inside you to change something. Tell people about what other options you see for an improved process [and make a group decision to improve it.](https://dev.to/johannes_scha/3-lessons-i-learned-about-group-decision-making-1e1h)

Changing behaviours and processes is hard work – use your frustration with the status quo for good to convince others that there is a better way. Being frustrated with the status quo also allows you to have a no-ego relation with your proposed solution: Maybe someone else comes up with a better path forward and you can embrace that, because in the end it's the status quo that you're frustrated with and that needs to change.

## Being Frustrated Is Normal

I've met many people that were able to tell me: _As long as I'm complaining, you know that I still care. Once I've stopped complaining, you need to start worrying._

In a fast changing environment it is normal that processes and tools that you've previously established are constantly outdated. And there are tons of competing priorities at all times. I've become happier since I realised how much my changes and improvements were appreciated by the people around me, because 99% of the time, you're not the only one suffering.

And sometimes when things seem frustrating everywhere around you, it helps to pause and find the good sides. The things that work and that you're grateful for, because in most environments those exist, too.