Jump to content

Talk:Software engineering

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Beland (talk | contribs) at 02:49, 31 July 2021 (archiving foolishness). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Template:Vital article

Template:Outline of knowledge coverage This article is or was the subject of a Wiki Education Foundation-supported course assignment. Further details are available on the course page. Peer reviewers: Leptitcharmeur94. This article was the subject of a Wiki Education Foundation-supported course assignment, between 25 January 2021 and 16 May 2021. Further details are available on the course page. Student editor(s): C.robinrcbc (article contribs). Peer reviewers: Monica Pramono.

acqurying for software engineering

I would,like,to know whether software engineering involve studing about science or learning some science subjects like biology ,physics,mathematics or chemistry — Preceding unsigned comment added by Nsereko Hamza (talkcontribs) 10:55, 8 February 2020 (UTC)[reply]

Software Craftsmanship is neither a critique of nor alternative to Software Engineering

In the section "Critique", the article contained the following sentence: "Software craftsmanship has been proposed by a body of software developers as an alternative that emphasizes the coding skills and accountability of the software developers themselves without professionalism or any prescribed curriculum leading to ad-hoc problem-solving (craftsmanship) without engineering (lack of predictability, precision, missing risk mitigation, methods are informal and poorly defined)."

This is wrong on several levels.

  • "Software craftsmanship has been proposed [...] as an alternative [...]." Wrong. Software craftsmanship had not been proposed as an alternative to software engineering. It has been proposed as an extension of agile software development to describe that agile software development does not work without software engineers not just doing their job but doing their job well. The Manifesto for Software Craftsmanship makes no reference to Software Engineering in any way.
  • "[...] without professionalism or any prescribed curriculum [...]." Wrong. The opposite is the case. Part of the Manifesto for Software Craft is "Community of Professionals". Software craft is not about being without curriculum but about filling the gaps that the typical curricula leave: Most colleges universities have either no or an outdated approach to the topic of software testing. At best, they teach some theory from the 70ies or 80ies. They ignore early experiences like those from Project Mercury as well as new methods like TDD, BDD, ATDD, and TPP.
  • "[...] leading to ad-hoc problem solving (craftsmanship) without engineering (lack of predictability, precision, missing risk mitigation, methods are informal and poorly defined)." Wrong. The elements of Software Craft like Test-Driven Development, Behavior-Driven Development, Acceptance Test-Driven Development, Refactoring, the Transformation Priority Premise, the Principles of Object-Oriented Class Design (SOLID and Package Principles), the Programming Paradigms (Functional, Object-Oriented, and Structured) are formal, well-defined, and developed and chosen to mitigate risk.
  • "[...] apprenticeship model of medieval Europe." Wrong in the reader's impression. Germany still uses this apprenticeship model as of today for all kinds of crafts, and it even has computer science degrees based on this apprenticeship model: Fachinformatiker.

If anything at all, Software Craft(smanship) should be seen as a well-chosen, well-defined, evolving set of principles, practices, and methods for good Software Engineering.

Software Craft is not something different from Software Engineering. Software Craft is a specific instance of Software Engineering.

I have thus removed that paragraph.

--Christianhujer (talk) 20:15, 8 July 2020 (UTC)[reply]

Engineering is a higher-level skill that software developers do not have

