4 ms·
My theory is that everything is a mess, once you get close enough to notice. Every profession that appears as if its practitioners know what they're doing reall
by troels 10y ago
My theory is that everything is a mess, once you get close enough to notice. Every profession that appears as if its practitioners know what they're doing really is a shocking hodge-podge of temporary solutions, strung together by proverbial duct tape. From doctors to flight engineers to anything else that you thought was running like a smooth machine. Programming is no different.
- emodendroket 10y agoYeah, inferior standards that are ineradicable due to early adoption are hardly unique to the Web or even computers.
- eqmvii 10y agoThis was my experience in corporate law. Long (and critically important) documents were cobbled together by small teams of brutally sleep deprived kids. The end result was a tangled webs of documents, defined terms, and clauses that all theoretically referenced one another properly without violating any laws or producing unintended results. It was like trying to write code without being able to compile or run it. The only way it "worked" was a massive framework of tricks and hacks and legal duct tape, and even then errors were common.
- thwllms 10y agoAgreed. I was a civil engineer (specializing in water resources) before I became a full-time software developer. The science of hydrology/hydraulics is largely a messy pile of educated guesses, statistical relationships based on embarrassingly small datasets, and highly generalized models.
- Kalium 10y agoThe more of engineering I see in general, the more surprised and impressed I am that anything works at all.
- cbHXBY1D 10y agoOne of my friends, who is a new developer, and I took out a new Tesla for a spin and the whole time he was saying his time as a programmer makes him trust Tesla's self-driving software. My reaction was closer to "I've worked for some of the Big 4 software companies and my time there makes me not trust any software."
- sk8ingdom 10y agoAs an aeronautical engineer (structural dynamics, aeroelasticity, stress analysis, etc.), I can definitely validate this claim--at least partially. At the lowest level, things are definitely a horrific mosaic of "temporary solutions, strung together by proverbial duct tape". The good news is that there's a good bit of oversight. Even if my analysis on a flight-critical component is a complete and total abuse of physics (either due to my own incompetence, rushed schedule, or limited budget), it still has to go through my manager, an internal review (with many other experience engineers), validation testing (limit load testing, vibration characterization, etc.), and a third party review by a regulatory agency ALL before first flight. Does it take a while? Absolutely, because the consequences of an incorrect air-frame structural analysis can be dire. Is it perfect? Not even close, but it's pretty good. When field issues DO arise, we have a failure investigation team that works around the clock to address the issue. And this is for unmanned aircraft--in commercial it's even more rigorous. Spacecraft? An even higher level or rigor. When aeronautical / aerospace engineers DO screw up, you definitely hear about it--usually because lives are lost. A single failure can lead to a company going under and being purchased by a competitor as seen in the consolidation of aerospace companies[0]. In most web programming applications, mistakes are much more forgiving. At worst, a bad commit makes it to production code which usually only manifests as lost revenue (either through security breach, downtime, loss of consumer confidence, etc.). I have to imagine that production code on a medical device (say a pacemaker) is more heavily scrutinized than JavaScript includes in a header file, but I could be wrong. Web is a VERY fast industry because it can afford to be--the reward for using new, bleeding edge technology, is often worth the risk because at the end of the day it's all financial. I do think "everything is [sort of] a mess, once you get close enough to notice". Some other articles on the phenomenon: 1. Everything is Broken [1]: Since programming technology moves so fast, everything is literally strung together because "if it works, it's good enough". 2. Programming Sucks [2]: Everyone has an opinion and since programming is literally working with pure thought, it's objectively difficult to get people to agree. 3. The Expert [3]: Communication between managers and engineers is (and always has been) terrible--having people who can bridge this gap can really make or break an organization. 4. Apathy [4]: At the end of the day, most people are just collecting their pay check and don't care that much. 5. Bullshit Jobs [5]: Most jobs are not really mission critical. [0] https://theblogbyjavier.files.wordpress.com/2012/09/3874434.png https://theblogbyjavier.files.wordpress.com/2012/09/3874434.... [1] https://medium.com/message/everything-is-broken-81e5f33a24e1#.3pmx13kql https://medium.com/message/everything-is-broken-81e5f33a24e1... [2] https://www.stilldrinking.org/programming-sucks https://www.stilldrinking.org/programming-sucks [3] https://www.youtube.com/watch?v=BKorP55Aqvg https://www.youtube.com/watch?v=BKorP55Aqvg [4] http://www.hanselman.com/blog/EverythingsBrokenAndNobodysUpset.aspx http://www.hanselman.com/blog/EverythingsBrokenAndNobodysUps... [5] http://strikemag.org/bullshit-jobs/ http://strikemag.org/bullshit-jobs/