- Email:
This article is written for people like me who do web development, in addition to general software engineering. But if you also work with web developers, or is a person who pays people to create websites for you, then you might still learn a thing or two.
There are probably times during web development where you feel frustrated. Burnt out. Hopeless. Like nothing you do ever goes right. But you know inside of you that you have done this for literal years. You should be an expert in this. You know how to do things, yet things never go right. You encounter problems left and right. Things doesn’t happen compared to how you expect it to happen. You sometimes wish that you could just go back to desktop app development because at least there, you either know how to do things, or you don’t. And things go as you thought it would go.
No, you’re not at fault here. You might think that you are, but you’re not.
Except it isn’t.
Sure, I’ve been enjoying software development ever since I was in high school. I have always wanted to become a software developer. It’s fun to discover algorithms and implement them, to teach a computer to do new things that result in interesting data and visualizations. Software development is my passion.
That is, until I became a web developer. I learned web development from scratch. It never was my thing. But I still learned it because the demand is undeniably high.
Web development was fun at first. Especially when your website gets released to the public and people start to use it. It provides a sense of fulfillment, and satisfaction of producing something that is actually used by people. But unfortunately, that is the only good thing about web development.
Besides the important points that I need to discuss below, people—including you who might be a web developer—need to understand that web development is more difficult than it should be, in my opinion. There are tons of problems in web development that make things more difficult compared to developing for mobiles, or for desktops, and maybe even embedded devices. In web development, you have to prepare for all scenarios on how the website gets displayed.
Passing that, you need to pay attention to every detail in the original design and reproduce them with accuracy. The colors, sizes, margins, paddings, alignments, text sizes, font weights—every little detail gives the website its own pleasing appearance and failing to reproduce those details result in a lackluster website that fails to stand out. Of course, this is assuming that the design is beautiful in the first place.
Such efforts make web development more difficult than it should be. Of course, I am not claiming that web development is the most difficult thing in software engineering, but it is at least needlessly complicated than most people would like it to be.
The biggest problem with web development isn’t the development itself. It mostly boils down to the client and the design.
Clients will give you a design of the website they want made. But most clients will give you a design that is meant to be almost final, and then make significant changes after the coding is finished. Of course, simple text edits are acceptable assuming they’re not everywhere, but as mentioned above, many changes that involve significant changes to the design of a page (or pages) take a ton of work to do. Images and assets need to be optimized again, changes need to be verified to make sure that nothing else is detrimentally affected by the change, and they need to be tested again to make sure that things work as expected on every browser and screen.
They also keep on forgetting things that should have been in the original design on the first place. “Oh, I forgot this, please add this,” and “I changed my mind, please remove this,” is something that you hear all the time. Adding and sometimes even removing things is not easy. Code does not work isolated, even in web development. While coding, developers take into context every file that makes up a webpage and while the implementation details are fresh in the mind, developers know how one change can impact other parts of the code, and which parts to change in order to achieve a desired result. This is what I consider to be “in the flow.” Unfortunately, when clients demand changes after actual development and outside “the flow,” developers need to refresh their brain and recall what is inside each file that make up the webpage, in order to effectively change something and make sure that other parts of the code are not affected and the desired result is achieved. This adds unnecessary overhead to the task and makes a task take up more time than it usually should.
People become inspired to do things when they do something, and they often see a good result. People learn to be afraid to do things when they do something, and all they get is mental anguish.
You expend tremendous effort to make a website that looks and functions exactly like the design. It takes problem solving skills, experience, and most importantly effort to effectively achieve a good result. The effort you made is not small in any sense of the word. You even did your best to try and meet the very tight schedule and submitted the result before the deadline.
You are happy when the client says, “Wow, this looks beautiful, just like the design!” And there are times when they do say that.
Unfortunately, most of the time, they do say that while giving you a list of the things they want changed. And after you try your best to accomodate the changes, you get yet another batch of changes.
See, this is why web development gives you anxiety. You learn that with every website you lovingly made, you get the appropriate amount of change requests. Your brain starts to learn that nothing you do ever results in anything good. You know that this info box that you lovingly made might get removed in the end. This contact form might get turned into a modal instead. This picture that you optimized to perfection might get replaced in the end. This video that you spent 30 minutes encoding just to choose the right bitrate might get changed into a slideshow.
You start to learn that when your phone’s notification sound rings, it’s not a praise for your outstanding work. It’s just a fix request. When you wake up in the morning and check your phone, your Slack notifications are filled with, “Kyle, the customer wants this changed, and this added. We need a meeting since it's a big change. No, we can’t extend the deadline.”
Due to the build up of pressure and frustration, you start to make mistakes and lapses and sometimes you forget things. Because you start to make mistakes, you start to become paranoid whether the thing you did is actually correct. You tested it on your device, and saw it work, but you start to doubt yourself until you get a confirmation from the client. Even with a confirmation from the client, you think that it might not work for edge cases that you haven’t tested yourself. You wake up in the middle of the night to recheck your code just to make sure everything is written correctly. And even after that, you don't feel satisfied and worry that it might fail to work for some other reason you don’t know.
You start to lose self confidence. Nothing you ever did is right. You start to dread making projects because you learned that every project leads to problems and despair. You dread sitting in front of your computer because that means you have to face problems.
Web development starts to feel like a death sentence.
You have been the victim of the web development industry. It will take a lot of time for you to realize this but it is not your fault. It really isn’t. You have been abused, taken advantage of, and mentally tortured by your work. They destroyed you.
You have been a very passionate software developer, and they thought that your passion is enough to overcome any difficult task they want to throw at you. Your passion was indeed enough in the start, but there will be a time when you will start to succumb. It was never your fault. Anybody would have succumbed.
It will be difficult to fix this. It might take months, or even years. You will need guidance. But no matter how you approach this, you need to know that it was not your fault.
You don’t suffer alone. There are many more people burnt out with this job just like you.
But it’s never too late. There is always time to leave this profession and finally fix yourself instead of fixing other people’s websites.
Post Comment