I have grave concerns about this article because it deceives the public. It falls just short of claiming that software programmers have engineering skills. Yet programming and engineering are not even related.
The quintessential skill of an engineer is the ability to predict and prevent product failures. It would be highly ironic and a big mistake to believe that fail-safe products can be built by writing software. Not even skilled engineers can do that. Thus there is no such a thing as a “software engineer”, despite what this and that article claim.
Similarly and furthermore, the belief that software can prevent devices or systems from failing, especially the hardware that it runs upon, is pure fantasy. No amount of software can make an airplane safe, for example. This should be obvious without proof.
The misunderstanding that programmers can fulfill engineering positions has led to dire consequences in industry. For example, Boeing laid off its most experienced engineers, claiming that hardware development on its airplanes was complete, and correspondingly outsourced its engineering requirements to a software company to save costs (“Boeing’s 737 Max Software Outsourced to $9-an-Hour Engineers”). But when software caused the crashes of several 747 MAX airplanes, it had to concede that, despite having laid off its experienced engineers, it did not rely on the software supplier for engineering (“What Boeing’s 737 MAX Has to Do With Cars: Software”).
Who’s to blame? Boeing? Or the manufacturers and propagators of the "software engineering" hype?
Although it would be convenient to believe that Boeing is the sole owner of this blunder, the malady is commonplace in industry (and present on Wikipedia itself). How many tech companies do you know of that divide Research and Development into Hardware Engineering and Software Engineering departments? Most, maybe all of them?
It would be more appropriate to drop the distinction between hardware and software (another term coined by computer programmers), and rename the departments “programming” and “engineering” to distinguish between the two disciplines. This would (hopefully) create a symbiotic relationship between the two where programmers would be willing to work WITH engineers to protect human life and property.
Software programmers who claim higher-level engineering skills to secure engineering positions at higher salaries, usurping real engineers who are qualified and competent, ought to be sued for fraud, especially when he or she was unable to protect human life and property. Anybody can be sued for causing failures, but only an engineer can be sued for failing to prevent them. Thus, software developers cannot be sued for making engineering mistakes, but can be sued instead for fraud if they had claimed to have engineering skills and thus falsely represented themselves as engineers.
Do not believe the hype. Programming is unrelated to engineering, software does not make products safe, and programmers are not engineers.
Let’s get real. What’s wrong with calling computer programmers Software Developers and their knowledge Computer Science? Why wouldn't self-proclaimed "software engineers" wish to desist to evade the liability? Think about it.
Impediguy (talk) 20:27, 27 December 2020 (UTC)[reply]

