The role of the front-end developer extends far beyond translating designs into code. They should be involved in many other aspects of the design and development process too.
User experience and interaction design
Everyone is responsible for UX and front-end developers play an essential role due to their intimate relationship with a huge range browsers, across devices and operating systems. How can you design for the web if you don't understand the platforms' constraints and powers?
An experienced front-end developer should be able to design a suitable front-end architecture which includes the consideration of the following:
- Design patterns
- Architectural patterns
- Bootstrapping strategies
- Bundling and compression
- Modularity and semantics
- Technical contracts between backend and front-end. Namely view models and XmlHttpRequest end-points
- Code style and convention
- Testing and automation
The beauty of the web is one of reach; deploy once and access everywhere; there are just two requirements: a browser and an Internet connection. Oh and a competent front-end developer who won't fuck up your website.
Front-end developers are responsible and should take pride in the fact that, the UIs they build, are accessible to everyone, no matter their age, ability, user interaction preferences and, choice of device, operating system and browser.
Front-end developers are normally speaking, the only advocates of accessibility and as accessibility is intertwined with usability, it's vital to be knowledgeable and to champion it readily.
Front-end feature writing
Given a well defined and suitable front-end architecture, adding new features and updating existing features will include the writing of HTML, CSS and Javscript. This should include writing unit tests and (at least helping to write) automated functional tests.
Search engine optimisation
Much like accessibility, it is imperative front-end developers understand how to build web pages that are search-engine friendly, so that appropriate indexing can take place in order to surface the content of the web page to their users.
It is important front-end developers understand various facets of performance ensuring that web pages are served and run as fast as possible without degrading the UX. This includes a good knowledge of browser caching, compression, bundling and runtime performance.
Front-end developers should endeavour to test in as many browsers as is reasonable when developing, but will understand there is a balance to be had, as testing all browsers, in all compatibilities, on all devices is a sisyphean task.
The balance can only be struck through experience of knowing which spread of browsers should be tested and at which frequency. Leaning on cross-browser scripting minimises the worry behind a lack of manual browser testing coverage.
Development process and methodologies
It is very important to be able to work as part of a team in a given process. This means an understanding of various Agile methodologies. Furthermore, it's highly beneficial to you and your team to be able to spot friction and implement improvements to that process.
Sign up to Good Design
I'll send you one email per month about nailing the basics, avoiding complexity and making things work for everyone.