Code is meaningless
Tags: development, career
Published: 2019-12-18 17:50:55

---
title: Code is meaningless
published: true
description: Or 'why' matters more than 'what'
tags: development, career
cover_image: https://thepracticaldev.s3.amazonaws.com/i/z18idt1tkkywng7hr5mj.jpeg
---

Before we start - I'm working on [https://cloudash.dev](https://cloudash.dev), a brand new way of monitoring serverless apps 🚀. Check it our if you're tired of switching between 50 CloudWatch tabs when debugging a production incident.

<hr/>

Okay, so this is the most clickbaity title I've ever had.

Before you get your pitchforks, let me explain. 

And no, neither your job or you as a human being is meaningless, just wanted to put it out there before we start.

_With that being said..._

## Why am I here?

If you're reading this, you're probably a developer. In other words, your job is to write code (and/or attend [meetings](https://dev.to/tlakomy/10-rules-of-a-successful-meeting-in-a-tech-company-1lni) depending on your [seniority](https://dev.to/tlakomy/so-what-does-it-mean-to-be-a-senior-developer-18mk) level). 

When describing your job to a non-technical person, you might say: 

>"I use my keyboard to write instructions for the computer to achieve the result I want"

_(I'm assuming you don't want to admit to copying everything from Stack Overflow)_

They might ask you:

>"How do you know what code to write?"

The answer is, as always: "it depends".

On a very low level, if you want to write a loop, you're going to use `while()` for instance. If you want to create a class, you'll reach out for `class` keyword. I like to refer to this process as "translating thoughts from your mental language into code".

Things get complicated once you move up and up, to see the bigger picture.

At some point, it's not about the loops, ifs, variables and classes. Patterns emerge, modules and systems talking to each other, with varying degree of success. This is where engineering comes in, figuring out how to create the _bestest_ architecture for your app, with the _microest_ microservices and the best libraries you can find.

The thing is, none of it matters. Unless you...

## Build the right thing

Whether you're building products, apps or even open source libraries - you want other people to be able to **use** whatever you created.

This post is not about finding a market fit for your product (there are whole books about the subject, written by people smarter than me). It's about you not wasting tens of hours of each week of your life building the wrong thing.

### Let's talk about users.

Users generally want two things:

* They want to be able to use your app to accomplish their goals
* They want to be DONE using your app so they can move on

As an example: **no one** enjoys logging in to Twitter. 

The act of putting a username and password into input fields is not producing any serotonin in humans [_citation needed_]. But it doesn't mean that other feelings cannot be brought into life by this tiny form.

**When it's broken.**

Once your users cannot log in, **nothing** else in your codebase matters. You might have rewritten your entire settings page to use VueCopter 3.4.0 and no one will even see that.

(_One might argue that the entire Twitter login page being down might be actually beneficial to humanity but this is a topic for another post_).

This is why quality, ownership and caring deeply about your users is so incredibly important.

If a pizza delivery website has a payment flow broken, their entire codebase is meaningless. Call it _pizza raison d'etre_, if you will.

> "I want to give them money, why won't they let me do that?"

Focusing on users creates better products. It can also help you write better code.

Deep understanding of your domain (and honestly, giving a shit) allows you to not only translate JIRA into your favourite programming language. Your job is to **solve problems with code**. The goal is not to waste precious hours of your life building things that are solving the wrong problems or none at all.

Sometimes you might end up not writing **any** code at all to address a problem. Maybe other team already has a solution to your problem. Maybe (_gasp_) talking to other developers is sometimes more beneficial than tackling the problem alone.

Bottom line:

### Focus on users and solving their problems. Give a shit and great code will follow

_PS. Yes, this entire post was inspired by me not being able to pay for a pizza online. No, I'm not hangry, you are._