interesting. you're not the first nor the last to claim that. the two are different but not mutually exclusive. the thing with software engineering (which is different from programming, not obvious?) is that it's not a classic engineering (it's multidisciplinary) and it's been developed. you've got engineering stuff on the curriculum; swebok for itself includes all the requirements, design, construction, ... the list goes on and wikipedia already cited them. It's not as regulated as other engineers, but it's probably a matter of time 'til it happen. And a lot of what's happening with the title "software engineering" is misconception, etc. you say to get real, the reality of engineering software is virtual. BTW, just call software developers developers, they're not computer scientists, you just making a similar misconception you're calling out lmao... talk@TRANSviada 14:26, 28 December 2020 (UTC)[reply]
My point was, in part, that computer newspeak is perilous. It has diluted the concept of engineering to the point that it has become meaningless. Correspondingly it seems, engineering skills are no longer valued or known by consumers and industry. Yet I do not wish to get started on “machine learning” or “artificial intelligence” which IMHO equates to “real stupidity” of the author for passing unmitigated risks onto the consumer.
What kills me the most about so-called “software engineers” (pun intended) is that they are completely oblivious to the skills they lack to be able to call themselves engineers, but they do anyway. Incredible.
Management processes do not define the discipline that is being managed. If software development follows the same “approach” as product development, it does not mean that you are engineering when you are writing software. Programming and engineering are not even related.
Here’s the rub. Programmers (yes, programmers) are filling engineering positions in industry because they erroneously claim that, having followed the same regulatory or management processes (i.e. “approaches”) as engineers, they have become engineers. But engineers ultimately prevent product failures. Software developers just write software that potentially could cause those failures (but cannot prevent them). Same management, different outcome, corresponding to different abilities.
This is no laughing matter. As I have described above, the deceit has cost the horrific loss of human life. Please desist using the terms: engineering until you know what it means, and engineer until you know what it takes to be one. Otherwise, if software developers do not get real about representing themselves and their skills, they will ultimately be sued for incompetence and fraud. Impediguy (talk) 01:02, 29 December 2020 (UTC)[reply]
Wikipedia talk pages are supposed to be used to suggest improvements to the article, not to discuss the topic in general. What improvements are being suggested here? Keep in mind that on Wikipedia we are supposed to follow what the majority of the sources say on a topic, and the majority of sources indicate that this field exists and is properly called 'software engineering'. I'll also note that most of the article text on this subtopic lives at Software_engineer#Use_of_the_title_"Engineer" - MrOllie (talk) 13:52, 29 December 2020 (UTC)[reply]
Thank you for your consideration and patience. However, I disagree with your sentiment that, because a topic is popular, it can be published as if it were true. As we have learned from recent politics, a slight minority of Americans would agree with you because they would rather live the lie than face the truth. Yet the reason the United States has a Bill of Rights is to defend beliefs or realities that may not be popular. In this case, the truth is unpopular with the uneducated, and yet, I am sorry but, “The Emperor Is Wearing No Clothes". See my entry below on how this article can be improved.Impediguy (talk) 01:50, 30 December 2020 (UTC)[reply]
This isn't my 'sentiment', it is a paraphrase of the relevant Wikipedia policies, which you can find at WP:V and WP:NOR. You can't just handwave that away in favor of writing based on your own beliefs, Wikipedia articles must follow the sources. - MrOllie (talk) 02:04, 30 December 2020 (UTC)[reply]
"Software Engineering" was the cause of two airplane crashes and the loss of 346 lives. This was the tragic result of software developers illegally filling engineering roles in industry (but it nevertheless was Boeing's blunder). I have cited only a few of the news reports in my talk. Please desist on disregarding the controversy as "hand-waving", "[my] opinion" or "[my] beliefs". These are real facts that were caused by misinformation and false identity. It's Wikipedia's and your responsibility to learn the truth, rather than deny or disregard it.
I also dislike the title "software engineer" being used like that... In part it's because it's not as regulated field. But software engineering, as an engineering discipline, is already covered by standards from ISO/IEEE, which also made the SWEBOK (it's free give it a read, mainly on the topics of software quality, requirements, testing, management, process), and a lot covered by Wikipedia. I won't argue back since this, as noted above, is a place for discussing improvements on the article.talk@TRANSviada 15:54, 29 December 2020 (UTC)[reply]
It is not true that engineering is not a regulated field. Just refer to NCESS and Professional Engineering citations in this very article who exist to prevent the “unlicensed practice of engineering”. Whereas “engineer” is thought to be a generic descriptor by the public, it is only true "outside the context of an employment or contractual relationship”. It is not considered to be true in industry or “when providing a professional service”. So if a “software engineer” (i.e. the generic, meaningless term) were hired as an engineer, he or she would be liable for the “unlicensed practice of engineering”, as I have claimed above. Since this entire article is in a professional context, the use of the term “engineer” is regulated in the United States, and this article, in my opinion, is in violation of that regulation. FYI, I was licensed in Mechanical Engineering in the State of California, and that is why I am so offended by any incompetent yahoo who comes along and claims to be an engineer and takes my job, as I have also documented in my talk above.Impediguy (talk) 01:50, 30 December 2020 (UTC)[reply]
The main problem with this article and the insular “software engineering” movement is that they do not acknowledge the controversy: that software developers are claiming engineering skills, absconding engineering positions in industry and human life has been lost as a result. How this article can be improved, and how I propose to do it: 1) I intend to wait a couple of weeks for my “controversial” talk to be visible to and to discussed with licensed professional engineers to get their support; 2) I will insert the material above, or similar, to document the controversy; 3) I will remove the babble that squelches the controversy but is thought to be “criticism”; and 4) I will correct the reason why the NCEES is not longer issuing the Professional Exam for “Software Engineering”: because very few people were able to pass it - only five in the State of California for the year that I last looked. Impediguy (talk) 01:50, 30 December 2020 (UTC)[reply]
Which sources were you thinking of using in your new version? - MrOllie (talk) 02:04, 30 December 2020 (UTC)[reply]
I would like to notify, work with and cite the NCEES. I would like to notify, work with and cite professional engineering organizations, such as the ASME. And, I would also like to talk to, work with and cite legal counsel and case law. Impediguy (talk) 04:52, 30 December 2020 (UTC)[reply]
Ok, but please do have a read of the policies I linked above, particularly Wikipedia:No_original_research#Primary,_secondary_and_tertiary_sources. Case law is a primary source and is generally not used on Wikipedia. Re NCEES, see [1], where they stated it was due to low participation. ASME often uses the term 'Software engineer' without qualification [2]. - MrOllie (talk) 12:54, 30 December 2020 (UTC)[reply]
OK. Thank you. Will do. NCEES took the diplomatic approach. However, I disagree with the ASME article: "Manufacturing Relies More On Software". I've developed several manufacturing process, and I have never relied on software or software developers to control my processes. That would have been a big mistake. The difference between an abstract model (the part that a software developer in theory might be able to do) of a system and the real system (the part that only an engineer can characterize) can cause the controller to go unstable (citation known but omitted). Thus, before a programmer can write the software, the engineer has already designed the controller. Furthermore, a process is not a process at all until all special causes of variation have been identified and removed. These are hands-on activities that do not need (that kind of) software. The fact that it uses the term "software engineer" without qualification makes it even less credible to mechanical engineers. Impediguy (talk) 18:42, 30 December 2020 (UTC)[reply]
I have both a Bachelors and Masters in Software Engineering. My degree is also ABET accredited. Should I get my degree renamed? Implicating the whole profession because of the ethics of a company outsourcing their labor is foolish. This whole thread feels like you are bent out of shape because you are either scared your defense-contracting company is going to lay you off, or you recently got laid off. Outsourcing in general is hotly debated within the software field. I tend to agree that Software Engineering should be more regulated in order to discourage companies from trying to cut corners. The pretentiousness of the title "Engineering is a higher-level skill that software developers do not have" is incredible. The reason the PE Software exam was removed is because no Software Engineer would waste their time with a license they don't need in their careers.— Preceding unsigned comment added by 2603:8080:700:28e1:9409:c3f1:1199:5b57 (talkcontribs) 23:20, 16 April 2021 (UTC)[reply]

