yujiri.xyz

Software

Engineering frustration analogy

written 2024-07-06

I'm a software engineer who hates the software industry. I rant about it often. It's not just that most software companies have no sense of ethics or design, that they have garbage hiring practices, or anything like that, it's also the software they use to develop software, and thus the software you have to use if you work for them. It's needlessly complicated and almost all of it actually makes developing software harder, not easier. I've struggled for ways to explain what it's like to non-programmers, so I came up with this analogy.

Imagine you're a construction worker, and you want to use a hammer. But your boss says that using a hammer directly is an outdated, manual way of doing things. There's a machine that automatically swings the hammer for you. The machine requires electricity of course and doesn't have a battery, so you have to go get a portable generator and a power cord to connect it. Then you go to press the button to turn this machine on, but your boss says wait! You're not supposed to do that manually either. There's another machine that presses this button for you. You're supposed to hold it while standing in front of the button. But this machine is too heavy for you to hold it steady. So your boss tells you to use this other machine to hold it in place. But that machine only works when the hammer is swinging downward. When you need to swing the hammer sideways, you're supposed to use another machine that tricks the previous one into thinking the hammer is swinging downward. But that machine malfunctions in noisy environments, and the generator for the first machine is making too much noise. So you have to get some other machine...

And on and on it goes. At every step, your boss is utterly convinced that the solution is another one of these machines. You might've believed them at first that using the first machine would be easier than swinging the hammer yourself, but now you can see this whole thing was a mistake. But it's eaten the entire industry. Every construction company now works this way. Inventing more machines to extend this chain is one of the most lucrative businesses.

Proxied content from gemini://yujiri.xyz/software/engineering-frustration-analogy.gmi

Gemini request details:

Original URL
gemini://yujiri.xyz/software/engineering-frustration-analogy.gmi
Status code
Success
Meta
text/gemini; lang=en
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.

What is Gemini?