What happens if a backend developer and a web designer swap roles.

Premise

It’s a universally acknowledged truth that a professional backend developer could never turn into a web designer, and vice versa.

Despite the attempt of citing the incipit of one the best romance ever written in history, this story leaves no room for love, pride or prejudice. Instead it is about two tech persons, a backend developer and a web designer, who are trying to build a web app by swapping roles.

This previous statement might sound like the perfect recipe for a company’s failure but the truth is, nobody knows how the story will end.

Although this article should be web-centered, some facts may drive you away from the subject. Keep in mind that as a web designer I am wearing the shoes of a backend developer and I am lending my shoes to them.

It is an obvious assumption that the project telling will dig a little deeper and might end up diving in a proper anthropological experiment, which, I wonder if it will spare some survivors.

Abstract

Long story short: Ryan Justin and I are currently in Thailand, living on the paradise island of Koh Samui. We are attending the same coding bootcamp at Tortuga Coders (full stack development). The course requires all students to build and deliver a web app by the end of the 9-week course and team-work is strongly advised to win the competition.

Ryan is a young man from Indonesia, he is brilliant, practical and a fast learner. He is kind, accommodating and friendly. A fully experienced backend developer, a “too good to be true” type of man.

He hates the beach, the sun and the sea. He goes to the gym and he keeps eating all day.

I am a stereotypical Italian girl: short, tanned and layabout. I am upfront, mean and sometimes reckless. I’m an experienced web designer with a masters degree I obtained in Barcelona.

I am a professional waterpolo player, I love swimming in the sea and I swim a lot, so I earn the right to eat.

He’s the yin, I am the yang; he watches “Game of Thrones”, I read Palahniuk; but let us not get confused: he’s the backend, I’m the frontend.

Since our knowledge is diametrically opposed (as much in matters of code, as in matters of modus vivendi), it helped me to conceive the idea of working together by doing each other’s job: through this process, the eager of learning could be abundantly fed and the secrets of success could be exchanged.

I offered him to join me, I pursued him for three days (his first reaction to the Freaky Friday experiment wasn’t that convincing) and he finally said yes.

Sprint 0

We are building a gym app, a fitness tracker soon to become a body-builders’ community. Users can sign up, register their workouts daily, check their progress and eventually share it.

As orthodox agile practitioners we began writing the users stories and we split it into tasks.

“As Pedro Pereira I want to sign up to the app, so I can have my personal account”

“As Pedro Pereira I want to log my daily workout, so I can keep track of my progress”

The first deal set on the table expected Ryan to build the frontend (including responsive layouts) and myself setting up the environment (including database, routes, models and controllers).

The first deal soon set the table on fire: while we were on the same page on working with NodeJs and MongoDB, we had different opinions on the frontend level.

I let him win: ReactJS. Yes, the most “developer-friendly” framework ever made.

I still cannot recall exactly what I was thinking when I surrendered to Ryan’s will but I knew I could not let him get away so smoothly.

I fired back: plain CSS. No libraries allowed. Mobile first.

I could not bend him to the power of Sass, however I am proud of my revenge, I consider it a fair punishment.

Sprint 1

The week goes on among the insults to Postman because it can’t connect to the server (the local server I never started), the frustration of the constantly changing database structure (which I got wrong ten times) and cheating the unit tests in order to pass (tests do not matter to me because 1 == 1 is going to return “true” as far as I am concerned ;) and the growing fear of the upcoming push to GitHub.

However, I have learnt that there is no need for this fear.

A backend nature can smell shitty code from the other side of the room. They get a sensation, then they question you. Lying is useless.

The power of knowledge is the real monster.

While I was trying to endure my floating at sea in a storm I would still freeze at the sound of “fonts don’t really matter” or “color: tomato; is fine for everything”.

I tried not to look. I could not resist. I did.

So we shaped his first button together and I introduced him to fonts. I had to set a timing for his playing and this is what I recollect on the playground later on:

Ryan experimenting with fonts

Never, ever, ever confer too much power to people who can not handle it.

Leaving the over-drama aside, by the end of the week we fixed our broken and sad app in order to achieve a decent mobile interface where you can log your workout (a really tiny MVP). It is far from nice, but body-builders of the world do not fear, one day we will deliver the app you always dreamt of.

When I gazed into our newborn I became aware that there is no tangible sign of my work in it.

This epiphany left me with emptiness and delusion; as soon as I expressed my feeling, Ryan promptly replied “Welcome to the backend’s world”.

So far and further

Even if we gave each other some space to move around the new fields, we also helped each other a lot. I am not able to list exactly what I improved but something mind-blowing is going on here; the doors of the backend are slowly opening. I feel more conscious of what I am doing, I am faster, I have been enriched. I might have acquired more skills in seven days than in a month at a regular job.

Next sprint we are going back to our roles, it is truce-week, we let our souls rest a bit in peace.

Readers do not worry, the experiment is not finished yet.

Legend has it, there are always two sides of the story.