If you’ve been in the IT industry for more than 2 years, it’s probably natural for you to change jobs relatively often. You work in one company for a while, making a product, which after some time is not particularly challenging for you.
What do you do then? You change jobs. But is the lack of challenge the reason why you make such decisions? Recently I was wondering for a very long time why programmers change their jobs so often. Read what conclusions I came to.
What is the IT industry like?
Opinions about our industry circulating in the network can be summarized in one sentence – the industry flowing with honey and milk. Earnings over 15k #programmer15k. Plus constant trips to conferences, chill rooms with PlayStation, and let’s not forget about the benefits that many people can’t afford.
Everything you read is true. And actually half of the truth. Why is no one talking about the other half? Because It’s not beneficial to anyone. First and foremost for companies making money by training people who want to re-brand. And also for companies that need new employees. Simply, the second half is not as sweet as Rainbow Dash from My Little Pony.
The dark side
At the outset, I will point out that if you are just looking to get into the IT industry, then read no further! However, if curiosity wins out, remember that you are only reading one man’s opinion. This is just my point of view. It doesn’t have to match your experience as a programmer!
Probably if you have explored a little bit the topic of what working in the IT industry looks like (i.e. working as a developer), you have found information about the fact that you need to constantly learn. This is true. Personally, I think this is a great advantage. Forcing us (humans) to keep our brains engaged in the learning process – fabulous. However, what if I tell you that learning takes place outside of working hours? At best, of course, you’ll get a few hours from the company to do some training, but your head is your property, so you’re responsible for what goes into it.
While hearing about how cool the IT industry is, you probably haven’t heard of the term crunch time? No wonder. It’s our fancy term for overtime. So much for that topic. As a rule of thumb, this concept comes up specifically in the Gamedev industry, but sooner or later you’re going to rework it anyway. In my opinion, it’s worth knowing.
Have you seen the YouTube videos of the “Day at a Developer’s Job” series? It can be summed up in a short process: Coffee -> Coding 1-2h -> Meetings -> Dinner -> Coffee -> Play Room -> Coding 1-2h -> Home. Such a schedule is possible, but let’s not kid ourselves. Most of us work at jobs that require us to write code. This is our job. There’s nothing strange about that. What is strange is the misrepresentation of reality that everyone codes so little. If you’re not willing to work 8-10 hours a day with a computer, you’ll quickly stop enjoying programming.
Let’s move on
If you’ve made it to this point, you’re either in the industry or have nerves of steel. Things are going
to get even darker next. Consider if you want to read on!
This part of the post will be very personal. It is only about my experiences (gathered over the years) and my approach, which may not match yours. I want to share it with you because the lessons I learned here, I discovered recently. They helped me to find my way better in my work.
You are probably familiar with the concept of a deadline. Simply put, the work has to be done in a certain time. This applies de facto to every industry. However, developers creating products for clients are often exposed to enormous levels of stress due to the pressure to “deliver on time”. What does this stress stem from?
Imagine that you have to deploy a new version of an application within 1 hour that cannot fail due to SLA (Service Level Agreement). Based on your experience you know that something can go wrong. Additionally, you are working under stress. The risk of making a mistake increases. However, you feel pressure “from above” that it has to happen now. We cannot wait.
You implement! You look in the logs, there are errors 🙁 You restore the old version, implement the fixes, but you do not wait for the code review. You simply merge to the master and deploy, because you have so little time left to present the demo to the customer. The second approach … it works. The new version is live. A smile appears on your face, but disappears as soon as you think about 10 if’s done just to close the topic.
I hope I was able to convey the level of stress and pressure you can feel in such a situation. Now think about how often you feel similar stress or pressure in your job?
In my opinion, programmers change jobs for two main reasons. The first is money. Let’s not kid ourselves. But the second, which is more difficult to diagnose, is a decline in the quality of work. If a programmer is feeling stressed or pressured at work, they will quickly take advantage of the opportunity to change jobs. For us, it’s not so easy.
The problem is that as programmers, we often don’t realize that all the perks or £1000 more in a new job doesn’t make us escape the pressure and stress. As Magik rapped “realize it” – you can’t avoid it in any company. Instead of changing jobs once a year, just learn to live with it, learn to deal with work under pressure. This will make you a better programmer, one who delivers in spite of it all!