I was about to post this thought on the latest "We're moving from tech/architecture X to Y" post on the HN front page today, but now I feel it belongs here.
I was recently chatting with a friend about how we used to do so much more with so few developers: 20 years ago, we developed mission critical, real time software (trading systems) in C++ with team of a couple of dozen developers. The core trading kernel team was four people. An in-house distributed process orchestration tool (both front end and back end written in C++) were two guys. I myself once managed to produce an entire post-trade risk management system for futures contracts in a couple of months, working alone. Today, I see teams of 60-80 working on web and mobile applications where the vast majority of operations are CRUD, with some transaction/queue complexity at the extremities.
I think the difference is tech churn. Back then, what few dependencies we had in terms of either runtime libraries or development time tools, were stable: the standard library, compiler, unix commands and bash scripts, and some internal libraries. Much of our time and focus went into figuring out the right algorithms and data structures, with coding coming in second. Very little time was spent on selecting, configuring, updating, rearchitecting or replacing tech stacks and tools.
OP has practically observed the effect of the Ego via software, but hasn't quite arrived at the ability to quantify it.
Read back through and apply every example given through that lens.
It is possible that we're in an industry that inordinately expresses this part of human nature, but I'm pretty sure it shows up everywhere though different anecdota. Apply a reductionist Zen Buddhist view to your professional creativity and all of this goes away.
Bob wants to refactor a subsystem because it will make him a hero, and if he positions it correctly to management, the technical merit and actual realized level of success will be irrelevant. Alice chooses to surface some obvious concerns and then sit back and watch the show. Jane chooses to throw her hands up in stand-up and try to emotionally convince everyone the sky will fall. Be like Alice and preserve your sanity.
My observation is simply that tech leaders misinterpret rewards from the market in conquering some abstract representation of a facet of a domain with conquering the domain itself. Then they become egomaniacal.
Did you conquer commercial real-estate ushering in the future of work and society, or did you build a handy scheduling app?
Did you have a neat idea for an online community or did you revolutionize human connection?
Reminds me of this 2014 post "Programming Sucks" [0], which touches on some similar issues of getting disconnected from reality in a microcosm that always "ought" to be better than it is.
> All programming teams are constructed by and of crazy people [...]
> The destructive impact on the brain is demonstrated by the programming languages people write. [...]
> All programmers are forcing their brains to do things brains were never meant to do in a situation they can never make better, ten to fifteen hours a day, five to seven days a week, and every one of them is slowly going mad.
Is it software having this effect or management over software products? I don't see many academic or hobby software projects constantly changing what's important to them on a whim. It can be seen all the time in the software industry though.
It's not software; it's the fact that most managers/administrators are not software developers (although they may have some programming ability). so they stand in teh same relationto their development team as cusomers complaining to a manufacturer about the features on a physical product, and saying 'it should do this or that, it's an easy change to make' (because it's easy to imagine having it if you skip over the tedium of having to implement it).
Of course sometimes the ask is justified and addresses some failing of the original spec, either through lack of ambition or excess ambition that harnessed a cargo container to a lawnmower engine. But most of the conflict the article describe stems from a combination of imagining the benefits of change with the unspoken assumption that implementation is just a matter of pushing a few more buttons.
When I read the title, my mind immediately jumped to something else: negativity.
I've noticed that my own mind always searches for corner cases, error conditions and failure modes. This can be super helpful when planning new features (or explaining to stakeholders that certain conditions must be met first, when they want some new features), but when it extends to other things besides software, it can be psychologically unhealthy.
I love this framing. I have a lot of ideas about why this is true, but the best (IMO) pat explanation I've been able to come up with is:
1. Much of constructing software is math of a sort. In math, you write proofs that say why X is true. In software, you write code that guarantees X will be true (e.g. "the backend assumed a user ID was always available, but now that we have service accounts, we need to change the access control code so that a sensible view is still returned")
2. Math is hard, and most of the work is invisible thinking. If you asked a mathematician for an estimate on when the Reimann hypothesis will be proved, they would laugh at you. Our problems are generally easier, but they can still be hard. And as in math, they're sometimes much harder than you expect (e.g. Fermat's Last Theorem. "Why was it so hard? Did you talk to Fermat? He left? But he said it would be easy!")
I really liked the article. Thanks for sharing!
Here's my alternate title: people are insane, software reveals it.
Insane feels too strong, though. I believe people make sense. We just have this crazy ability to fool ourselves by spinning stories. And many of the stories we continue to spin were handed to us without our awareness.
It is not the software, it is the internet. Something Awful already had it figured out: The internet makes you stupid.
> Leaving things alone is an underrated engineering skill.
Truer words have never been spoken.
I don't usually dig these little tirade blog posts but I genuinely laughed, related, and enjoyed this one.
I particularly liked this quote:
>You can watch sensible people argue for an hour over a button because, somewhere deep inside the conversation, the button has become connected to a future pile of money.
I have worked in a number of different types of jobs; from restaurants, to nursing homes, to roofing, to physics research. And finally for about 15 years I've been developing software at various companies of various sizes (Giant corporations to tiny startups). Part of what he describes is what attracted me to this industry. The feeling of being able to create something that people can actually use and might actually make money (maybe A LOT of money) was/is stimulating. Having witnessed the craziness that can come from that seed, well I just think he did a great job of explaining it. I appreciate that he tries to balance showing the insanity with the fact that there are times when the underlying driver is real. That's probably true of most insanities though. :)
Anyway, I'm not leaving the industry but I think it's really difficult for the AI agents to tell what is crazy and what isn't, so they are picking up this insane culture. (^▽^)
> But, harsh as it may be: most software is still just a glorified spreadsheet.
Think the author means most back-end software is a glorified spreadsheet (CRUD app with a few sorting algorithms).
The last 10-20 years in software has been more about new device interfaces, improving UI/UX, and networking technologies. I think of things like streaming, 3D games, live chat, video content, mobile apps, and LLMs.
Anyone who thinks about software like that would not instill confidence in me that they make very good software.
> You can watch sensible people argue for an hour over a button because, somewhere deep inside the conversation, the button has become connected to a future pile of money.
> It means understanding that not every problem is existential, not every idea belongs on the roadmap, and not every abstraction deserves to exist.
> waste away in Margaritaville tinkering with shit that doesn't need tinkering with.
I don't really understand what each paragraph has to do with each other, or why this message is being shared with me today.
I don't even mind that style of writing, but it should be more specific and interesting if it's going to be stream of consciousness style like that (IMO). To do all that, and deliver just vague half-points and boring assertions, felt like I was just waiting for some kind of punchline or point to be made that I could nod my head at but no thought was stuck with long enough.
The conclusion was like they tried to come up with anything just to turn the essay in on time.
The part that the cost of changing software is unknown, ignored and fixed is not true anymore. This is a thing I realized recently.
A company cannot get free (o low cost) software changes anymore. Someone invented llms and they charge by work produced (useful or not)
So a PM cannot "save" costs by pushing. The employees will resort to their agents and there will be cost. If there is no agent, another company will beat them. So now a change has a measurable cost and even you can calculate in what was spent (agent logs)
I'm starting to believe computer work and screens make me lose touch with reality and dissociate. I remember starting an apprenticeship as a dev in 2015 and I saw a guy like me, but 2 years in, with deep eye bags and he just smiled, didnt say anything and he looked extremely exhausted. Well 11 years later and here we are, we are all tethered to this mess
ya, almost every app is over-opinionated on design and only getting worse not better in most case, iOS 26 is perhaps the most egregious mass-market example
thinking to this day afaik still can't change width of first column on Monday.com even tho they claim to replace spreadsheets and only js console will fix
or Trello going the opposite direction of former CTO when any page specifically had sub-second load target. now many seconds, that insane auto markdown editor showing up on almost all input boxes except HN that can't disable no chatgpt i dont want automated bullets i wanted plaintext so can c/p etc.
Is it fair to say the same applies to writing? It feels like so often when I'm reading something (really anything--blog posts, essays, the news) the words I'm reading are there for their own sake, not because they need to be there.
Maybe it's because I'm reading work with a deadline, or from a half-hearted writer, or maybe it's because a lot of people have never been taught how to write well. Whatever it is, so much of writing is bad because the author hasn't done their due diligence with their purpose for writing.
Except unlike software, this fault is so prevalent and eternal that it has become the status quo.
There is a symmetrical presumption in the minds of people that the software representation in their screens is both accurate and capable of altering reality when changed. This is very often violated, obviously, and people find it jarring.
Another related problem is people will often take software at face value. When you have an inkling of what sort of dysfunction might be behind a certain buggy behavior it is much easier to cope both by finding workarounds, deciding to wait it out (my parents had an issue with some government database and I thought it suspiciously like some change propagation issue, told them to try again next week because I assumed some reconciliation on the weekend would solve it and it did) etc.
But a lay person will see error messages and take it to mean some catastrophic bureaucratic issue with their data when it's most likely just poor quality software...
I think the expectation that software is correct, accurate, and trustworthy, drives people up the wall when they are confronted with the reality of buggy and poorly implemented systems that they are required to use to function in society.
Would like to emphasize: Software is intangible. It fails to meet most standards of "what is real", because it exists entirely in the realm of symbols. You're at the edge of reality. To human instincts it seems like an unreal world without rules, so it unconsciously triggers all sorts of weird things, including a good bit of amoral behavior. Nasty things locked away in one's psyche come out to play.
Tech has the following issues to greater and lesser extents:
* It gets in the way: confirmations, notifications, features that don't exist and can't be added, even when they're asked for repeatedly.
* It stops listening: freezes, overly-strict interaction requirements.
* It's not 100% safe, and thus not truly reliable.
Not all tech is like that. Or has to be.
> A boring application that stores records in a database and lets people edit
> them doesn't sound especially impressive, while a distributed event-driven
> platform with a service mesh and realtime synchronization layer sounds like
> you're building NORAD.
Very well put
It depends on the context, software that controls an airplane has very different requirements from an todo-app.
I've been "joking" about this with my friends for a couple months now, and every day it becomes less and less of a joke--there are some very...interesting...things happening on the Twitter timeline these days.
> Moving the kitchen in software might look like a "simple fix."
Why, of course! We leave the kitchen deployment where it is, and just install a proxy kitchen facade on the other side of the house, which does everything via the original kitchen through remote procedure calls.
> Not in the "wash your hands every thirty minutes like Howard Hughes" kind of way,
Hold on, this isn't that crazy in today's day and age. I used to wash my hands basically only when using the restroom or before eating. Since the pandemic though, I started upping that a lot (not every 30 minutes, but pretty frequently) and since then almost never get sick.
> But, harsh as it may be: most software is still just a glorified spreadsheet.
I've always liked representing it this way, the software we use rarely breaks out of the CRUD mold.
When you know something can be changed relatively easily, say compared to a building or a car, the tendency is to do it. Especially when there is no tight feedback loop telling you what is a right and wrong move. The churn is the result of the psychology of uncertainty combined with the ability to act on that anxiety.
Shipping MVPs or minimal features quickly and seeing if they stick is a solution. Quick and dirty until you know something is worth further effort. Yes, user feedback is good but often people don’t know what they want, or think they want things they won’t actually use, and you won’t find out until it’s sitting in front of them.
And someone is always yelling that everything is taking too long, usually the same person who told their boss that something would be done by x date without asking anyone else.
I wanted the author to see how this relates elsewhere and identify the forces at work.
The solution is not just "do only what's needed by the customer".
There are emerging environments where the conditions don't force previously-rational decisions, and where assumptions no longer apply. New tools in the battlefields of yore, new beliefs and practices in cultures...
The stunning march of compute hardware in the last 50 years has changed many such conditions.
Those who work with new freedom - liberated from the strictures of old gods, able to harm enemies without putting themselves at risk, with the time freed from foraging to build - have to identify the new constraints and conditions at work.
And sometimes to make the conditions that make for sanity: Solon got ancient Greece out of a stagnating pickle by getting the wealthy to release the poor from debtors' jails but sign them up for the military that could defend lands and trade routes, if they subjected themselves to land-owner self-government and the annual ostracism of one person who went too far.
Capitalism used competitive markets to liberate but discipline business, but right now the scaling power of compute leads to winner-take-all, and the openness of the West is seeding closed systems (military or foreign) with the power to destroy the liberal governance that sustains it. In software we're stuck between Scylla and Charybdis: an Anthropic+OpenAI duopoly or Chinese control over the lifeblood of enterprise.
If there were someone who in the large had structured the freedom of software to make its practitioners and stakeholders sane, they'd be a good candidate to steer us through this situation, so this freedom wouldn't drive us insane.
Or, it's greasing the wheels of free-association until people skid out of control.
And since the 'world' of the chat is mostly epistemologically closed (except for Web search), there's no absolute tether point. Everything's subjective, and self-confirming.
> Everything becomes urgent because everything can move quickly
I finally understand why I quit my previous job.
the level of observability swe's have into how their changes affect UX, revenue, costs, etc. definitely have something to do with it. that feedback loop isn't as quick in other industries.
I know this is slightly off-topic, but is washing your hands twice per hour really considered a Hughesian level of compulsiveness?
I feel like this post could've been either shorter or better structured.
It explores a bunch of interesting ideas, but the way they're mushed together makes it taste a bit bland.
I still don't really understand what exactly it was that this text wanted to tell me. A bunch of things? But also nothing. I can deduce what it I think was supposed to tell me (based on extrapolating patterns and most likely talking points), but it didn't necessarily do that. _Telling_ me I mean.
Maybe leaning less into the relateable-ness would've helped there? Or just containing it better.
__
I suppose there is a place for just stream of consciousness rambling (like this comment), but the post kinda came with the optics of "here's a statement", but then there's no real statement.
So maybe that could also have been fixed with a "Here are some not necessarily fully coherent thoughts you might find interesting" disclaimer.
Perhaps my mind is just not wired in the same way as the ones of the target audience, but if that is the case, then I am a bit offended by the blog naming itself "Graybeard".
A bit too vibey feely "that is so me omg" for that.
(The LLM I've consulted telling me that I'm just missing the point here kinda validates that hypothesis for me. Good for you then. May you all bond over this with your weird "emotional resonance" stuff. It seems to tickle the RLHF stuff just right.)
I don’t know… People says that I eat ice cream using the forehead
Beautifully written post and true on many levels. The art of software stopped being an art once large amounts of capital started creeping in. There are no signs that we're returning to sanity any time soon.
As a founder of a few software startups, I agree with this. If I can give advice to other founders, remember than software is usually a means to an end, and for most users, they just want the bare bone essentials to work and work well. Everything else is nice-to-have-fluff that won't drive 99% of sales.
The apps I pay for are simple and focus on a super basic interface. BookFusion and Libro.fm are great examples.
Pretty decent output, mind sharing the prompt and model used? I struggle getting text i enjoy reading
https://www.pangram.com/history/5a4b90c6-0123-4f97-b50e-9c90...
The insanity the author is describing sounds like normal corporate BS to me. Everybody wants to "raise concerns," everybody is looking for an idea to take credit for, everybody has a reason your idea won't succeed. I'm pretty sure this is the same whether you're making software or advertising campaigns or plastic cups.
I once tried to explain a pointless debate over the definitions of "acceptance testing" versus "regression testing" to a non-tech person, and they said that was the most relatable thing I'd ever told them about my job.
I think there's some truth to this. All those decisions and interactions at your fingertips cause dopamine release, which in excess can cause things like psychosis, paranoia, or delusions.
"Drives people insane" is the interpretation of those with an external locus of control. For those with an internal locus of control it translates to "reveals character".
pulling levers is the new equivalent to pulling requests
A lot of it has to do with communications. The times I (as a programmer myself) have witnessed how companies we asked to write software tackled it was eye opening in a negative sense.
As a freelancer my process involves a lot of observation, asking questions and planning. Usually when I go into the details more questions emerge and whom to ask better than the people who do exactly this daily? Sure sometimes their process is a bad abstraction, they chose because they did not knew better and thus not worth putting into software. But before you decide that you gotta ask whether there are reasons why it was done that way. I see my task as a programmer to make peoples lives easier, by finding elegant abstractions for their problems, that are at the same time, reliable, adjustable, encourage correctness, avoid problems and so on.
Now most software companies I interacted with from the other side did none of the things. They rushed to gather the specs, asked some questions in the beginning and were out of the door to start way too fast, with some things they just assumed without confirming. Then crickets and then something half broken comes around that you need to beat into shape in an exhausting back and forth, where again you have to be the person with the questions.
If it is exhausting for a person with software development experience to be your customer, how bad will it be for people who have no such experience.
Now there are of course exceptions also in such companies, but in my experience that is mich rarer than it should be.
Well done and the author is just scratching the surface ...
I’ve always thought that this principle explains all sorts of cultural phenomena, from the tech industry having a poorer work-balance compared to others (the pace of development is only limited by how many hours you must sleep!) and programmers seemingly having worse engineer’s disease than in other disciplines (if software can do anything and know everything, how could we, the lever-makers, be any less than our creations?).
Oh, Nice reading :)
> Most software, when you strip away the branding and architecture diagrams, is remarkably boring.
Lost me right there.
This resonates with me. And I think I know why software is like this. It isn't software that drives people insane, it's money that drives people insane. Specifically the promise of money breaks people's brains. They see the unicorn companies turning junior engineers into overnight millionaires, and they start salivating. They start looking for The Way. The closest thing they find to The Way is a bunch of unicorns and FAANG companies that have gone before. They start looking for talismans and ceremonies that will bring them closer to The Way. Scrum, Agile, Kanban, scalability, "web scale", 12 Factor Methodology, microservices, etc. may be good ideas but they take on real power when they're a perceived path to fortune.
[flagged]
Software development untethered from the practical realities of the customer / user is what drives people insane.
When developers are required to interact with the customer on a regular basis, the freewheeling effects described in this article are damped massively.
The potential for insanity goes off the charts when the development team is siloed away in solitary confinement and the only interactions with the client occur via some prison guard known as "project manager" sliding notes under the door.
Working with the customer sometimes sucks. Just like exercise and eating vegetables sometimes suck. It's a temporary unhappiness that keeps us grounded in reality.