Live data from Hacker News

Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

ieeecs-media.computer.org

161–170 of 170 posts

Re: Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

#161

Earlier quoted context omitted.

They took 10 years since v3 (over 20 if we count from the start) to include security in their discussions. This is my primary issue with the text: It should be a living document. Choosing a dead document or "mostly dead" if we're generous (with a new version every decade) for a body of knowledge that is constantly growing and developing makes no sense. If you want to publish it as a PDF that's ok, but it needs contin…

> Choosing a dead document or "mostly dead" if we're generous for a body of knowledge that is constantly growing and developing makes no sense. As the document says, it is _not_ the body of knowledge. It is a guide to the body of knowledge. The body of knowledge exists elsewhere, in the published literature.

That's not actually any better, it's worse. A guide that's not updated for 5-10 years means that it's missing 5-10 years of material and newer references. Plus, as a guide it still fails, numerous sections are missing any references to follow, that is: It is a guide that often points you nowhere.

As I pointed out before: It took over 20 years for them to add a section on security. That was a critical issue when it first came out, an even bigger issue in the 2010s when v3 came out, and they only now got around to it. And that chapter lacks references for an entire section. That is not a good guide.

Make it a living document and keep it continuously updated with either expanded or deepened coverage, kept up to date with what's been learned in the industry. Then it will be useful. Otherwise, just go to Wikipedia and you'll get a better resource.

Re: Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

#162
post #23

SWEBOK 4 adds a dedicated section for security, but it's painfully 2012 (testing, for instance, centers on the old industry-driven "SAST" vs. "DAST" distinction). It also promotes stuff like Common Criteria and CVSS. The "domain-specific" security section could have been pulled out of the OWASP wiki from 2012 as well: "cloud", "IOT", "machine learning".

Apparently I am also stuck in 2012 - are we not doing cloud and machine learning anymore?

Re: Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

#163
post #150

Earlier quoted context omitted.

