The Hells Every Developer Experiences
Wade Zimmerman

Wade Zimmerman @wadecodez

About: Code by day; blog by night

Location:
California
Joined:
Jun 5, 2021

The Hells Every Developer Experiences

Publish Date: Jun 12 '21
196 20

Every programmer has a tale to share about vicious cycles in their life. Here are a few common forms of torture for the eternally damned:

1. Environments

It worked on my computer. How does it not work on yours? Let's use the same OS. How do you install Linux? Let's use a virtual environment. Wait, actually, let use a virtual machine. Oh no, we forgot about production. How about Docker? Kubernetes? Ah, what the heck? This should be automated!

Dilbert programming environment

2. Dependencies

Rouge commit. All of a sudden, a decimal place is moved, and the whole dependency tree breaks. Survivors are faced with unmet peer dependencies.

3. Tutorials

This is where developers seek sinful pleasure. It was created for junior developers, but some say that you can't get out once you enter. Managers love them too.

4. Callbacks

Can we take a timeout and look at this later?
callback hell

5. Generics

How hard can it be to make a single class that allows every data type? 300 lines of reflection later...

6. Scope Hell

When callback hell isn't painful enough, spice it up a bit by hoisting variables or using global scopes.

7. Project Management

Let's use Agile because everyone else is using it. What is Agile anyways?

Dilbert uses Agile

8. Threading

Threads == speed! Let's use every single core on the machine to run tasks simultaneously. Then we will propagate exceptions to the main thread and gracefully shutdown. All this multitasking means we can launch scripts. The scripts can use the logging daemon thread.

9. Coffee

Programmers don't need to sleep. Coffee is the only way to write perfect code. My coffee breaks are 7, 9, 11, and 2. Why am I so tired this morning? Anyone need more coffee?

10. Meetings

We are behind schedule. Here is my 3-hour presentation on how we can increase productivity. Long story short, we need to meet more often.

Dilbert explains meetings

11. UX

Nobody:
Browsers: Let's make everything the same besides this.
Java: Let's make our own CSS standard.

12. Legacy Code

Self-explanatory, no comments needed.

13. Internal Frameworks

See documentation.

14. Version Control

Push. Pull. Stash. Push. Fast-Forward. Merge. Conflict. Resolve. Push. Unable to push because of conflicts. Unable to pull because the branch is 3 commits ahead. Unable to resolve conflicts. Unable to be able.

15. Compilation

Spent all day fixing linking errors, and it final compiles. It says 3 hours remaining. 2 hours in, you remember you have a memory leak.

16. Documentation

Last updated in 2011. See comments in legacy code for more details.

Dilbert tries programming

Other Notable Hells

  • Backwards Compatibility
  • Caching
  • Coding Interviews
  • Features
  • Talking to non-programmers

The End

You have been to hell and back. Which one do you think is the worst?

Comments 20 total

  • Rishit Khandelwal
    Rishit KhandelwalJun 12, 2021

    Right

  • Nic
    NicJun 12, 2021

    Those Dilbert cartoons illustrate those points perfectly!

  • Muhammad Faran Aiki
    Muhammad Faran AikiJun 12, 2021

    "Please, can you fix my printer?"

    • Andrei Jiroh Halili
      Andrei Jiroh HaliliJun 13, 2021

      Me: I'm an developer, not an [CENSORED] IT technician.

      • Muhammad Faran Aiki
        Muhammad Faran AikiJun 13, 2021

        Yes, I do hope people know the difference; there are many branches of computer sciences.

      • Andrei Jiroh Halili
        Andrei Jiroh HaliliNov 28, 2021

        But what if software developers/engineers that also IT sysadmins are in the human resources teams?

    • erica (she/her)
      erica (she/her)Jun 15, 2021

      "I'm a software person, not a hardware person" is my go-to for that one and all related questions

  • Theo Oliveira
    Theo OliveiraJun 12, 2021

    10 is so awfully truth, or truthy? Lol

  • Pierre Vahlberg
    Pierre VahlbergJun 12, 2021

    Definitely defending broken code/bugs with "i swear it worked on my machine/when I tested it ten minutes ago"

    ... well, its obviously broken so do something about it instead. 😅

  • Adam Crockett 🌀
    Adam Crockett 🌀Jun 12, 2021

    Hmmm I had a job like this ^^^

    Not every job is like this ^^^

    You might find less hell one day

  • Jan Küster 🔥
    Jan Küster 🔥Jun 15, 2021

    salespeople sold feature which is yet not implented hell

    • Dan Silcox
      Dan SilcoxJun 16, 2021

      Haha yes the classic 'building the tracks from the front of the train' story:
      https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fmedia.tenor.com%2Fimages%2F4dabc77e6284973dc853b29e447903c4%2Ftenor.gif&f=1&nofb=1

  • Dan Silcox
    Dan SilcoxJun 16, 2021

    Them: "It's broken"
    Me: "Can you be more specific?"
    Them: "I THOUGHT YOU WERE SUPPOSED TO BE A PRO I NEED THIS FIXED ASAP!!!111"

    Thankfully not had this in my current job but wow... :D

  • Doaa Mahely
    Doaa MahelyJun 16, 2021

    “Unable to be able” 🤣

  • Phong Duong
    Phong DuongJun 17, 2021

    Funny

  • Jeroen Rombouts
    Jeroen RomboutsJun 17, 2021

    Good and fun article.

    Though, I was wondering why a commit would wear makeup...

  • monor001
    monor001Jun 18, 2021

    Employer: "We would like to replace the technology we currently use with this famous one". Me: Why? Is there any technical reasons?
    Employer: No, it's just the trend of these days. We need to immigrant for the sake of immigration!

  • daveclarke
    daveclarkeJun 18, 2021

    The last developer was much faster than you are.

  • official_dulin
    official_dulinFeb 8, 2022

    Since there is callback, there should be concurrency

Add comment