logo

Stop chasing squirrels

Do you ever solve hard to crack client problems on your own time?

This happens to me all the time. I work on some personal, meaningless task and come to the realization that I can use the solution to solve some difficult client problem. Do I bill the client for it? Hell no! Would I like to bill that time? Of course I would. But it’s not something you can easily define / delineate. It just pops into your brain and it won’t go away.

This is why value / project based pricing should be the norm. This way, you are able to “bill” the client for those ideas you have while not necessarily working on their project.

Anyway, to get back to the point, It’s just how the brain works. Actually, that’s the thing, the brain works, always. You can’t simply pause your work thoughts and let your personal life thoughts flow in. You can say that there’s a transition, a change in proportion, but the work thoughts never go away.

I tried and failed so many times at balancing work and life. Followed the advice of gurus, masters, productivity buffs but no result. I’m not the brightest bulb in the chandelier, but I’m also not the dimmest. The difference is that those gurus offer their advice, geared towards knowledge workers with low to moderate cognitive loads. Software development, is a different beast. It requires focus, discipline and immersion all at once. You can’t interrupt a software developer and expect them to get right back to work once you’re done talking.

The reason I’m only talking about software development is that I have the most experience here. I can talk from my own experiences rather than to make assumptions. And I tell you, it’s very hard for a software developer to separate work and life. Especially if he/she also runs side projects, has entrepreneurial aspirations and contributes to open source.

I agree, there are people in software who don’t have a problem separating work and life. I’ve seen a lot of them in the companies I worked for. They are pretty happy and rested, many always have a Facebook tab open, enjoy a couple of gameplay videos on YouTube or look for rent / a new fridge / a car on the Interwebs.

I don’t blame them, I’d love to be like that, too. But my work ethics prevent me from donig that. I’m not saying we should slave for our employers / clients, I would be the last person to say that. But you can’t spend the whole week on YouTube and watch your tasks get done in the issue tracker.

So for us, software developers work and life more often than not are intertwined. We should stop talking about work - life balance, there is no such thing. Work is something that happens during life. You don’t pause work to get back to living. It’s like saying that you have work-life and life-life.

Life is not like JavaScript, It’s not single-threaded. Think of life being more like Go. You have multiple channels where goroutines run asynchronously while the main thread is still free to execute whatever you want.

There’s also a flipside when it comes to work — too much context switching.

Although we love doing things in parallel, there are some things that have to be executed JavaScript-style. For example, when working on multiple projects, you can’t just jump from project to project and be instantly productive. There is still some residual activity that will take some time to dim down, for you to be productive on your new task.

So stop talking about doing things in parallel, especially at work. 30% availability this, 20% availability that and 50% availability something else just doesn’t work.

You can switch tasks very fast but you can’t switch contexts with the same speed.

If you go back-and forth during an 8-hour work day, by that 20%-30%-50% availability, you won’t get anything done.

To top it off, you will burn out without knowing what caused it.

Stop chasing squirrels, you’re not a dog.

Photo credits:

DaPugletWho Let The Squirrels Out?

Copyright (c) 2023 Adrian Oprea. All rights reserved.