Well, you asked what was wrong with it, and I answered. If you don't bother to read the answer to the question you asked, that's on you. I do agree that a division-by-zero exception is a good example of a runtime error, and—as I said in the comment you are purportedly responding to!—that the examples are intended to refer to common errors. (However, most of them fail to do so, evidently due to the ignorance of the au…

I didn't miss anything you said. I did read your comments and frankly I don't have the time to address the level of banality therein. My position is that you are erecting and burning an elaborate straw man based on the least reasonable reading of a general statement, and you don't understand who the audience is. If someone has to be told what a runtime error is, that means they don't necessarily know it. That definit…

It sounds like you aren't very clear on what a "runtime error" is yourself, or what role they play in software development, which I guess is why you didn't see anything wrong with the ostensible definition in the SWEBOK. You could probably learn a lot from reading my longer comment carefully enough to understand it.

The audience of the SWEBOK is not only, or even primarily, learners. This is explained in the preface.

Thinking my comments are pompous—because they're written in a more formal register than you're accustomed to reading, I suppose—is no excuse for your invective.

I didn't read the whole document, but, as you can see from https://news.ycombinator.com/item?id=41916612, I did generate a fair random sample of 10 half-pages of it and read and summarize them. All of them were similarly incoherent and full of serious errors of fact that can only be attributed to profound incompetence. That's an adequate basis on which to conclude that the whole thing is bad. Moreover, everyone else in this thread commenting on specific parts of the document that they've read has similarly damning comments. (Except you, but at this point I have, I think, ample reason to discount your opinion.)

Re: Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

#164
post #125

Earlier quoted context omitted.

A lot of things are wrong with it. > Runtime errors surface when a program runs into an unexpected condition or situation such as dividing by zero, This implicitly asserts that dividing by zero is always unexpected, that all runtime errors are unexpected, and that dividing by zero always causes a runtime error. None of these are true. Dividing by zero is very frequently not unexpected (it's utterly commonplace in 3-D…

Crikey. Nitpicking a single sentence (in a document of hundreds of pages) to the degree you just did is not nearly useful as you seem to think. Sometimes a sentence is a little too general, or too specific. It happens often and we all know that. Indeed, in this short post I've probably already committed that sin. 100% guaranteed you made several errors (especially of degree) in the post above.

In https://news.ycombinator.com/item?id=41918401 you admit that you only skimmed my comment; that's why you mistook it for nitpicking. Consequently, your response is wholly incorrect.

Re: Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

#165
post #123

Earlier quoted context omitted.

> It leads to buildings falling down or burning up [with people in them]. This was a common occurrence 100+ years ago. You know what made it less common? Standardization. Building codes. Minimum standards for engineers and the trades. To me, this is a more interesting comparison. Is it PE certification and contractor licenses that led to this or is it building codes, construction inspectors, occupancy permits? I will…

You really need both. Mandatory education, degrees, apprenticeships, licenses, etc is how you make sure they know how to do the thing. And then the building codes and inspections is how you check that they did the thing. If you ask someone to build a home "to code" but you never teach them how, they will spend years trying to figure it out, inconsistently. Send them to school, have them apprentice, and afterward they…

I agree that the US defense sector is an excellent example of the kind of credentialism in software that you, and the IEEE, are advocating! And the results are dismaying. As Anduril says in https://www.rebootingthearsenal.com/:

> Despite spending more money than ever on defense, our military technology stays the same. There is more AI in a Tesla than in any U.S. military vehicle; better computer vision in your Snapchat app than in any system the Department of Defense owns; and, until 2019, the United States' nuclear arsenal operated off floppy disks. (...) today, in almost every wargame the United States Department of Defense models against China, China wins.

Of course the DoD's problems go much deeper than just credentialism, but credentialism is definitely one of the causes of the disease, not a palliative measure.

Re: Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

#166
post #87
post #78

Earlier quoted context omitted.

I'm more than happy to sign onto a reasonable certification. Many good reasons for it. I am, personally, fond of the idea that an ABET certified BSCS should be ground floor level. Other ideas have been floated... But this particular work is really, really, really awful. For reasons that are well documented. In the most fundamental sense, the IEEE doesn't understand what professional SWEs need, in appropriate portions…

What exactly about the SWEBOK is awful? Could you give us a link to the documentation of reasons? Which sections of the SWEBOK cover topics that professional SWEs don't need to understand, and which major topics are missing? It isn't possible to be a competent engineer, beyond the most junior levels, without having a pretty solid grasp of project management. You might not need to be a good project manager but in orde…

A comprehensive list of the SWEBOK's problems would run to tens of thousands of pages, so it will surely never be written. But here's a summary of my own comments in this thread on the topic. I think they cover most of the important aspects.

As its Introduction clearly explains, the SWEBOK is primarily a work of political advocacy. One of its political goals is a particular division of labor in software that has been tried, has failed, and has largely been abandoned, as I explained in https://news.ycombinator.com/item?id=41918800. It also advocates basing that division of labor on a form of credentialism which has also been tried in software and continues to fail, as I explained in https://news.ycombinator.com/item?id=41931336.

As explained in https://news.ycombinator.com/item?id=41907822, the ACM canceled their involvement in the SWEBOK effort in part because they are opposed to this political program, leaving it entirely in the hands of the IEEE. Unfortunately, today's IEEE seemingly lacks the technical competence at an organizational level to avoid publishing utter nonsense through many channels. (Many IEEE members are of course highly knowledgeable, but evidently they aren't the ones in charge.)

As a result, the substantive content of the SWEBOK is also riddled with astoundingly incompetent errors; I dissected a representative paragraph in https://news.ycombinator.com/item?id=41915939, finding 12 serious factual errors in 86 words. As is commonly the case with text written with no concern for veracity, it takes roughly 20 times as much text to correct the errors as it did to make them.

The content of the SWEBOK that actually concerns the engineering of software is not just as error-riddled as the rest of it, but also very limited†, displaced by project-management information, as I showed with a random sampling in https://news.ycombinator.com/item?id=41916612. This focus would represent a major departure from accredited curricula in real engineering‡ fields such as mechanical engineering, chemical engineering, and electrical engineering, as I showed by surveying top university curricula in those fields in https://news.ycombinator.com/item?id=41918011. The SWEBOK represents an attempt to substitute management process for technical knowledge, an approach which is well known not to work. This is what Dijkstra was criticizing about the so-called "software engineering" field 35 years ago in EWD1036, which I linked from the third comment of mine linked above.

(Unlike Dijkstra, I do not think that it is futile to apply an engineering approach to software, but that is not what studying project management is.)

Even within the scope of project management knowledge, the SWEBOK primarily advocates the kinds of management approaches that work well in industries such as mining and civil engineering. However, as I explained in https://news.ycombinator.com/item?id=41914610, fundamental differences between those fields and the engineering of software make those management approaches a recipe for failure in software, even with ample engineering competence.

Engineering is a craft based on science, using formalized theory to navigate tradeoffs to solve problems despite great intellectual difficulty. But, as I explained in https://news.ycombinator.com/item?id=41914332, our current formal theory of software is not strong enough to provide much help with that task. That does not mean that teaching people how to engineer software is hopeless; in that comment I outlined a general approach, and in https://news.ycombinator.com/item?id=41918787 I give more details about the specific things people engineering software need to know, which has relatively little overlap with the SWEBOK. This current state of theoretical knowledge means that you cannot meaningfully assess software engineers' competence by testing their mastery of formal theory, because the formal theory we have is only somewhat relevant to actually engineering software. Instead, you must observe them attempting to engineer some software. That is why credentialism is so especially counterproductive in this field. That would still be a fatal flaw in the SWEBOK even if its content were primarily focused on the actual engineering of software rather than project management.

As I said in https://news.ycombinator.com/item?id=41914444, the health-care equivalent of the approach advocated by the SWEBOK is faith healing; the agricultural equivalent of the approach advocated by the SWEBOK was the Great Leap Forward; and the petroleum-exploration equivalent of the approach advocated by the SWEBOK is dowsing.

______

† "The food here is terrible! And such small portions!"

‡ The engineering of software is real engineering, as Hillel Wayne convincingly demonstrated in https://www.hillelwayne.com/talks/crossover-project/, but this is still a controversial point. So I picked three fields which I hope everyone can agree are real engineering. The "software engineering" that the SWEBOK is about, and that Dijkstra was criticizing, is not the engineering of software and is not in fact engineering at all.

Re: Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

#167
post #24

Earlier quoted context omitted.

Even he admits, he had to start somewhere.

The Master might say something like this, if translated crudely - Software engineering is programming professionally, with a dialogue on quality. Everything else is details. The IEEE has been riding this horse for a very long time, in the face of very serious criticism (see the ACMs comments from a quarter century ago). The presentation of it is _not even wrong_. It reads like a mid level manager at a very old enterp…

I'm interested to hear what you think of my take on the problems with the SWEBOK and the academic "software engineering" field in https://news.ycombinator.com/item?id=41931491.

Re: Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

#168
post #94

Earlier quoted context omitted.

As much as I like Dijkstra and this particular article of his (it is an assigned reading in my "Software Engineering" class), developing any large scale software that we have today starting from formal methods is just a fantasy. I understand the importance of learning formal methods (discrete math, logic, algorithms, etc.), but they are not nearly enough to help someone get started with a software project and succeed…

Formal methods have advanced enough now that any competent software engineer should know that it is at least an option . It's obviously not practical or necessary to apply everywhere but in any sufficiently large piece of software there are likely a few modules where applying formal methods would allow for faster, higher quality delivery at lower cost. Making those trade-offs and selecting appropriate approaches is t…

I mostly agree, although I differ on your last point.

Re: Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

#169
post #163

Earlier quoted context omitted.

I didn't miss anything you said. I did read your comments and frankly I don't have the time to address the level of banality therein. My position is that you are erecting and burning an elaborate straw man based on the least reasonable reading of a general statement, and you don't understand who the audience is. If someone has to be told what a runtime error is, that means they don't necessarily know it. That definit…

It sounds like you aren't very clear on what a "runtime error" is yourself, or what role they play in software development, which I guess is why you didn't see anything wrong with the ostensible definition in the SWEBOK. You could probably learn a lot from reading my longer comment carefully enough to understand it. The audience of the SWEBOK is not only, or even primarily, learners. This is explained in the preface.…

>It sounds like you aren't very clear on what a "runtime error" is yourself, or what role they play in software development, which I guess is why you didn't see anything wrong with the ostensible definition in the SWEBOK.

Of course I know exactly what a runtime error is. The definition we're talking about is fit for purpose.

>The audience of the SWEBOK is not only, or even primarily, learners. This is explained in the preface.

OK fine. But you do in fact have to learn it for the purpose of getting an engineering license. It would be inappropriate to load the document with details that are not relevant to nearly all programmers, or details that are couched in such formal language that they would be inaccessible to average engineers with 4 year degrees. Nothing in your comment is that advanced but certainly a PhD-level lawyer take on what constitutes a runtime error is beyond the scope of what the document is for, despite the ambitious name.

>Thinking my comments are pompous—because they're written in a more formal register than you're accustomed to reading, I suppose—is no excuse for your invective.

The issue is not that your comments are formal, but that you think nobody but you knows what a runtime error is. When people tell you that they do in fact know what it is and that the definition offered is adequate, you insist on practically writing a stuffy paper about why you think it doesn't cover this or that.

>All of them were similarly incoherent and full of serious errors of fact that can only be attributed to profound incompetence.

This is pompous. I don't care to read more of your nonsense. Frankly, the notion that someone would get to be the guy (or committee) who would write a textbook like this for a licensing body without having ample competence in the field (as opposed to "profound incompetence") is so outlandish that I cannot take it seriously. That applies doubly to your opinion, which has been pathologically pedantic.

>Moreover, everyone else in this thread commenting on specific parts of the document that they've read has similarly damning comments.

I'm not talking about the rest of the document. Most of the comments I read on here are pure garbage so appealing to plurality is not getting you anywhere.

>Except you, but at this point I have, I think, ample reason to discount your opinion.

Be honest, you never took my opinion seriously. After your first comment I had ample reason to discount your opinion too. My instinctive reaction is to assume you have some kind of mental disorder that makes you overanalyze things. But maybe you are just a snob. It's hard to diagnose this over the Internet, and I don't really care.

Re: Software Engineering Body of Knowledge (SWEBOK) v4.0 is out [pdf]

#170
post #163

Earlier quoted context omitted.

It sounds like you aren't very clear on what a "runtime error" is yourself, or what role they play in software development, which I guess is why you didn't see anything wrong with the ostensible definition in the SWEBOK. You could probably learn a lot from reading my longer comment carefully enough to understand it. The audience of the SWEBOK is not only, or even primarily, learners. This is explained in the preface.…

>It sounds like you aren't very clear on what a "runtime error" is yourself, or what role they play in software development, which I guess is why you didn't see anything wrong with the ostensible definition in the SWEBOK. Of course I know exactly what a runtime error is. The definition we're talking about is fit for purpose. >The audience of the SWEBOK is not only, or even primarily, learners. This is explained in th…

Whatever.
Post reply on HN