The Trinity of Front End Development
As it turns out, there tends to be some degree of confusion with regards to distinguishing the three different specialist roles of which constructs a front end development team. I like to think of front end development as a trinity as you can easily break it down into 3 different professions. However, there’s no ‘strict‘ specification to state what type of developer you may or may not be, this is purely based on my own opinion(s) & experience(s). I can’t emphasise enough how a lot of the content within this post is based on my own ideas, this is not necessarily industry standard. Of course there’ll be a number of roles & responsibilities that overlap to some degree or another also, the aim of this post is mostly to provide a more in-depth idea as to what title may be relevant to a specific position.
Let’s start with the first profession, a front end engineer. A front end engineer is pretty much a specialised software engineer. A front end engineers daily tasks may consist of implementing functionality, in addition to writing tests, technical specifications & documentation. If you were to talk about a more senior-lead level front end engineer, then in such a scenario, of course the daily tasks will expand to project management & more leadership oriented responsibilities.
Often engineers will require some knowledge of other languages & ecosystems in the event that the application makes use of server side rendering, as an example. Not to mention how having knowledge of the back end can actually allow front end engineers to consult with other engineers in a more fluent & clear manner. Furthermore, it could aid all engineers, if a front end engineer is able to tackle a specific problem in a clean & concise way within the front end. This could save fellow engineers time working on alternative solutions. A very simple example could be how a front end engineer could query some data set within the browser rather than making another HTTP request to the back end. How a front end engineer could achieve this may vary massively. One example could use a simple array function such as the ‘filter‘ function or possibly using some other built-in technologies.
I believe that engineers should focus more on is keeping their code base to a minimum. This applies specifically to front end engineers purely because of the fact that you want to ensure the user has as little data to download as possible, in turn increasing overall performance. Of course there’s a limit as to how much you can minimise the code base, but a lot of engineers may include unnecessary libraries or frameworks that they use for rather trivial tasks.
User Interface (UI)
The next profession would be focusing on the UI itself. This profession is in my opinion considered to be a more designer oriented role. However, I personally believe that a UI designer or developer should be able to implement some degree of HTML & CSS. You could possibly state that a UI professional’s priority is to ensure that the UI looks as beautiful as possible.
I believe that a UI professional should receive a number of requirements from a UX professional. I believe this should be the case due to the fact that a UI specialist needs to know the requirements of the UI. The requirements can be defined by both UI & UX specialist. But in my opinion, UI professionals should consult with UX specialists to ensure that the UI keeps the user’s experience to an all time high. Furthermore, a UI designer or developer needs to know how the UI is going to work, which is more of a UX responsibility in my eyes.
In my personal opinion the main tools of a UI specialist consists of the Adobe creative suite. They need to be able to implement stunning looking designs, while following design principles. This is a scenario where the likes of PhotoShop can be a God send. Rather than making educated guesses, tools such as PhotoShop will allow you to use grids & guides to aid a designer in the creating an exceptional design.
User Experience (UX)
This is in my opinion the more fascinating profession of the three. A UX specialist will often conduct research, analyse & evaluate current designs & UI implementations. The ultimate goal of a UX specialist is to provide the best possible experience to all users, those whom may suffer with disabilities including sight, hearing, or even motor disorders. Furthermore, a UX specialist will essentially apply meaning behind designs.
A UX professional in my eyes should focus on the ‘flow‘ of the user interface & application, analysing how to keep the UI as simple & straightforward as possible. Furthermore a UX professional should focus a lot on other areas also, including accessibility as previously stated. One aspect of UX that is sometimes overlooked is one’s ability to implement creative ideas. However, one must also test these creative ideas to ensure that they do infcat allow for a good user experience. In addition to accessibility, a UX specialist must focus heavily findability.
Another area that a lot of people may not think of is how a UX designer or developer needs to conduct psychological research. A part of UX is ensuring that the experience is as focused on ensuring ultimate user satisfaction. This may involve all sorts from implementing an incredibly immersive UI through to ensuring that the UI works for the target audience. As an example, if the target audience is focused more towards technologically literate individuals, then it may be best to stick to quite a dull UI rather than a more modern UI.
To work well within any development team, it is essential that you’re an excellent team player. In addition, you need to be able to handle constructive criticism as well as possible. Constructive criticism is important in any team environment, but within development, it’s essential as some other team member may notice a flaw within your work & vice versa. You also need to be able to communicate to ensure that you’re developing & shipping the best front end product you can provide.
At the end of the day, in my personal opinion, a title shouldn’t be the most important priority. In my opinion the most important priority is working together as an incredible team. Of course there will be those whom need to take charge & take on the responsibilities of more leadership roles. But when it boils down to the main goal, it’s making the best product possible.
Finally, an alarmingly common issue that occurs within development teams is how some individuals may develop an ego to some extent or another. In order to ensure the best results for the team’s effort(s), it is crucial that there’s no egomania. It’s always best to be humble & open minded, if you’re in a senior position, it’s always possible that a junior may show you some new tricks or possibly an even better way to achieve the same result(s).