17 ms·
That's quite a tale, a parable almost about how software engineering differs from other jobs (I want to say 'real' jobs but tongue in cheek). I like this one t
by feintruled 3y ago
That's quite a tale, a parable almost about how software engineering differs from other jobs (I want to say 'real' jobs but tongue in cheek). I like this one too, it's even snappier.
A software engineer, a hardware engineer and a department manager were on their way to a meeting in Switzerland. They were driving down a steep mountain road when suddenly the brakes on their car failed. The car careened almost out of control down the road, bouncing off the crash barriers, until it miraculously ground to a halt scraping along the mountainside.
The car's occupants, shaken but unhurt, now had a problem: they were stuck halfway down a mountain in a car with no brakes. What were they to do?
"I know," said the department manager, "Let's have a meeting, propose a Vision, formulate a Mission Statement, define some Goals and by a process of Continuous Improvement find a solution to the Critical Problems, and we can be on our way."
"No, no," said the hardware engineer, "That will take far too long, and besides, that method has never worked before. I've got my Swiss Army knife with me, and in no time at all I can strip down the car's braking system, isolate the fault, fix it and we can be on our way."
"Well," said the software engineer, "Before we do anything, I think we should push the car back up the road and see if it happens again."
- Elucalidavah 3y ago> and see if it happens again The "re-run to reproduce" isn't even the most peculiar part of software engineering; it's "we don't look at what has been tried before". In the OP story example, there's this part: "One time we added ventilation holes to reduce heat, but they were just big enough for wasps to nest in". In a ideal world, the hardware engineers are supposed to know to not have any holes larger than a few millimeters, and other such things. Whereas the software engineers are (yet) not supposed to know much of anything like that. The most prominent example I can think of is "remember to add an index to the database when adding a new type of query to the app", as load testing that would catch it tends not to be done on each and every release.
- shadowgovt 3y agoThe big advantage to software engineering is we deal in abstractions. I liken it to building castles in the clouds; everything down to the foundation is reshapeable. ... the big disadvantage to software engineering is we deal in abstractions. Everything down to the foundation moves. http://thecodelesscode.com/case/154 http://thecodelesscode.com/case/154
- deleted 3y ago[deleted]
- xkcd-sucks 3y agoAlso, software is right now primarily a means of codifying human thought, which means it embodies the whole spectrum of human sanity and competence
- hathawsh 3y agoThat deep thought seems especially appropriate for XKCD, yet your username curiously suggests you would disagree.
- lostlogin 3y ago> I liken it to building castles in the clouds You’re very positive. When you see a developer dealing with a bug, it seems more like they are dealing with a turd palace floating in a sewer.
- qup 3y agoTurds are shapeable, too. Hard to polish, I've heard. But you control the poopy stack.
- cgriswald 3y ago> [Turds are] hard to polish, I've heard. Mythbusters did it: > Adam and Jamie first visited the zoo to obtain a variety of feces to try to polish. Poop collected, they tried to pick the most polishable candidates, and then baked them to remove the moisture. Adam tried to shine his poop with a buffing wheel, while Jamie's tactic of applying a furniture polish caused a philosophical disagreement between the two. Adam eventually brought in an outside expert to teach them dorodango, a Japanese art form that allows a practitioner to apply a shine to dirt using nothing but water and physical effort. Applying this technique, Adam and Jamie were both able to polish balls of poop without using any foreign materials as judged by a gloss meter, exceeding a standard of 70 gloss units for high gloss.[0] [0] - https://en.wikipedia.org/wiki/MythBusters_(2008_season)#Episode_113_%E2%80%93_%22End_With_a_Bang%22 https://en.wikipedia.org/wiki/MythBusters_(2008_season)#Epis... (Section: You Can't Polish Poop)
- s1artibartfast 3y agoIs the moral of the story that the hardware engineer is simply correct? - a mechanical engineer
- lostlogin 3y agoNo, it was a modern car and an unusual set of circumstances lead to a software bug occurring in the regenerative breaking. It needs further testing on that incline, at that time, in that weather with that weight in the car.
- bozhark 3y agoWas it pulling an F-150?
- smt88 3y agoIt's mostly just a joke about how these roles do their jobs. But I think it's also partly illuminating the fact that hardware engineers are true engineers, while software engineers mostly aren't.
- renewiltord 3y agoTrue. We’re scientists. Replication is important! :)
- fhd2 3y ago"Empirical science" sounds better than "have you tried turning it off and on again?", doesn't it.
- monista 3y agoI read is as a reference to https://xkcd.com/242/ https://xkcd.com/242/
- tmpz22 3y ago> True. We’re scientists. Replication is important! :) Yes replication: Oops we got hacked. I wonder what happens if we write insecure code again. Oops we got hacked. I wonder what happens if we write insecure code again. Oops we missed a deadline. I wonder what happens if we underestimate again. Oops we missed a deadline. I wonder what happens if we underestimate again.
- wizzwizz4 3y agoThis story feels quite different without the context of the story this thread is about.
- frutiger 3y ago> "Well," said the software engineer, "Before we do anything, I think we should push the car back up the road and see if it happens again." Only the brakes don't work - the engine still does. Why would they need to push the car uphill?
- mewpmewp2 3y agoIt's preferable the fuel state stays as it is. How do you know it's not the amount of fuel otherwise?
- cgriswald 3y agoPresumably the engine was only idling during their decent if the only thing that slowed their car was 'miraculously' grinding the car against the mountainside. So, using previous records, they should estimate fuel usage during the decent. Then they should walk to the nearest fuel station, purchase fuel, and walk back. During that time, they can calculate the amount of fuel that will evaporate while they have the gas cap off and the amount of fuel that will stick to the walls of the piping between the gas cap and the fuel tank. This way when they return to the car, they can put in almost exactly the amount of fuel that was consumed during their harrowing stop. This presumes the fuel station has the same mixture as they have in their tank. Otherwise all bets are off and they should simply give up.
- ganzuul 3y agoOBVIOUSLY, you could have solved the problem with motor braking. The driver is not going to accept fault until there is conclusive evidence of the their wrongdoing, but you can't let the team know you are going to repeat the test again but with a different driver because then they will invent objections to pushing the car up the hill.
- kridsdale3 3y agoTurn the car around 180 degrees facing up. Coast down the hill in reverse and control your descent with the throttle.
- kriro 3y agoLet me retell this tale... "I know," said the department manager, "Let's have a meeting, propose a Vision, formulate a Mission Statement, define some Goals and by a process of Continuous Improvement find a solution to the Critical Problems, and we can be on our way." Knowingly the hardware engineer and the software engineer looked at each other. "Actually the car is fine, but let's pick a driver that knows what they are doing this time. You simply don't know how to use the breaks and were randomly steering left and right while thinking you're on track, management guy."
- amelius 3y agoI think it is possible to end this story in three possible ways, where each will be in favor of one of the professions.
- geraldhh 3y agoplease, go ahead
- buttercraft 3y agoI would close all the windows and restart it.
- mock-possum 3y agoIf you could click ‘relaunch’ and the car would miraculously reappear at the top of the hill and repeat the event, allowing you to freeze time at the instant the brakes failed, then pull apart every piece of the car so you could precisely observe the failure in real-time, in slow mo, and in reverse - to pinpoint exactly what the problem was You’re saying the power to do that makes software engineers ridiculous or impractical? Engineering inside a digital space gives the kind of debugging abilities that would be straight up miraculous in a physical disciple. If I have one thing, and I want to make ten more of those to test in ten different ways, it’s literally just CTRL+C, CTRL+V. Let’s see a mechanic do that.
- brandensilva 3y agoRight with software we have abstractions and flexibility. With hardware they are grounded more to the physical capabilities of the hardware. Of course software is also limited by hardware capabilities but we can code whatever we want on that hardware as long as it fits within the provided specs.
- oefnak 3y agoOr they would say: go fast and break things!
- weikju 3y agoMissed chance for a pun: Go fast and brake things!