Live data from Hacker News

You are never taught how to build quality software

florianbellmann.com

121–130 of 500 posts

Re: You are never taught how to build quality software

#121

> It will be necessary to deliver software without bugs in time. Seems like a pretty bad premise to start an article on quality software. If you believe you can ship bug free code, it's time to switch careers.

Spicy take on engineering. Why do we accept this for software when do not accept the same in other engineering domains?

[dead]

Re: You are never taught how to build quality software

#122
> To be realistic, it's important to not over-engineer QA measures with a big upfront investment. We shouldn't block progress of the project as a whole and neither will we get the necessary buy-in from all stakeholders with this approach.

I suspect that a lot of the bad code that is out there exists because teams are constantly in crunch time where it is important to get certain features out by a deadline.

From that perspective, this statement is kind of a contradiction. If every minute is vital to finishing a feature on time, then the act of writing tests will always block progress of the project

Basically, I just wish it were more innately profitable to write quality software

Re: You are never taught how to build quality software

#123
post #75

Earlier quoted context omitted.

> If a university is not providing both they are failing everyone. Why? > A pure university education without considering is this degree useful in the real world is a disservice to education. I think this line of thinking is a much bigger disservice to higher education. It was very tiresome as an undergraduate to be surrounded by people that thought this way - and detrimental to everyone's education. "I'll never use…

I agree with you in principle, but it's very easy to have this attitude when the education isn't obscenely expensive. Which is why the "I'm never going to use this, what a waste of time" feeling among American undergrad students is so common. If you fix the affordability problem and bring it back to where is was in the mid 70s (inflation adjusted) I think things would be a lot better.

No, I don't think that's it. I think it is simply that you have to put an awful lot of people through the explore part of the learning loop, to get a handful who will reach the exploit part of the loop, for any given subject.

99% of what we all learn in college is a waste of time for us. But we all have a unique 1% that is vital to who we become. Over time I expect that 1% to become 0.1%, then 0.01%, and for that vitality to become ever more concentrated in that sliver.

Re: You are never taught how to build quality software

#124

Earlier quoted context omitted.

What proof is all around us?

The amount of software in everyday objects which runs without exhibiting bugs to such a degree we do not notice most of it even exists.

Yes, but that software is not bug-free. The claim was not "it's impossible to make software that does not exhibit bugs too a casually noticeable degree".

People who know how the sausage is made will always know of a bunch of bugs that haven't been fixed exactly because they aren't impactful enough to be worth the effort required to fix them.

Re: You are never taught how to build quality software

#125

Earlier quoted context omitted.

I'm not sure about that. Which engineering domain do you have in mind? Maybe show-stopping bugs are somewhat unique to software engineering, but all somewhat-complex products are flawed to some extent imho. It might be an unergonomic handle on a frying pan, furniture that visibly warps under the slightest load (looking at ikea shelfing) or the lettering coming off the frequently used buttons on a coffee machine.

But there do exist shelves that don’t warp, when used within some reasonable bounds. I’d also quibble about the buttons on the coffee machine. They might be properly designed, just subject to the normal wear-and-tear that is inevitable in the real world. This is not a defect, physical devices have finite lifespans. As far as computers go… if we got to the point where the main thing that killed our programs was the ha…

Formally verified, bug free software exists. It just costs a LOT to produce, and typically isn't worth it, except for things like cryptographic libraries and life or death systems.

As the discipline has evolved, the high integrity tools are slowly being incorporated into typical languages and IDEs to generally improve quality cheaper. Compare C++ to rust for example, whole classes of bugs are impossible (or much harder to make) in rust.

Re: You are never taught how to build quality software

#126
post #91

Earlier quoted context omitted.

My point is that higher education isn't job training and doesn't pretend to be, and people who think it is or should are the ones that need education the most because they don't seem to get it.

> and doesn't pretend to be I'm not sure about this part... A very common pattern in my conversations with working class friends and family from my parents' generation is: "we were told that if we sent our kids to college, they'd have better lives than we did, but instead we all just ended up with more debt than we could handle". It's tricky! If you tell teenagers and their parents the truth - this purely academic pr…

There is a big difference in value between different degrees in the real world. Yet the costs are similar. What someone studies is very important and universities do not do a good job of telling people that.

There is nothing wrong with art/music/history. If you are interested by all means take a lot of courses in them. You can learn a lot of valuable skills which is why good universities required a diverse background of "generals" that these (and many more) fit into. However they give far more degrees in these things than are needed. (even physics gets more degrees than the world needs - but most getting a physics degree can better pivot to something else well paying).

Re: You are never taught how to build quality software

#127

> It will be necessary to deliver software without bugs in time. Seems like a pretty bad premise to start an article on quality software. If you believe you can ship bug free code, it's time to switch careers.

Spicy take on engineering. Why do we accept this for software when do not accept the same in other engineering domains?

Because other engineering domains are "actual" engineering domains. They didn't just co-opt the word to have fancier sounding job titles.

Re: You are never taught how to build quality software

#128
post #95

Earlier quoted context omitted.

Trust me when I say this: even "other" engineering domains have to do patches. The difference is that software can be used before it is fully ready, and it makes sense to do so. No one can really use a 90% finished power plant, but software at 95% capacity is still usually "good enough"

e.g. product recalls?

I install high voltage switchgear on site. A common problem is all the changes that has been added during the design stage, circuits that have been removed or altered, work that has kind of mostly been done to the schemes by the overworked secondary engineer. Sometimes, the schemes have been changed after all the wiring is completed and shipped to site, making it my pain in the ass when it's time to do the commissioning.

The end result is never 100% perfect, but somewhere in between "not too bad" and "good enough".

Re: You are never taught how to build quality software

#129
I have been, at various points in time, taught how to build quality software. I think the large majority of people I work with have been taught about this as well. So I'm not sure who the "you are never taught ..." is referring to here. Should it perhaps instead be "I was never taught ..."?

Re: You are never taught how to build quality software

#130
post #95

Earlier quoted context omitted.

Trust me when I say this: even "other" engineering domains have to do patches. The difference is that software can be used before it is fully ready, and it makes sense to do so. No one can really use a 90% finished power plant, but software at 95% capacity is still usually "good enough"

I think you're 90% there. There is also the cost to apply a patch. If you want to patch a bridge, it's gonna cost you. Even if you only need to close down a single lane of traffic for a few hours you are looking at massive expenses for traffic control, coordination with transportation agencies, etc. For most software it's pretty inexpensive to ship updates. If you're a SaaS company regular updates are just part of yo…

Indeed. We calculate a $1 dollar fix in the factory costs $100 to fix on site.
Post reply on HN