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.
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
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.
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.