How could you work so long on a website?

As a web developer in an innovative start-up environment, I sometimes feel misunderstood. Mostly by non-tech or very conservative people but sometimes also by other developers who work in a different kind of environment. Today, I’m working as a front end developer at FLAVR, a service that connects people who are better at cooking than I am with people who like food. This is actually my fourth job not only at a startup, but also at a startup where the product or service is the core business.

Some of the questions I get all the time are like ‘How could you work on a website for such a long time?’, ‘Don’t you ever get bored doing the same stuff?’, ‘Is the project never finished?’ or my absolute favourite: ‘What do you do all day?’…

A lot of those questions are asked by people who have no clue about what I do at all. I like to refer to them as ‘the ignorant people’. Some of the questions are also asked by web developers or other tech people, who work at consultancy companies, agencies, etc… where they change projects each couple of months. As they also don’t really seem to get what my job’s about (although they think they do), I like to refer to them as ‘the ignorant tech people’.

Maybe I should stop calling people names and write a blog post about the only thing that matters here: the answer

My job is not building a website

One of the biggest misunderstandings outsiders have, might be that the goal of a tech startup is not building a website and earning money with it. That’s the job of a web agency. They receive a requirement by a customer, build a website and get paid for it.

In companies like FLAVR, Showpad, Netflix, Spotify,… your job is not building a website, it is providing a service for your customers. That service is then usually automated by a website, a mobile app, an API or even a FB messenger bot.

“But… you’re describing customer support? You’re not working at customer support, do you?”

Yeah, my job is pretty much customer support. I need to implement new features because customers (in the particular case of FLAVR: read ‘hungry people’) need them. I also need to fix bugs or make other improvements to make the lives of people easier. All of this is well described in a picture I found on the LinkedIN of Kayode Abraham.

You actually need to give a F*

As the core business is a service (as I mentioned above), that service should work pretty well. In case a website is used, that website needs to be of a certain quality in order to give the user a good feeling. Here are some (NOT ALL) of the things that can no longer be ignored if you want to give your users a decent experience.

Usability

First of all, your app/website/… needs to be easy to use. Nobody wants to read a manual before going on the web. People literally go away if they cannot find what they’re looking for.

Accessibility

Secondly, it’s not because your stuff is usable by you and your five best friends, that everyone else can use it. Accessibility is all about ‘the other 99%’. It includes, but is not limited to, people with a handicap. Can a blind person still use your application? Do people still know what is on an image even if it doesn’t load? What about high contrast mode?

“But these are just a smaller group of people, I don’t care about them, nobody does”

That reaction is typical for someone who does not care about his/her customers at all. Also the statement ‘nobody does’ could not be more wrong. Facebook for example has multiple people working on accessibility only. They are even building an AI to recognise what is shown on a picture to guarantee a better experience for blind Facebook users.

