DEV Community

loading...
Cover image for The Hells Every Developer Experiences

The Hells Every Developer Experiences

Wade Zimmerman
・2 min read

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?

Discussion (18)

Collapse
faranaiki profile image
Muhammad Faran Aiki

"Please, can you fix my printer?"

Collapse
ajhalili2006 profile image
Andrei Jiroh Eugenio Halili

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

Collapse
faranaiki profile image
Muhammad Faran Aiki

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

Collapse
egilhuber profile image
erica (she/her)

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

Collapse
nicm42 profile image
Nic

Those Dilbert cartoons illustrate those points perfectly!

Collapse
monor001 profile image
monor001 • Edited

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!

Collapse
jankapunkt profile image
Jan Küster

salespeople sold feature which is yet not implented hell

Collapse
dansilcox profile image
Dan Silcox

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

Collapse
ginomempin profile image
Gino Mempin • Edited

Developer:
We don't have time to do everything all at the same time. Which one should be prioritized?

Manager/PO/Client:
"All of them are high priority."
"Do all of them in parallel."

Collapse
dansilcox profile image
Dan Silcox

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

Collapse
rishitkhandelwal profile image
Rishit Khandelwal

Right

Collapse
pierrewahlberg profile image
Pierre Vahlberg

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. 😅

Collapse
adam_cyclones profile image
Adam Crockett

Hmmm I had a job like this ^^^

Not every job is like this ^^^

You might find less hell one day

Collapse
theooliveira profile image
Theo Oliveira

10 is so awfully truth, or truthy? Lol

Collapse
jeroenrombouts profile image
Jeroen Rombouts

Good and fun article.

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

Collapse
phongduong profile image
Phong Duong

Funny

Collapse
dmahely profile image
Doaa Mahely

“Unable to be able” 🤣

Collapse
daveclarke profile image
daveclarke

The last developer was much faster than you are.