And as professional frontend developers, we need to understand what our jobs are.
Frontend developers do one thing only.
We provide a great experience for our users who visit our sites (or apps).
We understand what our sites (or apps) should do. We craft them up (sometimes from scratch), and we polish them before sending them over to our users.
We put hours of work into perfecting the sites we build. Only to hope that users will enjoy our sites. And if they enjoy our sites, we hope they'll come back and visit us again.
But what does a great experience mean? What skills do we need to provide a great experience to our users?
I'll argue that frontend developers need to master four different skills.
What is a great experience?
We won't know unless we understand who are users are.
On the internet, we serve a huge variety of users. And they're different from us.
People use different computers. Some people use a Mac with a 4k display, some use a Windows machine, and some others use old phones without good computing power.
People use different browsers. Edge, Chrome, Safari, and Firefox are the four most common browsers out there in the world. But there are more browsers than that.
People have different abilities. Some people have perfect eyesight, some wear glasses, some are colour-blind, and some can't see at all.
People also have different preferences. Some people browse with the mouse, while others prefer the keyboard.
The point is, everyone is different.
And we're here to provide an experience that everyone enjoys.
We need to understand that people are not like us. And even if they're different from us, we still provide them with a great experience.
"It doesn't work on my computer" is not an excuse we can get away with. If it doesn't work for someone else, we'll dig deep and figure out what's wrong, and we'll fix it.
But when we talk about code, many developers focus on the wrong thing. They focus on code quality.
Code quality matters, but the experience we provide matters more.
When we've given everyone a good experience, we can turn our attention inwards and clean up our code.
Experienced developers may be able to write clean code while crafting the site. That's a skill they learned through experience.
Younger developers should focus on the experience they can provide first. Once they've nailed down the experience, they can learn to polish their code. And we get the best of both worlds.
Design is important.
When I talk about design, I mean both visual design and interaction design.
We're the best person to work on design because we know how the web works. We know what can be done and what cannot be done. We also know how people use the web. And we care enough to keep ourselves updated.
We are not here to take over a designer's job. They have their skill sete, and we have ours. We augment each other.
We can critique a designer's ideas.
This brings me to the final skill.
Developers have a reputation to be anti-social freaks. We prefer sitting behind our computers and type code all day. If we can, we don't even want to talk to anyone.
It's okay if we don't want to talk to anyone.
But if the need arises, we must be able to communicate. Here are some reasons:
- If you work with a designer, how can you critique their designs (or point things out) if you don't know how to talk to them?
- If you work with other developers, how do you split work? How do you decide what practices you're gonna use for the project?
- If you work with a project manager, how do you explain why a specific feature is taking so long, or why certain features cannot be done? How do you convince them?
- If you talk to a user, how do you find out the problems they're having with your sites?
The points above are just some possible reasons. I'm sure you can think of more.
The point is, we need to know how to talk to people if we want to get buy-in from them. If we can't communicate well with anyone, how can we produce our best work?
It's pretty hard to become good at frontend development. We need to wear different hats depending on the situation, and we need to be pretty good with all these hats.
It may be hard, but it isn't possible. Frontend development is a skill that takes time to master.
I'm not even close to mastering everything in the frontend world right now. I'm still working towards it.
I'm proud to call myself a frontend developer. I hope I'm a good one.