To be a good developer, you must thrive in chaos, and have an insatiable desire to turn it into order.

All user input, both work tasks and actual application input, is pure fucking chaos.

The only way to turn that input into anything usable, is to interpret, structure and categorize it, to describe the rules for transformation as adequately as you can.

Sometimes companies create semi-helpful roles to assist you with this process. Often, these people are so unaware of the delicacy of the existing chaos, that any decision they make just ripples out in waves leaving nearly irreparable confusion and destruction in its path.

So applications themselves also slowly wear down into chaos under pressure of chaotic steak-holders which never seem to be able to choose between peppercorn or bernaise sauce for their steaks.

Features are added, data is migrated between formats, rules become unclear. Is ketchup even fucking valid, as a steak sauce?

The only way to preserve an application long term, is refactoring chaos into order.

But... the ocean of chaos will never end.

You must learn to swim in it.

All you can hope to do is create little pools of clarity where new creative ideas can freely spawn.

Ideas which will no doubt end up polluting their own environment, but that's a problem for tomorrow.

So you must learn to deal with the infinite stream of perplexed reactions from those who can't attach screenshots to issue reports.

You must deflect dragging conversations from those who never quite manage to translate gut feeling into rational sentences.

You must learn to deal with the fact that in reality there are no true microservice backends. There are no clean React frontends. There are no normalized databases. Full test coverage, well-executed retrospectives, finished sprints -- they are all as real as spherical cows in a vacuum.

There is no such thing as clean code.

There is only "relatively cleaner code", and even then there are arguments as to why it would be "subjectively relatively cleaner code".

Every repository, every product, every team and every company is an amalgamation of half-implemented ideals, well-intended tug of war games, and brilliantly shattered dreams.

You will encounter fragmented shards of perfect APIs, miles of tangled barbed documentation, beheaded validator classes, bloody mangled corpses of analytical dashboards, crumbled concrete databases.

You must be able to breathe in those thick toxic clouds of rotting technical and procedural debt, look at your reflection in the locker room mirror while you struggle yourself into a hazmat suit, and think:

"Fuck yes, I was born for this job".

  • 11
    I like to imagine user input as a slab of granite, you chisel away until it's something nice
  • 4
    Well said
  • 1
    do you happen to work for the Dev Korps of Krieg?
  • 1
    @Jedidja to late to edit
  • 1
    I guess I have to quit. I can't swim and I was not born for it.
  • 4
    @devnullptr That can be a valid decision, a dev career is certainly not for everyone.

    Luckily there's plenty of swimming pools where you can test your aptitude for swimming, or just have fun without any risk.

    Those are hobby projects.

    When you're coding together a web interface for your raspberry pi home server, or building an autonomous quadrocopter drone from scratch — you sure get a taste for the chaos of development, but no one will get angry at you for failing to deliver or writing messy code.

    I think everyone should become a developer — similar to how everyone should know how to cook a nice meal in the comfort of their home kitchen, without submitting themselves to the stressful chaos that a restaurant chef deals with.
  • 2
    To be brutally honest you sound like the lamest batman villain right now. #thedweller
  • 3
    @gibus I'll take that as a compliment. 😄
  • 4
    Such a great prose this write-up has.
  • 2
    To my supercar brain what people see as chaotic seems perfectly ordered. Just could be simpler.

    There’s a downside tho — sometimes colleagues can’t totally understand what I do. I made writing code that they can understand a competition, an additional limitation to make things spicier.
  • 2
    @kiki You have supercar brain? Biggest cringe I saw today lmao.
  • 0
    @zemaitis lemme fix that real quick
  • 0
  • 1
    @kiki There's a difference between what's subjectively easy (for you), and what's objectively simple (elegant in its design, well structured and minimal while fulfilling it's purpose).

    Maybe your "supercar brain" can fathom incredible complexity — but if that complexity isn't necessary, you added a limit to scalability. Even the best brain has limits at some point.
  • 0
    @bittersweet when I say “supercar”, I mean it. I never said I was smart. Supercars are fast, dangerous, expensive to maintain and require serious training to operate.

    It all checks up.
  • 2
    @kiki Get checked for add or something then mate.
  • 2
    One of the best things I have read in a while.

    I feel that this also applies to life in general. At least my life is in chaos.
  • 1
    I don’t think it needs to be chaotic at all. We need more “designers” and less “creatives” and “coders.” These waterfall product teams are fucked.
  • 0
    I haven been working in company for 4 years trying to convert the Chaos to order but I have been failing so hard that I have lots desire for the job. I don't want to even write a code anymore.
  • 0
    Too long. Can someone summarize it to me.
  • 2
    @Devnergy Top reason not to be a dev: Asks others for a TLDR.

  • 1
    Damn! This belongs in a Clean Code book.
  • 1
    Please show this to alle developer newbies who get scared when entering this universe of pressure and over-engineering
  • 0
    That was beautiful. I need this on my wall.
Add Comment