[HN Gopher] Software Engineering Body of Knowledge
       ___________________________________________________________________
        
       Software Engineering Body of Knowledge
        
       Author : p1necone
       Score  : 217 points
       Date   : 2021-04-22 10:25 UTC (12 hours ago)
        
 (HTM) web link (www.computer.org)
 (TXT) w3m dump (www.computer.org)
        
       | veltas wrote:
       | Not attacking this association, but just wanted to say I really
       | dislike the term "body of knowledge".
       | 
       | Areas of knowledge are certainly some kind of 'body', but the
       | term always sounds to me like something you just keep adding more
       | stuff onto the outside as you go, like a big snowball of ideas.
       | And knowledge can become defunct, irrelevant, or disproven over
       | time.
       | 
       | And there's something about the way it tries to sound almost
       | authoritative, without claiming to be scientific.
        
         | ubermonkey wrote:
         | I suspect the inspiration for the title is the very well
         | regarded "Project Management Body of Knowledge" document
         | maintained/published by the PMI.
         | 
         | People in the industry refer to the PMBOK ("Pimbock") pretty
         | frequently. There are lots of people in big-time project
         | management that disdain aspects of the PMI (including and
         | especially the PMP certification, which is often re-named as
         | "pretty much pointless"), but the PMBOK is a valuable document
         | -- ESPECIALLY for people new to the field.
         | 
         | We could do worse, in software, than to emulate that particular
         | success.
        
           | marcosdumay wrote:
           | The PMBOK is a very good source for your vocabulary searches.
           | But, especially for people new to the field, it's an
           | incredibly harmful document. And the harm is entirely caused
           | by the "it misleadingly looks authoritative while it's not
           | and really shouldn't be" issue the GP stated.
        
             | ubermonkey wrote:
             | I'm going to guess you haven't spent much time in the PM
             | world if you think the PMBOK is harmful to new people
             | instead of educational.
        
               | jtdev wrote:
               | If nothing else, the PMBOK is valuable for PMs purely as
               | a reference to the poisonous bullshit that is contained
               | within it? Somewhat like the value of knowing about flat
               | earth hypotheses and believers.
        
               | marcosdumay wrote:
               | Oh, yes, I've spent enough time in the PM world to get
               | tired of people justifying their procedures by claiming
               | the PMBOK says it's the correct set of them (the PMBOK
               | explicitly says it's not prescriptive, but it misleads
               | people new people into thinking it is).
        
             | r00fus wrote:
             | Got an example where PMBOK led someone astray?
        
           | crispyambulance wrote:
           | > We could do worse, in software, than to emulate that
           | particular success.
           | 
           | Perhaps, but couldn't we could do better instead?
           | 
           | There's already more than enough project management in
           | software teams. Do we also have to emulate the all the turgid
           | rules and mindless checklists that PM's use?
           | 
           | I suspect this is yet another attempt at forcing software
           | engineering workflows into something that's more compatible
           | with PM mentality. Or possibly to commoditize the practice of
           | software engineering. IMHO, it's just a different kind of
           | crack for some management consultants to offer to their
           | c-suite clients.
        
             | ubermonkey wrote:
             | "There's already more than enough project management in
             | software teams. "
             | 
             | Given how poorly most software teams are run, I do not
             | think this is demonstrably true.
             | 
             | "Do we also have to emulate the all the turgid rules and
             | mindless checklists that PM's use?"
             | 
             | Programmers have a terrible reputation for refusing to
             | entertain anything outside the process of programming. This
             | kind of comment is emblematic of that mindset.
        
               | crispyambulance wrote:
               | > Given how poorly most software teams are run, I do not
               | think this is demonstrably true.
               | 
               | OK, but one does not "fix" organizational problems by
               | adding more layers of PM.
        
           | ThrowawayR2 wrote:
           | > " _I suspect the inspiration for the title is the very well
           | regarded "Project Management Body of Knowledge" document
           | maintained/published by the PMI._"
           | 
           | While that's not impossible, it must be noted other STEM
           | organizations that predate the PMI have their own "body of
           | knowledge" definitions, for example:
           | 
           | - https://www.nspe.org/resources/licensure/resources/professi
           | o...
           | 
           | - https://www.asce.org/civil_engineering_body_of_knowledge/
           | 
           | - https://www.iise.org/details.aspx?id=43631
        
         | Cthulhu_ wrote:
         | > knowledge can become defunct, irrelevant, or disproven over
         | time.
         | 
         | True, but at the same time, old software is still around; if
         | you can look up the terms and practices from 'back when' using
         | an overview like this, or at the very least have enough broad
         | knowledge to recognize what it is, you're already ahead.
         | 
         | I've only skimmed it (the PDF is linked elsewhere), but it
         | looks like just the resource for a professor of software
         | engineering and -design to have and become acquainted with -
         | know a little about a lot of things, then go from there.
        
         | benjaminjosephw wrote:
         | This sounds like a fair description of how software engineering
         | and computer science has progressed over the years so maybe
         | it's a fair term ;)
        
           | sas224dbm wrote:
           | Maybe. I've worked in the defense industry in and around
           | software as a developer, designer etc for around 30 years.
           | There's some good detail in there, but i think it's a little
           | dated. Try looking for any material on REST in there. If it
           | got refreshed somewhat i'd have it on my virtual bookshelf
           | for sure.
        
         | kper wrote:
         | I think it comes from the latin word 'corpus', which also means
         | body. This wording came from the romans.
         | 
         | https://en.wikipedia.org/wiki/Corpus_Juris_Civilis
        
           | veltas wrote:
           | That actually makes me feel better, and is quite interesting,
           | thank you.
        
         | TomOwens wrote:
         | I think this is why the PDF is actually the "Guide to the
         | Software Engineering Body of Knowledge". It's not a
         | representation of the complete body of knowledge itself, but
         | extracting key concepts and terms and provides pointers to
         | things that are most relevant. If things are irrelevant or
         | disproven over time, the guide to the body of knowledge would
         | remove those terms, concepts, or references and point to
         | something else.
        
           | Silhouette wrote:
           | Unfortunately, where it does present "key concepts and
           | terms", that presentation is often flawed. I think it would
           | be more useful as a guide to the field of software
           | engineering if that's the only thing it tried to be, setting
           | out a well-considered structure but then referring to other
           | reliable sources for details. It could be a lot shorter and
           | more accessible, and it wouldn't keep saying things that are
           | misleading or incorrect.
        
           | Cullinet wrote:
           | I'm thinking of a distinction between eg body of knowledge to
           | mean the arrangement of muscle, skeleton and organs, versus a
           | corpus of knowledge that you presume to be a representative
           | collection of body parts making up a adequate whole.
        
           | LegitShady wrote:
           | It actually apes the Project Management Institute's
           | terminology exactly. The PMBOK guide and the PMBOK are the
           | same thing (as far as I know). This takes exactly the same
           | approach. The guide is the entire book, it just has a funny
           | name as if there was another larger book that this is a guide
           | to. There isn't.
           | 
           | https://www.pmi.org/pmbok-guide-standards/foundational/pmbok
        
       | NAR8789 wrote:
       | tangential: Has anyone read DMBOK and what's your impression of
       | its usefulness for software engineers?
       | https://www.dama.org/cpages/body-of-knowledge
       | 
       | I ran into DMBOK just a few days ago when trying to figure out
       | how to level up my schema-design skills.
       | 
       | It sounds potentially useful as a map breaking down _which
       | directions to research in_ , but based on my research DMBOK also
       | seems potentially much broader and shallower than what I need if
       | what I'm really interested in is just the data modeling / data
       | implementation slice.
       | 
       | SWEBOK doesn't doesn't appeal as much to me personally right this
       | moment, because my software engineering foundation already feels
       | secure. DMBOK and PMBOK on the other hand feel more potentially
       | interesting because they cover adjacent fields, so they feel like
       | they'd be helpful in giving me hooks to grow towards being a
       | "T-shaped" expert.
       | 
       | DMBOK in particular sounds intriguing because my company and team
       | are running into more and more data scalability and queryability
       | challenges. I'm no stranger to day-to-day data modeling and
       | schema building as it applies to webapps, but data modeling is
       | something I've never had any formal training in, so I suspect my
       | solutions tend to be only naively mature. I'm probably currently
       | sitting in the Dunning-Kruger valley of data modeling.
       | 
       | At the same time, DMBOK is intimidating because it's only
       | available as a giant paper tome. I am a minimalist and am worried
       | about the space on my bookshelf.
       | 
       | I'd appreciate any impressions you can give if you've used it in
       | the past. Curious about the other DAMA publications as well.
        
         | haffi112 wrote:
         | I started reading DMBOK, it's quite detailed as you describe.
         | It's more of a reference in my opinion though.
         | 
         | It can be a nice exercise to read through it with a group at
         | your company. Have people relate to what is stated in the book
         | to create actionable goals.
        
           | NAR8789 wrote:
           | Thanks! To pick your brain... did you approach mostly the
           | data modeling / data security / other slices more closely
           | related to software engineering, or did you also socialize it
           | out and get other people and teams involved in other slices
           | like data governance?
           | 
           | Can you speak to your specific situation at the time and any
           | specific takeaways?
           | 
           | More nitty-gritty... any suggestions for how to read through
           | as a group in remote work? Feels like the only way might be
           | to get each person a copy...
        
       | rwoerz wrote:
       | Somewhat related (but with focus on architecture):
       | https://itabok.iasaglobal.org/
        
         | manishsharan wrote:
         | For architechture, would you not prefer the TOGAF documentation
         | ? you will get a useful certification out of it once you pass
         | those tests.
        
           | rwoerz wrote:
           | AFAIR TOGAF is closed source and focuses more on (enterprise)
           | architecture lifecycle management. ISABOK claims to be
           | compatible with TOGAF [0] whatever that means for mere prose.
           | 
           | [0] https://itabok.iasaglobal.org/itabok3_0/engagement-model-
           | ove...
        
       | stakkur wrote:
       | I'm not even sure there's a widely accepted definition of what
       | 'software engineering' is, or what constitutes a 'software
       | engineer'.
       | 
       | I like the idea of having a body of knowledge, but given the
       | loose definitions above, I'm not sure this is useful or practical
       | beyond documenting some potential best practices/techniques.
        
         | flakiness wrote:
         | For a context, some older version of swebok was edited by Steve
         | McConnell, the author of an old best seller "Code Complete" At
         | that time, there was some consensus on what's software
         | engineering. This version (coming out at 2013) was extension of
         | that line of thought.
         | 
         | The IT field has expaneded since then. So your point is kinda
         | right: I don't think SWEBOK covers mobile or ML fields well,
         | for example. But there is a still some value to cover
         | traditinal software engineering field, as it still exists and
         | it's not that small.
        
         | whereis wrote:
         | Maybe this (and other work) will eventually lead to a
         | Professional Engineering standard for software dev
        
       | okl wrote:
       | There's also a PMBOK (project management)
       | https://www.pmi.org/pmbok-guide-standards
       | 
       | You can find the PDF via your favourite search engine.
        
       | [deleted]
        
       | sirsinsalot wrote:
       | A gem from the back of the book about staying current: "This
       | article was obsolescent the moment it was drafted."
       | 
       | Software.
        
       | dejj wrote:
       | A reference to the Business Analysis Body of Knowledge (BABOK)[1]
       | in the requirements engineering section would have been useful.
       | The BABOK costs around 40 USD.
       | 
       | [1] https://www.iiba.org/career-resources/a-business-analysis-
       | pr...
        
       | okl wrote:
       | As an introduction to software development processes I recommend
       | Steve McConnell's Software Project Survival Guide. You can get a
       | used copy for small money.
        
       | pcbro141 wrote:
       | Direct PDF link: https://ieeecs-
       | media.computer.org/media/education/swebok/swe...
        
         | drummer wrote:
         | Lol thanks, came here to ask exactly this.
        
         | de6u99er wrote:
         | ty
        
         | cyberlab wrote:
         | Thanks for that. Had a quick cursory glance and randomly
         | spotted this gem: 'The arsenal of OSs is abstraction'. It
         | sounds debatable, but it's probably correct lol
        
         | DogWithKeyboard wrote:
         | Thanks!
        
       | agentultra wrote:
       | I often find myself recommending and sharing this. Nice to see it
       | on the front page. It's something that other engineering
       | professions often share, a guide to the state of the art;
       | pointers to find out about the different practices and tools we
       | use.
        
       | jes wrote:
       | I did not know of this document before today. I think it's
       | valuable and I'm glad the link was shared.
       | 
       | The value for me, I think, will be this.
       | 
       | I'm an older (61) software engineer. A document like this can
       | serve as a starting point for discussion in the software group of
       | which I am a member. It can be something like a reference design
       | for software practice within the group.
       | 
       | By reference design, I mean, something that the group considers
       | or consults when discussing or designing how its own practices
       | should be.
       | 
       | I'm thinking about facilitating some short (15 minute)
       | discussions within our group to introduce the document and its
       | contents, and then see if people think it would be worth our time
       | to consult it when designing our own policies and procedures.
       | 
       | Thoughts?
        
         | [deleted]
        
         | barbazoo wrote:
         | I only skimmed it and I couldn't find anything practical enough
         | that would help me in my day to day work.
         | 
         | For example it talks about design patterns but only in an
         | abstract way, not what pattern could help you solve certain
         | classes of problems (2.3.3).
         | 
         | Or API design, great that's a constant source of contention,
         | again, nothing meaty to reference in a discussion either
         | (2.4.1).
         | 
         | I'm probably grossly misunderstanding the purpose of that
         | document. I was hoping it to be more similar to the OWASP cheat
         | sheets [0] but more general.
         | 
         | [0] https://cheatsheetseries.owasp.org/
        
           | deeteecee wrote:
           | Yeah, it's definitely not gonna be that explicit. There's a
           | section under Cover called "Introduction to the Guide" that
           | explains their objectives.
           | 
           | Anyways, this doc is gonna be useful for me because while I
           | took computer science & engineering as a major in college, I
           | never ended up taking a course that taught me how to
           | holistically look at software engineering as a discipline and
           | all the terms that come with it.
        
           | r00fus wrote:
           | The SEBOK is really for setting the stage, agreeing to
           | practices and framing approach to the problem.
           | 
           | All good stuff to ensure as a baseline for people working on
           | projects you're on. Working with someone on a project that
           | can't sort a requirement from a spec can be problematic.
           | 
           | I think it's a great read.
           | 
           | Analogous to this is the PMBOK which is required reading for
           | PM certifications.
        
           | nradov wrote:
           | The purpose is simply to define a minimum baseline of
           | knowledge that every professional software engineer should
           | memorize. It's kind of like having a common vocabulary so
           | that we can hold productive discussions rather that wasting
           | time defining basic terms. It isn't intended as a guideline
           | to follow in daily work.
        
             | kbenson wrote:
             | > The purpose is simply to define a minimum baseline of
             | knowledge that every professional software engineer should
             | memorize.
             | 
             | That may be a bit much. It covers a lot (300+ pages just to
             | identify and describe each area of study), and many people
             | can and will go entire careers without needing to know
             | about certain things, and be very effective software
             | engineers (knowing more about compilers is useful in many
             | ways, but by no means required to be an effective
             | programmer in many areas).
             | 
             | I would say it's good for finding gaps in your knowledge in
             | areas that you have contact with, and as a good syllabus if
             | you are branching into something unfamiliar. Would a person
             | be served well by reading through this entirely and at
             | least having been exposed to certain topics once? Yes.
             | Should they necessarily have studied every topic? No. The
             | field is to wide to expect everyone to know everything.
             | This helps with that though, since it lets people identify
             | gaps in knowledge that are currently important that they
             | can then research more.
        
       | auslegung wrote:
       | I would love to hear some reviews of this. This is the first time
       | I'm hearing about this book, but it looks like the exact kind of
       | thing I've wanted for a long time.
        
         | ozim wrote:
         | For me there is no practical value.
         | 
         | I don't see anything wrong with that book. It is covering very
         | broad scope and maybe if you would want to know why building
         | software is complex and you don't have any knowledge in the
         | topic that would be a good starting point.
         | 
         | Like if you would be an owner of a gym chain and because of
         | current situation you would like to start software company.
         | This could give you an idea why it is not just having "an app
         | idea" and why those pesky developers demand so much money.
         | 
         | I like this part in the book:
         | 
         |  _Most people are limited in their ability to hold complex
         | structures and information in their working memories,
         | especially over long peri- ods of time. This proves to be a
         | major factor influencing how people convey intent to com-
         | puters and leads to one of the strongest drives in software
         | construction: minimizing complex- ity. The need to reduce
         | complexity applies to essentially every aspect of software
         | construction and is particularly critical to testing of
         | software constructions._
        
         | Silhouette wrote:
         | It's a worthy goal, but this Guide is a strange document. It's
         | only 335 pages long, yet rather than just presenting an outline
         | of the subject and referring to other sources for detailed
         | treatments, it also tries to present some basic knowledge for
         | each topic itself.
         | 
         | It's hard to see how even the most expert contributors and
         | skilled editors could compress a whole industry of knowledge
         | that much and end up with something useful. Inevitably, much of
         | the specific knowledge presented in the Guide is simplified to
         | the point of arguably being wrong, dated to the point of
         | arguably being obsolete, or just missing the point altogether.
         | 
         | As someone else pointed out, this is only a "guide to" the
         | field of software engineering. It does cite additional
         | references as well (details in appendix C), though there are
         | only 36 references supporting the entire Guide and some of them
         | are old and of debatable relevance to modern software
         | development. This edition of the Guide is nearly a decade old
         | now, so it obviously doesn't include references to good books
         | that have been published more recently and adopt a more
         | objective, evidence-led style when discussing which modern
         | practices actually work that was sorely lacking in most books
         | from a decade or two ago.
        
           | Cthulhu_ wrote:
           | It should give enough leads for further investigation though;
           | you can yeet any of the headings into Google and get
           | thousands of results and dozens of book references.
        
             | NAR8789 wrote:
             | +1 it feels like this or something similar could
             | potentially speed up initial steps of picking up new skills
             | by providing "the right term to google for".
             | 
             | In particular, it feels like it targets that stage of
             | problem solving where I've defined my problem and am
             | looking for prior art, but am having a trouble searching
             | simply because I don't know what the people who previously
             | met this problem called it.
             | 
             | For this particular step of problem solving a very broad,
             | very shallow general outline of the whole field, or even
             | just a glossary of terms that tries to cover the whole
             | field, feels like just the tool for the job.
        
         | getaclue wrote:
         | good overview
        
       | [deleted]
        
       | emddudley wrote:
       | The current revision, V3, was published in 2013.
        
       | nitramm wrote:
       | Knowledge from which chapter to you consider the most useful for
       | your work?
        
         | getaclue wrote:
         | depends on the project/place entire work is useful
        
       | postfacto wrote:
       | A truly worthy book of Software Engineer Dark Arts that's come in
       | handy multiple times.
       | 
       | The Career Programmer: Guerilla Tactics for an Imperfect World
       | (Expert's Voice)
       | https://www.amazon.com/dp/1590596242/ref=cm_sw_r_cp_api_glt_...
        
         | NtochkaNzvanova wrote:
         | To each his own, but I found that book to be badly written,
         | outdated, and not applicable to my day-to-day work.
         | 
         | Published in 2006, it feels like it was written for a mid-90s
         | world of waterfall process and shrink-wrapped software (6-month
         | death marches to immovable ship dates). No mention of agile
         | methods or the idea that web applications might be developed
         | and deployed differently. It plays upon Dilbert-esque
         | stereotypes of managers and marketing folks, and assumes a 100%
         | adversarial relationship between the brilliant programmers and
         | everyone else.
         | 
         | Maybe I've just been lucky, but this isn't at all
         | representative of the world I live in. I guess I'm fortunate
         | not to have to adopt such a cynical worldview as the author.
         | 
         | Then again, don't take my word for it, I only read half the
         | book before I put it back into the huge stack of unread books
         | next to my desk.
        
       | getaclue wrote:
       | nice share of the doc pretty common
        
       | playpause wrote:
       | Where did the amazing comment from itssatireok go? Was it deleted
       | by them or moderators?
        
       ___________________________________________________________________
       (page generated 2021-04-22 23:01 UTC)