Performance (or as Paul Irish likes saying it: #perfMatters)

A web solution is only a good solution if it works well and fast. What most people don’t seem to get is that performance is everywhere and needs to be checked on every technical aspect of a user process. It’s everything in between a user needing something and getting the help he/she needs. Every spoiled brat has a fiber internet connection at home and a macbook pro, but not everyone is that spoiled. It’s surely possible your customers mainly use a somewhat outdated phone. Both the phone itself and the internet connection will be slower as you would expect.

“Yeah, but I am building a service for Belgian people with an iPhone. There is 4G everywhere nowadays”

NO, there isn’t! If you’re convinced by that statement, consider visiting West-Flanders one day, you’ll be happy getting an EDGE-connection after climbing up a tree. Also, in the city center, where a lot of people use a mobile connection, it can also become pretty slow…

Scalability

Okay, let’s just assume everybody has a Macbook Pro, with Google Fiber. All of your customers are very understandful and keep on using your web service although it’s shitty. How are you going to handle the traffic?

“It works for five users, it will most probably also work for 1M”

Do people still believe that? Apparentely way too many people react like that. Let me whisper a secret: “IT DOESN’T WORK THAT WAY!”

“We will just add some more RAM when needed”

Uhm, okay (let’s just pretend that’s a solution). Who’s going to pay for that?

Desktop / mobile / watches / …

Did you notice? There are different kinds of devices people can use to access your platform. That means not only other viewports, but also other API’s and hardware that can or cannot be used.

“Yeah, mobile is the future, but you can still use the site with a desktop computer. We can build a mobile version later on”

‘Mobile is the future’ is nowadays a straight up joke. There are way more people browsing the web through a mobile than a desktop device. Actually, mobile as we know it today will soon belong to the past. The internet of things has been coming up as well as bots. Don’t worry, soon there will be a better alternative than a mobile browser or app…

Browsers

Besides different devices, users use different browsers. That means, your front end might look different or have different behaviour. Do websites need to look exactly the same in every browser?No, but it needs to be usable and look decently.

“Hey, I am not an archaeologist, people can update their browser.”

Unfortunately, a lot of users are NOT able to update their own browser. It can either be due to a lack of technical skills, but also in case of company computers, there might be access restrictions.

Anyplace, anywhere, anytime

Imagine your service running smoothly on all devices and it gives a nice experience to the end user. What if a someone speaks another language? You know, those people exist. #jusdorange

“Yeah yeah, we will translate our app later on. An easy fix afterwards”

Well, no. Languages are some kind of weird sorcery that don’t follow any mathimatical logic. It sounds like a regular thing, but translating an app/website can feel like going through hell. Orders of words can change through sentences. Some languages even have different kinds of plurals. Luckily, i18next exists, but it takes time and effort to take care of that.

Besides languages that can differ, timezones, currencies and a lot of other things can be different for each user.

SEO

The best place to hide a death body, is behind second result of Google. Search Engine Optimization is also a time taking effort. Also optimizing your service for social media takes some effort.

The internet never sleeps

One of the biggest disadvantages of an internet business is that it needs to be up and running all the time. Every offline business can close at a certain time and then start cleaning, preparing for the next day and open again. With an online business, the cleaning needs to happen during the service hours. Every second your service is down will cost you money in the end.

It needs to look better than Angelina Jolie

Besides all the productive magic your service does, it also needs to look nice. A user needs to feel welcome and has high expectations. A good design also explains how it works.

One more thing

Did I mention? It needs to work also

Creating automated tests can at least give you some view about whether your project works or not. Only disadvantage is that creating those is very time consuming. Automated tests are not even the only thing you need, but I’ll talk about that one day, in another blog.

“But I tested it myself, and it works”

Yeah, but you are a limited edition. The combination of personal preferences, AB-tests, language, timezone, country, gender, weather,… makes you probably the only person who has that particular experience of the service.

Users rely on you

Whenever you are providing an online service, people will rely on it. Imagine Facebook going down. The world is not prepared for that. But it goes way further than that, you usually collect your user’s data. They trust you, you are the chosen one. You have the responsibility that nothing bad ever happens to that data.

“Hah, my dad’s a lawyer and he designed a very beautiful Terms Of Service, that removes all my responsibilities”

That is correct, a terms of service can take away some of your responsibilities. Although, this is not about the law. It’s about attitude. You will receive your user’s faith, but only if you’re faithful as a service, as a company but also as a person.

Other people will use your code, even when you’re asleep

In startup life, people come and go. Also, you have to work together on a project. It is pretty easy to program something yourself. It’s way harder to code in a way that is understandable for everyone. Luckily there are many sites that can help, like this and that and that and even this. The point is: it also takes more time and effort.

Features, features, features

Last but not least, let’s talk about change. We live in a world that changes, I change, other people change, my life changes but also the web changes. Products change. Something made today, might not be usable tomorrow. Therefore it is important to keep improving and updating. That’s why the job is never done. It will always be interesting and there will always be something new.

This is just a short list of things that you need to take care of in a product minded B2C startup. There is way more than people expect. I hope with this little blog I could clarify at least a little bit why my job will always be interesting and how I could work so long on ‘the same’.

Greetz, Jakob