Live data from Hacker News

You are never taught how to build quality software

florianbellmann.com

311–320 of 500 posts

Re: You are never taught how to build quality software

#311
post #101

Earlier quoted context omitted.

It's perfectly acceptable to let bugs escape into production if those "cost" of fixing that bug higher than the "cost" to the user experience / job to be done. A bug that takes a week to fix that will only be encountered by a small amount of users in a small number of obscure scenarios may not need to be fixed.

I think a common error is taking this view in isolation on each bug. Fact is, if you ship enough 'low probability' bugs in your product, your probabilities still add up to a point where many customers are going to hit several of them. I've used plenty of products that suffer from 'death by a thousands cuts'. Are the bugs I hit "ship blockers"? No. Do I hit enough of them that the product sucks and I don't want to use…

Very much this, and low risk bugs compound at scale.

If you're in a very large FANNG type company, and say you have 1000 components that each ship 1 bug each day that has a 0.1% chance of breaking something critical, that translates to a less than 50% chance you ship a working OS on any given day. And that may mean the entire company's productivity is impacted for the day depending on how broken it is.

Re: You are never taught how to build quality software

#312
post #310

You learn this at quality shops. 10-15 years ago roughly FAANG. Today? TailScale and stuff like that. You can just noT have a bunch of pointless micro services and docker in your runc and layer on layer of json de/re, and unit test to get coverage but ignore quickcheck and hypothesis and fuzzing. You can use stacked diffs and run oncall loops out of the team authoring the code and all of it. You can minimize dynamic…

I think the prevailing problem is that quality software often doesn't outperform shit software in terms of revenue, right?

CloudFlare and TailScale and that crowd don’t seem to be chancing it?

Re: You are never taught how to build quality software

#313
post #301
post #204

Earlier quoted context omitted.

+1 for teamwork... I wished there was an established field of study for teamwork in software. If you are impressed with 10x devs, imagine 10x teams!

I don't believe this personally, but I bet that many people with MBA's would tell you that this was what their MBA was about.

Yeah. A fair bit of this is just “people working in teams” stuff, that people that buy into ‘developer exceptionalism’ will tell you is sacred software developer knowledge. It isn’t.

Software engineering isn’t just about teamwork, and not all software development-related teamwork skill is generalisable to other industries, but it’s far from uncommon for there to be some trendy blog post laying out the sorts of things that, yes, an MBA program will teach someone. Which is fine, if not for the fact that these same people will scoff at “clueless MBAs”.

Re: You are never taught how to build quality software

#314

Author needs to change shop Where I work is 50% qa effort at least, 50% by budgets, and devs do much >50% automated testing as part of what we call development. Anything less and projects take longer, because bugs found later cost so much more to fix.

[dead]

Re: You are never taught how to build quality software

#315
post #117

We do teach these things, they are just not core CS topics, but rather in other areas, relegated to electives like a software engineering course. At CMU we have entire Master's program for software engineering and an entire PhD program (in my department). We teach exactly the kinds of things the blog post is about, and more. Software Engineering is a whole field, a whole discipline. I get that this is a blog post and…

I chose software engineering. 3 years into the program the head of the department made a speech at an event to the effect of "Software hasn't changed in the last 10 years". It instantly devalued the entire program for me.

Hah. This is classic knowitall CS/SE student hubris. They were almost certainly right.

Re: You are never taught how to build quality software

#316

You learn this at quality shops. 10-15 years ago roughly FAANG. Today? TailScale and stuff like that. You can just noT have a bunch of pointless micro services and docker in your runc and layer on layer of json de/re, and unit test to get coverage but ignore quickcheck and hypothesis and fuzzing. You can use stacked diffs and run oncall loops out of the team authoring the code and all of it. You can minimize dynamic…

roughly FAANG

What does roughly FAANG mean?

Today? TailScale and stuff like that.

The VPN?

You might have some ideas about quality software, but this comment is incomprehensible.

Re: You are never taught how to build quality software

#317

Earlier quoted context omitted.

I worked with programmers around my junior year and some of them were in classes I was in. I thought they were all playing one-upsmanship when I heard how little time they were spending on homework. 90 minutes, sometimes an hour. I was a lot faster than my roommate, and after I turned in my homework I’d help him debug (not solve) his. Then I was helping other people. They really did not get debugging. Definitely felt…

This is why internships and real world experience is so important. A course is 3 in class hours a week over 12-14 weeks typically. After homework and assignments it is ultimately maybe 40-80 hours of content. Which means you learn more in one month of being on a normal, 40 hour workweek job than you have in an entire semester of one course.

Not all hours are created equal. This is on the verge of saying “I took 1,000 breaths on my run, so if I do that again, it’s like going for a run.” Just because you’re measuring something, it doesn’t mean that you’re measuring the right thing. You’re just cargo-culting the “formal education is useless” meme.

Re: You are never taught how to build quality software

#318
post #267

Earlier quoted context omitted.

That was a dedicated software engineering course I took at university. Teams of 5. Had to put the soft eng theory into practice. And if’s not CMU.

Do they funnel soon to be grads into stressful zoom calls where product managers handwave an entire legacy stack still somehow running on coldfusion and want a rebrand with 'AI' starting Jan 1??

No, but our professor assigned teams at random, gave us a buggy spec, and then changed the spec with one week to go during finals week. (This last part appears to have planned; they did it every year.)

This was a surprisingly effective course, if sadistic.

Re: You are never taught how to build quality software

#319
post #276

Earlier quoted context omitted.

There's a massive gap between taught at CMU and taught at most universities. And even if it is taught, it's usually outdated or focused on very literal stuff like how to write web applications. I'd have killed for a class that actually focuses on implementation, on teamwork, on building complicated systems.

I've wished that students would be required to hand their semester long project to the person next to them each week.

that would be a cool semester long project assignment: everybody has to plan/architect their own software project, and then work on implementing them, but you don't work on your own project, that you just manage.

Re: You are never taught how to build quality software

#320

You learn this at quality shops. 10-15 years ago roughly FAANG. Today? TailScale and stuff like that. You can just noT have a bunch of pointless micro services and docker in your runc and layer on layer of json de/re, and unit test to get coverage but ignore quickcheck and hypothesis and fuzzing. You can use stacked diffs and run oncall loops out of the team authoring the code and all of it. You can minimize dynamic…

Any advice on how to find these quality shops and this quality knowledge? Any particular things to look for, or particular books/courses you recommend?
Post reply on HN