The article has a loop: Software Development contains Software Engineering, but also Software Engineering contains Software Development

The overview table at the right says the following: Software Development core activities: ... Software Engineering. And in the body of the article, there is the following section: Fields (of Software Engineering): ... Software Development. One should include the other, but both cannot be at the same time.— Preceding unsigned comment added by 88.0.117.22 (talkcontribs) 02:58, 27 May 2021 (UTC)[reply]

I have modified Template:Software development process so that "software engineering" and "software development" appear as synonyms. In the software engineering article, "software development" is used more as a synonym of software construction. The terminology is inconsistently used in the real world, so given now that this is at least not directly contradictory (given the placement of software construction under both in the template), I think this is probably fixed. -- Beland (talk) 02:44, 31 July 2021 (UTC)[reply]

There is an inconsistency: "Design, Maintenance, Requirements and Testing" belong to Software Development and Software Engineering at the same time

The overview table at the right says the following: Software Development core activities: (Software) Requirements, (Software) Design, (Software) Testing, (Software) Maintenance .... However, the body of the article says: Fields (of Software Engineering): ... Software Requirements, Software Design, Software Testing, Software Maintenance. Each practice should belong to either Software Development or Software Engineering, but not both at the same time.— Preceding unsigned comment added by 88.0.117.22 (talkcontribs) 03:05, 27 May 2021 (UTC)[reply]

Given that "software engineering" and "software development" are sometimes used as synonyms, and when they are not synonyms substantially overlap, I think the fact that those fields are described as applying to both, is fine. -- Beland (talk) 02:48, 31 July 2021 (UTC)[reply]

Merge from Software engineer

Software engineer#Education and Software engineer#Profession entirely overlap the sections of this article with the same names. The remaining section of Software engineer#Use of the title "Engineer" entirely overlaps with Software engineering professionalism and should be merged there. If we want to keep the engineering field and the profession separate, then I'd merge into Programmer due to use of that term as a synonym and substantial overlap when it's used with a different meaning; see Programmer#Terminology. -- Beland (talk) 02:19, 31 July 2021 (UTC)[reply]