Talk:Software engineering

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Coined software Engineering[edit]

There is someone who coined the word software, as someone coined the world electricity. But no one has the right to claim a new term only with an Engineer after it. The word creation, development, making, designing are sometimes synonymous with the word Engineering. -- (talk) 08:28, 20 May 2015 (UTC)

"Software engineers" are programmers. It's as simple as that. I know because I am one. We have to have this article because the term is in wide use, but to describe programmers as engineers is akin to describing a hairdresser as a keratin engineer. (talk) 23:23, 23 February 2016 (UTC)

Software engineering is often confused with software development. Software developers are programmers who develop software which was made by software engineerers. Software is basically components required to instruct a machine. Today software is developed through a process called computer programming. Before programming it used to be through punched cards. Bottlecup97 (talk) 04:40, 11 October 2019 (UTC)

@Bottlecup97: your statement above is inaccurate and the change you made to the opening sentence of the article is equally incorrect. Please do not attempt to change articles whose subject you clearly do not understand. Thanks, The Mirror Cracked (talk) 05:01, 11 October 2019 (UTC)

@The Mirror Cracked could you please explain to me why my statement is inaccurate ? Bottlecup97 (talk) 10:27, 11 October 2019 (UTC)

@TheMirrorCracked Bottlecup97 (talk) 10:28, 11 October 2019 (UTC)

Mirror cracked doesnot understand computers haha Bottlecup97 (talk) 10:29, 11 October 2019 (UTC)

Copyright problem removed[edit]

Copyright-problem.svg Prior content in this article duplicated one or more previously published sources. The material was copied from: and Copied or closely paraphrased material has been rewritten or removed and must not be restored, unless it is duly released under a compatible license. (For more information, please see "using copyrighted works from others" if you are not the copyright holder of this material, or "donating copyrighted materials" if you are.)

For legal reasons, we cannot accept copyrighted text or images borrowed from other web sites or published material; such additions will be deleted. Contributors may use copyrighted publications as a source of information, and, if allowed under fair use, may copy sentences and phrases, provided they are included in quotation marks and referenced properly. The material may also be rewritten, providing it does not infringe on the copyright of the original or plagiarize from that source. Therefore, such paraphrased portions must provide their source. Please see our guideline on non-free text for how to properly implement limited quotations of copyrighted text. Wikipedia takes copyright violations very seriously, and persistent violators will be blocked from editing. While we appreciate contributions, we must require all contributors to understand and comply with these policies. Thank you. Justlettersandnumbers (talk) 12:22, 24 October 2018 (UTC)

Definition of software development[edit]

This is the documentation and writing of computer programs. Bottlecup97 (talk) 04:32, 11 October 2019 (UTC)

Those are only two possible parts of a much more complex set of tasks involved in software engineering. See this as one definition of software engineering and note how it includes design, development, testing, deployment and management of software systems. The Mirror Cracked (talk) 04:57, 11 October 2019 (UTC)

Software development and software engineering are not the same thing. The engineer creates the components and the developer develops the components. Bottlecup97 (talk) 05:31, 11 October 2019 (UTC)

I did not say that software development and software engineering are the same thing. But your definition that "The engineer creates the components and the developer develops the components" is wrong. It also makes absolutely no sense. The words "creates" and "develops" mean the same thing. So your definition is saying "The engineer creates the components and the developer creates the components" which means they are the same thing. Which as you said, is wrong. The Mirror Cracked (talk) 05:34, 11 October 2019 (UTC)

Today software is developed through a process called computer programming. Before computer programming it was done through punched cards. Bottlecup97 (talk) 05:35, 11 October 2019 (UTC)

No, that is completely incorrect. Expressing computer programs on punched cards is computer programming. It is not the thing that came before computer programming. It is clear that you do not understand the fundamentals of computer programming and software engineering. Please stop. The Mirror Cracked (talk) 05:41, 11 October 2019 (UTC)

Developing includes improving something that already exists. While creating is when you make something that doesnot exist. Bottlecup97 (talk) 05:38, 11 October 2019 (UTC)

Develop and create are not the same thing. Bottlecup97 (talk) 05:39, 11 October 2019 (UTC)

No, you are simply wrong. Software development includes the creation of software. Here is IBM's definition of the term "Software development refers to a set of computer science activities dedicated to the process of creating, designing, deploying and supporting software". See how it includes "creating"? The Mirror Cracked (talk) 05:42, 11 October 2019 (UTC)

It cannot include the creation of software. Software is actually physical components. Any definition that includes the word creation contradicts the word its self. Because the word is development and development is fundamentally not the same as creation. Bottlecup97 (talk) 05:55, 11 October 2019 (UTC)

Statements like "software is physical components" demonstrate you do not have even an elementary understanding of the subject. That statement is literally completely wrong. You also don't understand the terms "software creation" and "software development". While you are welcome to remain in whatever state of belief you wish, you absolutely may not continue to edit this article and related ones. Your understanding of the subject is so poor, you lack the competence required to edit on this subject. You are also repeatedly breeching WP:V and WP:OR. Once again, I beg you to stop. The Mirror Cracked (talk) 06:00, 11 October 2019 (UTC)

Note that I called computer programming a process. This suggests its different from punched cards. Punched cards maybe a form of programming as your calling it but my point is that today developing software is not done through a punched card process , its done through an explicit form of programming. Bottlecup97 (talk) 06:05, 11 October 2019 (UTC)

I am a computer programmer myself. I do have knowledge on how computers work. And your judgement on my understanding shows me you donot understand the difference between software engineering and software development. Bottlecup97 (talk) 06:07, 11 October 2019 (UTC)

Software enginnerring and software development are the most widely misunderstood definitions in the IT community today. Am saying this to alert you when you read a definition on software engineering and software development. This is a true misunderstanding because there are several definitions of software engineering and software development that are contradictory. Bottlecup97 (talk) 06:15, 11 October 2019 (UTC)

What is software[edit]

Software is basically physical components that today are so small thanks to nano technology. The first software was by charles babbage and his analytical engine. His device today would be smaller due to nano technology.

Software today is found on microchips. If you zoom in to a microchips you will be able to see these small metal components in there thousands that are or should be called software. Bottlecup97 (talk) 00:44, 12 October 2019 (UTC)

Bullshit. Physical components are part of computer hardware engineering. If you disagree, mail me a transistor. --Guy Macon (talk) 01:39, 12 October 2019 (UTC)

False definition of software engineering on Wikipedia[edit]

Software engineering is defined as something with this narrative ; the systematic programming of a computer. This is a wrong definition. This definition is wrong because it doesnot describe the physical nano technology components of a computer that work together inorder to carryout various functions such as advanced calculation. Bottlecup97 (talk) 00:50, 12 October 2019 (UTC)

That would be Computer engineering, and we already have an article on it. --Guy Macon (talk) 01:35, 12 October 2019 (UTC)

acqurying for software engineering[edit]

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)

Software Craftsmanship is neither a critique of nor alternative to Software Engineering[edit]

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)

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

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)

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)
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)
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)
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)
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)
"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 15:54, 29 December 2020 (UTC)
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)
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)
Which sources were you thinking of using in your new version? - MrOllie (talk) 02:04, 30 December 2020 (UTC)
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)
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)
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)