5 ms·
I'm chronically ashamed by the degree of tolerance to shoddy work in our field. If software engineers were held to the same standard as civil engineers, people
by rkagerer 8y ago
I'm chronically ashamed by the degree of tolerance to shoddy work in our field.
If software engineers were held to the same standard as civil engineers, people would go to jail. I empathize humans make mistakes, but I've also known programmers who just don't care about striving toward perfect, bug-free code. In some cases it's just a job not a passion, in others they're overworked and learned it doesn't pay to go slowly and correctly.
Kudos to all of you true craftsmen out there who do take care and pride in the quality of your work.
- dgzl 8y ago> Held to the same standard as civil engineers Impractical comparison. Software engineers rarely create works where loss of life, or even physical harm, is a side effect of poor workmanship.
- rectang 8y agoIs losing your home insignificant? I would be shocked if out of hundreds of foreclosures, there were no suicides.
- dgzl 8y agoIn this case, you could loosely say that foreclosure was a direct result of the software bug. Suicide would be an indirect result. Where if a bridge were to collapse, then death would be a direct result.
- geggam 8y agoReally ? Everything I use today seems to have some micro processor thing in it. Cars can run into things and typically this causes damage and can cause loss of life, as an example where bugs can kill folks.
- dgzl 8y agoYour example with cars would only make sense if a software bug put a driver in direct danger without giving them time to be responsible and mitigate the danger. In almost all situations, even with modern technology in cars, it's the driver's responsibility to drive/steer/brake to mitigate the danger. How many pieces of software exist in this world where there is zero chance of even a catastrophic bug causing harm to humans? I would bet most of the existing pieces fit this description. Now apply that question to works of civil engineering, and you have a different picture.
- closeparen 8y agoDumping risk into individuals isn’t something to celebrate. If companies face the consequences of bad software, they’ll have to implement processes that actually promote software quality, not find random ICs to crucify.
- dunpeal 8y agoGP is essentially proposing that us programmers should become the low-level fall guys. Moreover, the tone of the comment is incredibly condescending. It's all well and good to promote criminal accountability because I'm such an excellent "craftsman"... Until I go to prison because I couldn't foresee that there's a race condition on line 56,394 when the internal clock is off by a nanosecond.
- eslaught 8y agoThere can also be a large discrepancy between how easy a bug is to spot in advance, and how stupid it makes you look after the fact. Plenty of people on HN were bashing "stupid" mistakes leading to security vulnerabilities in recent months and years, even though those bugs we missed by many smart people. Really the only way to deal with this is to try to use tools that make it impossible to make certain classes of bugs. But that's really not an individual choice but an institutional one.
- dunpeal 8y ago> Plenty of people on HN were bashing "stupid" mistakes leading to security vulnerabilities in recent months and years, even though those bugs we missed by many smart people. There are examples of subtle yet fundamental bugs that escaped notice for decades, often under the watchful eyes of some of the smartest, most experienced engineers in the industry: https://ai.googleblog.com/2006/06/extra-extra-read-all-about-it-nearly.html https://ai.googleblog.com/2006/06/extra-extra-read-all-about... Another thing people are missing in the misguided comparison to "civil engineering" is that programming is several orders of magnitudes more complex than building bridges. It's much harder to design fault-tolerance, and your routine can completely blow up due to subtle bugs like the above.
- ashleyn 8y agoVery often, programmers aren't given the time to do something properly. Management makes the decision to ship with critical bugs.
- dunpeal 8y agoWells Fargo has a very long and well-established history of making "mistakes" in their own favor that harm their customers and/or break laws. These "mistakes" are typically non-technical in nature, have nothing to do with engineering standards, and in several cases appear to be a matter of deliberate bank policy: > On February 2, 2018, the U.S. Federal Reserve Bank barred Wells Fargo from growing its asset base any further, based upon years of misconduct, until Wells Fargo fixes its internal problems to the satisfaction of the Federal Reserve. In April 2018, The Wall Street Journal reported that the United States Department of Labor had launched a probe into whether Wells Fargo was pushing its customers into more expensive retirement plans as well as into retirement funds managed by Wells Fargo itself. Subsequently in May 2018, The Wall Street Journal reported that Wells Fargo's business banking group had improperly altered documents about business clients in 2017 and early 2018. https://en.wikipedia.org/wiki/Wells_Fargo https://en.wikipedia.org/wiki/Wells_Fargo These are just from the past couple of years. Check out their Wikipedia page for many, many more. This isn't even the first time they made serious "mistakes" with mortgages specifically: check out their 2012 settlement. Here's the judgement in just one case: > On April 5, 2012, a federal judge ordered Wells Fargo to pay $3.1 million in punitive damages over a single loan, one of the largest fines for a bank ever for mortgaging service misconduct. Elizabeth Magner, a federal bankruptcy judge in the Eastern District of Louisiana, cited the bank's behavior as "highly reprehensible", stating that Wells Fargo has taken advantage of borrowers who rely on the bank's accurate calculations. She went on to add, "perhaps more disturbing is Wells Fargo's refusal to voluntarily correct its errors. It prefers to rely on the ignorance of borrowers or their inability to fund a challenge to its demands, rather than voluntarily relinquish gains obtained through improper accounting methods." Blaming the programmers for these "mistakes" is like blaming bank tellers for the reckless banking policies that caused the 2008 meltdown. This has nothing to do with "engineering standards". Notice that all these "mistakes" benefit Wells Fargo at the expense of its customers and/or the law. If it was just "shoddy standards", you'd expect a few mistakes to be in favor of the customers... These "mistakes" proliferate because they make the bank money, and only cost them a slap on the wrist and some small fines. This is Too Big to Fail in action.
- njarboe 8y agoEdit: This comment should have been attached to the parent comment. Sorry about that. I don't expect any internal changes at Wells Fargo, just commenting they are concerned about their image on this issue. Wells Fargo is certainly worried about how the revelation of all of these anti-customer actions might hurt their bottom line. Thus its "Re-Established" brand campaign[1]. Most companies just change their name when they want to "Re-Establish". I'm not sure it is such a good idea to spend a lot of money telling people that you were a bad actor and now, trust us, things are different. [1]https://www.businesswire.com/news/home/20180507005415/en/Wells-Fargo-Launches-%E2%80%98Re-Established%E2%80%99-New-Brand-Campaign https://www.businesswire.com/news/home/20180507005415/en/Wel...
- njarboe 8y agoOn the flip side, the software tradition of As-Is licensing with no liability for anything going wrong is probably a major factor in the high dynamics and growth in the field of computers. I would agree with those that think technology improvements outside of computers has basically stalled and believe the lack of a safety-first philosophy in the computer field is largely the reason it has and continues to advance at a rapid rate.
- alxlaz 8y ago> Kudos to all of you true craftsmen out there who do take care and pride in the quality of your work. This is a very fair point and certainly not all programmers strive for this. At the same time, in companies where this type of software gets written, the responsibility for delivering a safe product does not rest on the shoulders of programmers alone. "Move fast and break things" is ridiculed by responsible programmers, but outright shunned by responsible team leaders, product managers and CTOs. No matter how much you care about "craftsmanship", you'll never come up with a well-written program if it's part of an irresponsibly-ran program. So yes, if software engineers were held to the same standard as civil engineers, people would go to jail. At the same time, it's worth remembering all the other standards of conduct that apply in heavily-regulated fields: companies can be barred from selling a certain product (or type of product) or forced to withdraw them from the market, licensed practitioners may have their licenses withdrawn and so on.
- paulcole 8y ago> I'm chronically ashamed by the degree of tolerance to shoddy work in our field. The vast majority of people in every field are producing average or shoddy work. Just the way it goes. Most people (myself included) have other things to focus on– family, health, finances, hobbies. I’d much rather screw something up at work than something that really matters to me.
- eclectic 8y agoI am glad you are not a surgeon.
- gaius 8y agoI’d much rather screw something up at work than something that really matters to me. That's OK right up until the point screw-ups materially impact other people's lives. I mean noone cares about some cheesy website sure, but these are people's homes.
- jsoc815 8y agoWhile I don't quite appreciate your sentiment, I do appreciate your honesty. What you say is quite true, and most people are unwilling to admit that in public. However, if most people internalized the fact that your POV is pretty much the norm I think many folks would be much better off. So again, thanks.
- deleted 8y ago[deleted]
- tekromancr 8y agoHere's the thing, though. If it weren't for government regulations holding civil engineers to a higher standard, they simply wouldn't produce the same quality. Unless there are strong business requirements demanding high quality code, no business is going to pay the costs of it. No business will ever willingly do the right thing unless someone is holding a gun to it demanding they do so. They simply won't be able to compete against businesses that aren't. The true craftsmen out there will consistently see themselves passed on for promotions, and receive negative performance evaluations in environments where features introduced to a codebase are treated as far more important than bugs introduced into a codebase. The folks who treat it as a job will quickly find their salaries increase as they migrate into management positions.
- theonemind 8y agoThis sounds to me like placing too much of a burden on individuals. In general, when dealing with people of at least average competence, when things go wrong, I blame process, not people. Software engineering will probably mostly provide what the market requires and rewards, and for most things where you don't have lives at stake, it takes a lot of cash and process to drive your defect rate toward zero. Viewed through an economic lens, an economist would say that we have an optimum level of environmental pollution, where the marginal benefit of cleaning it up or preventing it doesn't surpass the marginal cost of tolerating it. So, I disagree. Work will get done to the necessary standard, and our industry already fetishizes overwork and heroes. I don't think anyone should bothering driving themselves crazy with extreme personal perfectionism when the market doesn't demand or reward it, and the software engineering field doesn't gear itself toward producing those results via process.
- FLUX-YOU 8y ago>but I've also known programmers who just don't care about striving toward perfect, bug-free code This target moves too much in business to be able to efficiently target it. I surely wouldn't take the time to make something perfect if I knew the business was going to turn around and add another feature that forces me to re-evaluate the thing entirely. While 400 homes lost is certainly significant, don't forget the millions of homes it accurately kept track of. Imagine the amount of work and resources that would have had to be used to keep track manually and by paper. Please don't worry about 2 steps back after you've taken several billion steps forward.