Front-end development is harder than backend

Been developing a HTML5 video player solo from scratch at work for the past few months. The experience is summed up in the title of this post ๐Ÿ˜›

This post is not about discrediting the complexity of backend development or shooting back at backend developers who scoff at front-end developers. To be clear, I have touched backend, database, frontend, mobile and DevOps, so I’m in a neutral position here. And nope, I wouldn’t call myself a full stack developer – more of a “Jack of all trades, Master of none” ๐Ÿ™‚

Will be using a few analogies so that non-tech business folks can understand as well. First up is that of a restaurant setting. The backend developer is like the cook working in the kitchen. The front-end developer is like the waiter attending to customers. The mobile developer is probably like the dispatch rider. Who gets more flak, the cook who takes in orders from the manager and prepares the food, or the waiter who has to put up with a thousand different types of temperaments and odd requests?

Now, let’s use the analogy of a house. Imagine that a website is like a house, the video player that I’m developing is a serving cart which is basically a piece of furniture, the front-end developer is a carpenter who is designing/building the serving cart and the backend developer is the woodcutter who cuts the trees and supplies the wooden parts. And yes, in this case, the cart is to be made of wood.

A website needs to adapt to different screen sizes on different devices, i.e. have a responsive design. For most cases, this would mean adapting to mobile and desktop. In our analogy, a mobile device is like a child guest, a laptop is like an adult guest and a desktop is like an elderly guest. The serving cart needs to be child-safe (no sharp edges), have enough space to put food/drinks (its main purpose), stable and equipped with caster wheels for the elderly guest to move it around.

Front-end development usually have to cater for cross-browser capability, i.e. the website should look and perform consistently across different browsers such as Google Chrome, Safari, Firefox, Edge and regrettably Internet Explorer. This is akin to making the serving cart pleasing to guests with different types of perception/needs. The colour cannot be too bright for those with extreme light sensitivity. The colour cannot be too dark else it will cause issues for those with night blindness. The wood must have a smooth finish so as not to hurt those with sensitive skin. The wood must be treated and laminated for those worried about bugs. Some guests think that serving carts must be round, so if your serving cart is triangular in shape, they may miss it.

How about UI and controls? The video player needs to cater for fullscreen, how it renders when the page is scrolled, pause playing when out of view, handle ads, playlist, support seeking, etc. In our analogy, it’s like catering for the different types of actions guests would perform on the serving cart. Some children may sit on it while others would run about and knock into it. Some adults would move the serving cart in small steps while others would give a big push. How about playing “Wheel of Fortune” with it? What if a drink spills on it?

The video player would need to work and look the same when plugged into different client websites, plus it has to be customisable. For our analogy, if the serving cart is to be used only in one house, that would be the end of the story. But no, the serving cart will be sold in a furniture store like IKEA and will be used in many different houses. The caster wheels on the serving cart need to work well on hard floors, carpeted floors, parquet, etc. The height needs to be adjustable as the house owners would be of different shapes and sizes. There must be multiple colour options so that the cart can complement the living room’s colours. The wood needs to be resistant to mildew when placed in houses by the sea. The individual legs of the serving cart must be adjustable to cater for uneven floors. The buyers may want to engrave their favourite phrases on it, or add extensions such as hooks/lights/speakers. On top of all these, it must be easy to maintain and last for many years.

Meanwhile, the woodcutter is happily cutting his wood in the forest. Gist of the story is, anything to do with UI and UX is hard, so kudos to all the front-end developers out there – ad huc!