Front End Development plays a key role in the production of any website or app. Yet if you read articles about it, or browse recruitment adverts seeking FE Developers, you may be left feeling confused about what this role really involves.
This confusion seems to stem from the current trend of conflating general Front End Development with JavaScript Development. This seems to have led to a view that FED means specifically coding. I think that couldn’t be further from the truth.
What is Front-End Development?
Front End Development is an exciting melting pot of opportunities for problem solving. It’s not specifically about writing code, it’s about understanding a diverse set of requirements and working out how best to solve them. Front End Development is problem solving, but not all the problems will be solved by writing code.
Here’s a list of key things that I think any FED should know and be doing as part of their role. Of course, my views are clearly informed by my own experience and you may not agree:
- Understand user behaviour to inform the development of interfaces that are intuitive, robust and delightful
- Build fully functioning user interfaces and prototypes (in collaboration with Designers and UX colleagues), including translating designs from provided visuals
- Integrate any user interface into any back-end system
- Fully understand the HTML and CSS specifications (and keep up to date with the recommendations)
- Write semantic HTML documents that follow accepted standards, including document outlines and accessibility requirements
- Understand Progressive Enhancement and Graceful Degradation and know when to use either methodology
- Understand how to provide usable experiences across a range of devices, screen sizes and legacy browsers
- Improve UI performance through appropriate optimisations for any given situation (desktop, mobile, low bandwidth, etc.)
- Be involved in user-testing and analysing test data to inform improvements as part of an iterative development process
- Be detail and quality focused and always be learning
It’s worth noting that many Front End Developers also have a good eye for layout, typography, grid systems, colour and general good design. While that’s not essential it can help considerably when building a consistent experience that matches the designer’s vision.
It’s not about tools or techniques
But what about coding languages, tools or techniques? Of course it’s absolutely vital that you understand the technologies required to do your job, but that’s the minimum expected. Learn what you need, but don’t mistake your technical ability as being the most important part of the role: it usually isn’t.
As an industry we get so hung up on tools and techniques that we often forget about the end goal: producing good work of real value. And how do we do that? By applying our skills in critical thinking and problem solving. Those are the primary skills required: the tools and techniques you use to get there are secondary.
Too general a title
I believe the Front End Developer title is too general to be useful. Some FEDs might do all the things listed above, while others might specialise: some focus on writing hardcore JavaScript apps; others focus on writing highly semantic HTML and cutting-edge CSS; others work more with design teams to solve complex interaction problems through iterative prototyping. The list is endless.
Using a general title can cause problems for recruitment too. I’m currently looking for my next career move and the variety of jobs being described as Front End Development is astounding. Most of these job adverts are laundry lists of technical skills, and include requirements as diverse as “Five years experience writing commercial PHP” or “Angular.js Ninja” with barely a mention of the broader skills that I expect to be a core requirement.
The biggest offenders are adverts seeking JavaScript developers. A good JavaScript developer is more likely to have a deeper understanding of the language that goes beyond what a typical Front End Developer is likely to know. A good FED may be a great JS developer, and vice versa, but I think it’s misleading to conflate these two skill-sets. I mused about it on Twitter and received some interesting feedback:
If you’re looking specifically for a top-rated JavaScript developer, you might find better candidates using a job title like “Senior JavaScript Developer”. This will also help broad-skilled FEDs to stop wasting time looking at the wrong roles.
Do we need new job titles?
In my search for a new role, I’ve come across a number of job titles that seem a more appropriate match to my understanding of the Front End Developer title:
- Front End Designer
- Front End Experience Designer
- User Interface Designer / Developer
- User Interface Engineer
These titles focus more on design/experience but they don’t quite communicate the variety of disciplines encompassed by the modern Front End Developer. But I think these titles are better than what we have. I think that the focus on design and experience is more appropriate than the focus on development because the FE role is about much more than just coding.
I hope that in future we’ll start to see a more appropriate job-title which will help to remove the confusion from the industry. For now though we should remember that Front End Developers can have a broad set of skills and shouldn’t be seen as only ‘writing code’. Let’s make sure that we understand each individual’s own strengths and interests and the unique value that each of us can bring to the development process.