We do live in a modern world which accelerates further with every second passing. Everything needs to be done fast and faster, preferably yet, now, instantly. Our technology evolves and with every evolution we discover new possibilities in computing, which raises the expectations for new possibilities even further. Which sounds like a somewhat scientific thing, e.g. wanting to able to use cold fusion now, after we are finally on the road to ditch fossil fuels more and more, can be broken down to a very detailed look at specific fields of information technology: the web, it’s development and people working in this field. As somebody who works in web development I see more and more problems with this race for being faster and faster.
After being a somewhat ghostly, strange condition which some but not many people suffered from for decades, the burnout or burnout syndrome was first described in 1974 by Herbert Freudenberger, who researched workers in a clinic, as an “exhaustion resulting from work’s excessive demands”. And this is also the best short description you may find. Today burnout is often diagnosed after people break down, caused by a lot of stress for a long period. In the best case those people do not heave to break down and are diagnosed before it’s too late.
Most of the affected people don’t want to, or are unable to realize that they are about to break down. Some people may be able to cover their level of stress, some just reduce their social interactions and stay at home. It’s like with all other diseases: symptoms increase until the cause is either removed or mitigated. And this is one of the major problems here: burnout is not seen as a disease but as a temporary condition and thus most people won’t do anything against it. But accepting that you are ill – not physically but more psychic – is the first step in becoming healthy again.
What has burnout to do with web development? A lot. And one of the main reasons may be the fact, that the world becomes faster and faster. Developing applications or sites for the internet is pushed forward by a constant flow of new trends, new technologies and higher expectations. This leads to different problems:
Trends come and go and with them ideas for new concepts emerge. I just read a very interesting article from Nextpage about the evolution of the web and the next generation we are finally diving into: the web 3.0. Albeit it’s no official term, you can clearly see that with all those new exciting things like CSS Grid and WebAssembly we reach new heights – and with them the customer anticipate even better, more exciting websites and applications. It’s not that unusual to feel a little bit overwhelmed by what could be eventually possible. And if your client has a very specific idea on how something should work and you just start to think about it, you already raised your level of stress a little bit.
The last point is, that with the growing ecosystem of the web including like millions of open source libraries and tools, we are able to develop new things even faster, because bootstrapping becomes easier, and we don’t have to write your own implementation for displaying a chart or doing a fancy animation. However, this leads to the issue that you should be prepared to use all these libraries and tools, which involves constant learning. Learning new things, because you either have to use something new to ship something exciting, or your old setup is not enough anymore to deliver the expectations.
While car manufacturers have a lot more time to build their cars because you just can’t build a new car in a week and ship it, web developers work with a medium that is just freaking fast. Not only that newer devices are actually able to handle those higher expectations (like doing heavy animations or loading high resolution images because network speeds go up). It’s also the fact that websites can come in a second and go in the next one. It’s (mostly) one click to put a website online. One command, one button click, you name it.
Besides that, the web is a medium for the masses to stay in touch and being informed. And because of this reason (and also because we are who we are), things become old very fast on the internet. News stories which enraged thousands of users can be irrelevant just a couple of days later.
The result is a never ending circle of getting faster: developers trying to deliver just 1% more to match the anticipations of their customers, and customers which raise their anticipations because of something they have seen on another website just one day later.
This circle leads to a situation of constant stress for the workers in the field of web development.
Well, to be honest, it’s not that easy. In fact, it’s really hard to not load too much stress on your shoulders. There are hundreds, if not thousands of articles about this topic. And each one tells a different story. Therefore, I will try to tell you what issues I encountered and how to solve them.
It’s that one thing that I could preach to any new developer or anybody who wants to become one: learn the essentials. The essentials are basic architecture systems or a programming language itself, but not a library or a framework. Why? Because the essentials will actually help you get into any new thing that crosses your path more easily, and then adopt it to your needs. Why should someone start to learn Vue.js if he’s not even able to attach an event listener with a custom callback to a single element?
Especially open source project seem to be like an incubator for burned-out developers. Open source is a problem for itself and no matter what you do, you ain’t gonna fix it. And therefore, quit it. If you are a maintainer and feel like the project is more a burden than a fountain of joy, search for a new maintainer like I did for InvoicePlane. To keep this short: it’s not worth to damage your health for people who pay you nothing. It’s that easy. And if you run a business based on your open source project, either sell it or get yourself help to run it.
We developers luckily belong to an industry that lacks professionals. If you feel like your current employer underestimates you value (which can also lead to a lot of stress), or forces you to work overtime for longer times without offering you a compensation, then quit your job and search for a new company. If you are already close to burning out, then keep away from startups and agencies. Settle with a well-established company that offers fixed working hours, a good amount of holidays and maybe other work-related benefits.
It may be a somewhat controversial opinion but I stick to it for several years now for my own projects. Huge banner images? Who needs 4000px large images for text articles? Quirky colors and full-width gradients? May just not match the design language of your project.
Think about these new, fancy things before rushing in to implement them into your next project.
And, if you believe this or now, you can build nice looking, modern and interactive websites that are also fast and do not require a quad-core CPU in your users device, without using any bloated library like Bootstrap, React or Angular.
After leaving InvoicePlane, my open source project, behind I started to think about ways to improve my “inner life”. And it’s the little things. Taking your time off doesn’t have to mean to pause your job for 3 months and explore the jungles Vietnam or living with Tibetan monks without connection to the outside world. Taking your time off means to keep your laptop in your bag on the way to work. Read a book (preferably non-technical) like I do. Binge-watch a series on Netflix. Ask some friends to have dinner together. There are so many things to do that do not involve coding. Just do them, event if it’s just for an hour. You can code again later.
Another controversial opinion, but I really do not like all those coding challenges, with that #100DaysOfCode being trendy right now. Well, some would argue that those challenges motivate people to code more, and finally achieving something. But just ask yourself if you have to achieve something. In my opinion these challenges are worth nothing. Because nobody cares if you complete a challenge and nobody cares if you don’t even start it.
I may extend this article later if other things pop into my mind. For now the problem is outlined and I gave you some points to think about. Stay healthy, fellow developer.
This post was originally published on Blog.Kovah.de