I had a conversation with a bridge engineer one evening not long ago. I said, “Bridges, they are nice, and vital, but they fall down a lot.”
He looked at me with a well-worn frustration and replied, “Falling down is what bridges do. It’s the fate of all bridges to fall down, if you don’t understand that, you don’t understand bridges.”
“Ok, I do understand that,” I replied. “But they fall down a lot. Maybe if we stepped back and looked at how we’re building bridges –”
“You can’t build a bridge that doesn’t fall down. That’s just not how bridges work”
I took a deep breath. “What if you could build a bridge that didn’t fall down as often?”
“Not practical — it’s too hard, and besides, people want bridges.” By now, he was starting to look bored with the conversation.
“I bet if you slowed down how you build bridges, you could make ones that lasted decades, even in some cases, centuries. You might have to be thoughtful, set more realistic expectations, do a lot more of the design of a bridge before you start building it, but..”
He interrupted me again. “Look, you’re not a bridge engineer, so you don’t really understand how bridges work, but people want bridges now. So no one is going to build a bridge like that, even if it were possible, and I’m not saying it is.”
“But people get hurt, sometimes die, on these bridges.”
“Bridges fall down. Sometimes people are on them when they do. That’s not my fault as a bridge engineer, that’s literally how gravity works,” he said.
“I know there will always be accidents and problems with bridges, but I really do think that you could build them with careful planning, and maybe shared standards and even regulations in such a way that bridge collapses could be rare. Some of the problems with bridges are faults we’ve known about for decades, but they still get built into bridges all the time.”
He took a deep breath, and pinned me with a stare. “Even if we could, and it’s still entirely possible that no one can build these mythical bridges you’re talking about, that would slow down the building of bridges. People need bridges to get places. No one could afford to build bridges that slowly, and people would complain.” He stretched out the –plaaaain in complain, in a way that made clear this was the end of the argument and he’d won.
“They might not complain if they didn’t fall off bridges so often,” I mumbled.
He heard me. “Unlike you, people know that bridges fall down.”
Just then, a friend of mine, also a writer, also interested in bridges, stopped by.
“Hey guys!” he said. “So it looks like there’s a crew of Russian bridge destroyers with hammers and lighters who are running around in the middle of the night setting fires to bridges and knocking off braces with hammers. They started in Ukraine but they’re spreading around the world now, and we don’t know if our bridges are safe. They’ve studied bridges carefully and they seem to be good at finding where they’re most flammable and which braces to knock off with their hammer.”
We both regarded my friend a long moment, letting it sink in. I turned back to the bridge engineer and said, “Maybe we need to make them out of non-flammable material and rivet them instead of using exposed braces and clamps.”
But he was already red in the face, eyes wide with anger and fear. “GET THE RUSSIANS!” he screamed.
OK,obviously it’s not bridges I’m talking about, it’s software. And that other writer is Wired’s Andy Greenberg, who wrote a piece not that long ago on Russian hacking.
Some of the problems with bridges are faults we’ve known about for decades, but they still get built into bridges all the time.
I love programming as it is, but we really need to do away with “No Warranty.” I’ll gladly risk being sued over some single-file repo if the tools I use in making it minimize that risk because their developers share the risk.
I’ve argued for the removal of “no warranty”, and I’ve also argued in favor of meaningful certifications (i.e., certifications based on 10+ years of experience and heavy testing of background theoretical knowledge).
Part of the problem is lack of liability – people who know better still get away with stupid ideas. Part of the problem is that HR depends upon a meaningless proxy for hiring (bachelor’s degrees are four years, which is about six years too short for someone who started programming in freshman year to be trusted to write anything important). And, part of the problem is that there’s an enormous mismatch between the difficulty of getting a job in software engineering and the pay – people who are insufficiently competent are regularly employed with starting salaries well above what people with higher competence levels in industries with greater requirements get, leading to incentives to push through into the industry, do the minimum, and then fail to continue to grow.
Getting rid of liability waivers will help, but expecting people to spend eight years in a CS program instead of four to be employable will probably help far more, because software engineering will no longer have the reputation of being a way for somewhat mathematically inclined people to get rich quick.
terrible, terrible idea.
Listen we can make safe software.
It’s not actually hard.
It just takes ten times as long and costs 20 times as much.
I’ve worked in pharmaceuticals.
They accept that software takes 10 times as long and costs 20 times as much.
So they get a lot of safe software.
It’s not actually hard.
It’s just extremely tedious.
Which is why you have to make your programmers work longer and pay them extra for the privilege.
Quinn Norton doesn’t want “bridges that don’t fall down.”
Quinn Norton wants “bridges that don’t fall down while paying the same as he otherwise would.”
But when Quinn Norton is pressed, he prefers “fast and cheap“ over safety.
We can tell because he’s not currently paying me to write safe software for him.
“Then have the government step in with a licensing scheme so we only get safe bridges!”
Please don’t. It’s going to go like every single other government licensing scheme and become subject to regulatory capture in about seven seconds.
we’re already this close to being unable to develop software at all without permission from the US tech giant of your choice, I’d hate to hasten the process
Something I should have added the first time around:
I have hundreds of pieces of software. For example, I have a piece of software that allows me to communicate directly with my office from home.
I have purchased exactly zero bridges, even though it could be super convenient to have a bridge directly from my home to my office.
If you make software like bridges, I will personally come to your house and burn it down so I can have my software back.