Jump to content

Talk:Software engineering: Difference between revisions

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
Content deleted Content added
m Archiving 2 discussion(s) to Talk:Software engineering/Archive 6) (bot
m Reverted edit by 41.223.116.244 (talk) to last version by Annh07
 
(84 intermediate revisions by 34 users not shown)
Line 1: Line 1:
{{Talk header}}
{{WikiProject banner shell|class=C|vital=yes|1=
{{WikiProject Computing|importance=top}}
{{WikiProject Computer science|importance=top}}
{{WikiProject Engineering|importance=top}}
{{WikiProject Technology}}
{{WikiProject Software|importance=top|computing-importance=top}}
{{WikiProject Systems|importance=top |field=Software engineering }}
}}
{{User:MiszaBot/config
{{User:MiszaBot/config
| algo = old(180d)
| algo = old(180d)
Line 7: Line 16:
| minthreadstoarchive = 1
| minthreadstoarchive = 1
| minthreadsleft = 8
| minthreadsleft = 8
}}

{{Vital article|level=4|topic=Technology|class=C}}
{{WikiProjectBannerShell|1=
{{WikiProject Computing|class=c|importance=high}}
{{WikiProject Computer science|class=c|importance=top}}
{{WikiProject Electrical engineering|class=c|importance=mid}}
{{WikiProject Engineering|importance=top|class=c}}
{{WikiProject Technology|class=c}}
{{WikiProject Software|class=c|importance=top|computing-importance=high}}
{{WikiProject Systems|class=c |importance=top |field=Software engineering }}
}}
}}
{{Archives}}
{{Archives}}
{{Outline of knowledge coverage|software engineering}}
{{dashboard.wikiedu.org assignment | course = Wikipedia:Wiki_Ed/Rowan_College_at_Burlington_County/Society,_Ethics,_and_Technology_(Fall_2018) | reviewers = [[User:Leptitcharmeur94|Leptitcharmeur94]] }}
{{dashboard.wikiedu.org assignment | course = Wikipedia:Wiki_Ed/Rowan_College_at_Burlington_County/Society,_Ethics,_and_Technology-Spring_2021_(Spring_2021) | assignments = [[User:C.robinrcbc|C.robinrcbc]] | reviewers = [[User:Monica Pramono|Monica Pramono]] | start_date = 2021-01-25 | end_date = 2021-05-16 }}


{{annual readership}}


==Wiki Education Foundation-supported course assignment==
== Coined software Engineering ==
[[File:Sciences humaines.svg|40px]] This article is or was the subject of a Wiki Education Foundation-supported course assignment. Further details are available [[Wikipedia:Wiki_Ed/Rowan_College_at_Burlington_County/Society,_Ethics,_and_Technology_(Fall_2018)|on the course page]]. Peer reviewers: [[User:Leptitcharmeur94|Leptitcharmeur94]].


{{small|Above undated message substituted from [[Template:Dashboard.wikiedu.org assignment]] by [[User:PrimeBOT|PrimeBOT]] ([[User talk:PrimeBOT|talk]]) 09:44, 17 January 2022 (UTC)}}
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. --[[Special:Contributions/108.162.136.215|108.162.136.215]] ([[User talk:108.162.136.215|talk]]) 08:28, 20 May 2015 (UTC)
==Wiki Education Foundation-supported course assignment==
:"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. [[Special:Contributions/31.52.163.167|31.52.163.167]] ([[User talk:31.52.163.167|talk]]) 23:23, 23 February 2016 (UTC)
[[File:Sciences humaines.svg|40px]] This article was the subject of a Wiki Education Foundation-supported course assignment, between <span class="mw-formatted-date" title="2021-01-25">25 January 2021</span> and <span class="mw-formatted-date" title="2021-05-16">16 May 2021</span>. Further details are available [[Wikipedia:Wiki_Ed/Rowan_College_at_Burlington_County/Society,_Ethics,_and_Technology-Spring_2021_(Spring_2021)|on the course page]]. Student editor(s): [[User:C.robinrcbc|C.robinrcbc]]. Peer reviewers: [[User:Monica Pramono|Monica Pramono]].


{{small|Above undated message substituted from [[Template:Dashboard.wikiedu.org assignment]] by [[User:PrimeBOT|PrimeBOT]] ([[User talk:PrimeBOT|talk]]) 09:44, 17 January 2022 (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. [[User:Bottlecup97|Bottlecup97]] ([[User talk:Bottlecup97|talk]]) 04:40, 11 October 2019 (UTC)
== acqurying for software engineering ==
:{{ping|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, [[User:The Mirror Cracked|The Mirror Cracked]] ([[User talk:The Mirror Cracked|talk]]) 05:01, 11 October 2019 (UTC)


I would,like,to know whether software engineering involve studing about science or learning some science subjects like biology ,physics,mathematics or chemistry <!-- Template:Unsigned --><small class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Nsereko Hamza|Nsereko Hamza]] ([[User talk:Nsereko Hamza#top|talk]] • [[Special:Contributions/Nsereko Hamza|contribs]]) 10:55, 8 February 2020 (UTC)</small> <!--Autosigned by SineBot-->
@The Mirror Cracked could you please explain to me why my statement is inaccurate ? [[User:Bottlecup97|Bottlecup97]] ([[User talk:Bottlecup97|talk]]) 10:27, 11 October 2019 (UTC)
:{{reply|Nsereko Hamza}} Arguably, mathematics is not a science, but some math knowledge is definitely required to be a professional software engineer. You might consider that computer programming is in general just a form of applied mathematics. Not all advanced math is needed, and there is some math specific to computer science like [[Big O notation]]. I think whether or not you need to study sciences like biology, chemistry, and physics depends on whether you get a certification or an undergraduate degree, and where from. For example, MIT requires all undergraduates to pass classes in all three of those subjects, no matter what their major. I don't think liberal arts colleges have the same science requirements, and certainly not if you are doing a non-college software engineering certification or boot camp. I'm not sure to what degree this should be explained in the article; would other readers benefit from mentioning any of that? -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 03:05, 31 July 2021 (UTC)


== Merge from Software engineer ==
@TheMirrorCracked [[User:Bottlecup97|Bottlecup97]] ([[User talk:Bottlecup97|talk]]) 10:28, 11 October 2019 (UTC)


[[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]]. -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 02:19, 31 July 2021 (UTC)
Mirror cracked doesnot understand computers haha [[User:Bottlecup97|Bottlecup97]] ([[User talk:Bottlecup97|talk]]) 10:29, 11 October 2019 (UTC)
:{{reply|Johnnie Bob}} You mentioned you have some thoughts on this merge proposal? -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 07:36, 19 August 2021 (UTC)
*'''Oppose''' They're much better as separate articles, mainly because they are not the same thing. They are in different knowledge domains. Programmer is slight different as well. It is much better in its own article. '''<span style="text-shadow:7px 7px 8px black; font-family:Papyrus">[[User:scope_creep|<span style="color:#3399ff">scope_creep</span>]]<sup>[[User talk:scope_creep#top|Talk]]</sup></span>''' 10:56, 24 August 2021 (UTC)
*:I'll note we don't usually distinguish the profession from the activity; for example, "cobbler" is covered under [[shoemaking]] and "brewer" redirects to [[brewing]]. Regardless...
*:{{reply|scope_creep}} I assume that would mean removing [[Software engineering#Profession]] and [[Software engineering#Education]]? After merging [[Software engineer#Use of the title "Engineer"]] into [[Software engineering professionalism]], that would leave Education and Profession as the only two sections on [[Software engineer]]. I think that's a bit weird given those sections are already in [[software engineering]] and seem to be on-topic here, but is that your preferred outcome? -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 18:36, 24 August 2021 (UTC)
:::{{ping|Beland}} I don't think there is any rule against both article having some duplicated content. I just think that the reader would like to see what a software engineer article is as opposed to going through a software engineering article to look for it, which may be wee bit more forbidding. I don't know how many viewers the article its gets, but certainly it is probable more value at the moment, for the reader. Programmer was a term that was really common when I started writing software in the 90's. It was quite a common occurence, but now you barely hear it, except in the sense of looking back, and affirming something that was good and true. Is there a stand-out benefit to combining them? '''<span style="text-shadow:7px 7px 8px black; font-family:Papyrus">[[User:scope_creep|<span style="color:#3399ff">scope_creep</span>]]<sup>[[User talk:scope_creep#top|Talk]]</sup></span>''' 19:18, 24 August 2021 (UTC)
::::{{reply|scope_creep}} I added templates to the talk pages showing daily pageview charts. It looks like [[Software engineer]] gets about 600 views per day and [[Software engineering]] gets about 1100. ([[Programmer]] is getting about 1300 per day after the merge from [[software developer]].) I think occupation/activity articles are usually combined because they are two aspects of the same subject, it's easier for readers to navigate fewer articles, and better context can be provided in a single article. For example,keeping two articles means that if your question is "What is it that software engineers do?" if you go to the [[software engineer]] article, you won't find the answer there. If your question is, "Are there degree requirements for software engineering?" and you go to the [[software engineering]] article, you won't find the answer there. (And actually that summarizes yet a third article which has more detail on that topic.) In each case, you'd need to discover there's a different article, in such a way that it occurs to you that this specific article (and not one of the many other articles we've linked) might have the answer to your question.
::::Peeking at [[WP:MERGEREASON]], both duplicate content and significantly overlapping content have consensus as good reasons to merge articles. It definitely reduces the workload of article maintenance and improves quality if details are only presented once, and other articles only have [[Wikipedia:Summary style|summaries]]. -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 22:45, 24 August 2021 (UTC)
:::::Hi {{ping|Beland}}. I tried to come up something last night. I was trying to find some research to support keeping them seperate articles but couldn't see much. Yip, it's pretty cogent argument for merging. Certainly, regarding the size of the project, finding the right information is getting harder and harder, as more articles are created. The removal of those Wikiprojects last year, that could have been used as starting entry points for searches, I thought was misplaced. So from that aspect, if it makes it easier to find info on it, then it is probably better to merge. '''<span style="text-shadow:7px 7px 8px black; font-family:Papyrus">[[User:scope_creep|<span style="color:#3399ff">scope_creep</span>]]<sup>[[User talk:scope_creep#top|Talk]]</sup></span>''' 10:23, 25 August 2021 (UTC)
::::::OK, I'll start in on it. -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 19:34, 31 August 2021 (UTC)
:::::::Merge complete! -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 07:19, 1 September 2021 (UTC)


== What is software ==
== Possible merge with [[software development]] ==


{{ping|User:Beland}} Just read through the [[software development]] article and had a glance at this [[software engineering]] article. I'm considering the possibility of merging these two articles together. There seems to be a decent amount of overlap between them, and from my understanding, the names "software developer" and "software engineering" are used interchangeably in terms of job titles. The name of the merged article should probably remain "software development" since that seems to be the more widely used title out of the two (I may be wrong though). Thoughts? [[User:Aitch &#38; Aitch Aitch|Aitch &#38; Aitch Aitch]] ([[User talk:Aitch &#38; Aitch Aitch|talk]]) 20:43, 1 September 2021 (UTC)
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.


:{{u|Aitch & Aitch Aitch}}, they are not quite the same thing and you are proposing removing Software Engineering as a topic from Wikipedia, leaving only a redirect. Both articles, and the related [[software development process]] have grown through accretion by editors adding textbook topics. Software engineering's focus on the management of large projects has gotten lost. There is also confusion because business-oriented technology and programming is taught in busiess [[information technology]] departments in universities and computer science is taught in technical and engineering departments. Both talk about software development, and the ideas of software engineering are moving from technology companies to other businesses. It would be nice if Wikipedia articles made sense of this, but eliminating Software Engineering is not the way to do it. [[User:StarryGrandma|StarryGrandma]] ([[User talk:StarryGrandma|talk]]) 22:41, 1 September 2021 (UTC)
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. [[User:Bottlecup97|Bottlecup97]] ([[User talk:Bottlecup97|talk]]) 00:44, 12 October 2019 (UTC)


::{{reply|Aitch & Aitch Aitch}} I think merging would be an improvement. We can certainly find sources that say "software developer" and "software engineer" are used interchangably, and also that some organizations do make a distinction. (See [[Programmer#Terminology]].) The "software engineering" article currently uses "software development" to describe the task more unambiguously called [[software construction]]. The "software development" article covers the broad array of tasks and treats "software development" and "software engineering" as synonyms, which is what makes them mergeable.
:Bullshit. Physical components are part of computer hardware engineering. If you disagree, mail me a transistor. --[[User:Guy Macon|Guy Macon]] ([[User talk:Guy Macon|talk]]) 01:39, 12 October 2019 (UTC)


::{{reply|StarryGrandma}} Merging the articles isn't "eliminating Software Engineering" from Wikipedia. The resulting merged article should discuss the specific techniques and considerations some people mean when they say "software engineering", and link to the article on professional aspects of software engineering. I don't see a bright line between "engineering" techniques and "software development methodologies", though - they both encompass pre-coding design, and post-coding testing, maintenance, etc. And they both include the management of projects large and small. So I'm having trouble imagining how to exclude "engineering" from an overview of "software development" in the broad sense. The other way around would also be difficult...we might try to scope for example, [[Agile software development]] to cover the social aspects of project management with something to say about testing tools, but the "software engineering" part of Agile is only the actual programming and testing. But that's the opposite of the claim that software development is narrow and software engineering includes all the project management extras. People just use both terms in both broad and narrow senses. -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 01:23, 2 September 2021 (UTC)
== False definition of software engineering on Wikipedia ==


:::{{reply|Beland}} {{reply|StarryGrandma}} Yeah I wasn't suggesting removing software engineering as a topic, I was suggesting merging the two articles together into one concise article since there seems to be a lot of overlap between the two. I'm not particularly an expert at this so I don't really know where to start. I was thinking that the current individual articles should be cleaned up a little before the merge since there is some vague wording and unsourced claims on both articles. [[User:Aitch &#38; Aitch Aitch|Aitch &#38; Aitch Aitch]] ([[User talk:Aitch &#38; Aitch Aitch|talk]]) 20:14, 2 September 2021 (UTC)
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. [[User:Bottlecup97|Bottlecup97]] ([[User talk:Bottlecup97|talk]]) 00:50, 12 October 2019 (UTC)


{{od}}{{re|Beland|Aitch & Aitch Aitch}} have not run into another discussion here where I have been at loss for words, but this one has done it. I admit to a few days of being completely speechless. Now I will try to explain without this turning into an academic lecture on the topic. You are proposing blanking the article on the area of software research in which I earned my masters degree in computer science and turning it into a few paragraphs in the software development article.
:That would be [[Computer engineering]], and we already have an article on it. --[[User:Guy Macon|Guy Macon]] ([[User talk:Guy Macon|talk]]) 01:35, 12 October 2019 (UTC)


Software engineering is not another word for software development. It is one particular approach to software development, with an emphasis on quality. This was driven initially by government and military concerns in the US and Europe about the poor state of the products they were being delivered from large-scale, expensive projects. The Department of Defense has funded much of the research in this area and even had a computer language created. Most software development is not done in this way. Technical companies started calling their developers software engineers and more recently people have been referring to software development in some areas as software engineering. But the article is about the topic of software engineering whose history is given at [[History of software engineering]].
== acqurying for software engineering ==


The confusion between software engineering and software development is also understandable because the article contains so little information about the field of software engineering. The article is one of the oldest in Wikipedia. It predates the current database so we don't have the oldest edits. The earliest one we have is 14 November 2001 (and it removes most of the article with the comment "minor copyediting"). There have been 5194 edits since. Sometimes the article has had content about the actual topic of software engineering, as it did early on; sometimes it was mostly about other things. Most SE related stuff is no longer in it or was never in it. Early edits happened before sources were required for material which was available in textbook. Much of the editing seems to have been from students adding textbook-type material rather than from scholarly or technical sources.
I would,like,to know whether software engineering involve studing about science or learning some science subjects like biology ,physics,mathematics or chemistry <!-- Template:Unsigned --><small class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Nsereko Hamza|Nsereko Hamza]] ([[User talk:Nsereko Hamza#top|talk]] • [[Special:Contributions/Nsereko Hamza|contribs]]) 10:55, 8 February 2020 (UTC)</small> <!--Autosigned by SineBot-->

Universities encourage a careful approach to writing software by trying to influence students. There are two paths to becoming a computer programmer at a level above just writing code. (You can get 2-year degrees in software development at community colleges.) If you want to work for technical companies you take courses in [[computer science]]. The course that introduces the full range of software development is called Software Engineering and is taught using one of the textbooks titled Software Engineering. If you are interested in business computing you take courses in [[information technology]]. In IT the course that introduces the full range of software development is called Systems Analysis and Design and is taught from one of the textbooks with the same name. Systems Analysis and Design is business computing's approach to development that emphasizes quality. (Wikipedia doesn't have an article on this and it should. It's history and development is also very interesting.)
See the tables of contents and introductions at
* {{cite book | last=Sommerville | first=Ian | title=Software engineering |edition=10th |url=https://www.amazon.com/Software-Engineering-10th-Ian-Sommerville/dp/0133943038/ | publisher=Pearson | publication-place=Boston | year=2016 | isbn=978-0-13-394303-0 | oclc=907941065}}
* {{cite book | last=Dennis | first=Alan | title=Systems analysis and design |url=https://www.amazon.com/Systems-Analysis-Design-Alan-Dennis-dp-1119585856/dp/1119585856/ | publisher=Wiley | publication-place=Hoboken, NJ | year=2019 | isbn=978-1-119-58585-5 | oclc=1050457747}}
Note that the descriptions of software development are different in the two books.


What really matters is not what students learn but how the companies they will work for approach software development. One of the developments in software engineering was a mechanism for customers to be assured that the software they contract for will be developed using the these methods. The [[Software Engineering Institute]] (SEI) at Carnegie Mellon University, funded by the Department of Defense, developed [[Capability Maturity Model]]s which assessed a company's software development process. Government contracts required meeting a certain level, and other companies required that their suppliers meet certain levels. Whether that was at all successful is unclear, and the SEI no longer does the assessments.
== Software Craftsmanship is neither a critique of nor alternative to Software Engineering ==


Software Engineering is a large enough topic with a 50 year history and can't be summed up concisely in the article on software development. That article is already written in [[WP:Summary style|summary style]] with sections having main articles of their own anyway. A major topic in computing meets Wikipedia's requirements for having an article.
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)."
<!-- Template:Unsigned --><span class="autosigned" style="font-size:85%;">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:StarryGrandma|StarryGrandma]] ([[User talk:StarryGrandma#top|talk]] • [[Special:Contributions/StarryGrandma|contribs]]) 21:54, 3 September 2021 (UTC)</span>
::::{{reply|StarryGrandma}} Thanks for the info. Based on what you've said, I can see that keeping the two articles separate is the best decision. I think the core problem is that the articles need to be brought to a higher standard. The "software development" article seems to be in better shape overall but its opening paragraphs (among other parts) are in poor condition. The "software engineering" article needs a lot more work since there are chunks of completely unsourced content. As for the "history of software engineering" article, I would support the idea of it being merged with the "software engineering" article. Starry Grandma, you clearly have a lot more knowledge than me on these topics so I'll ask you if merging "software engineering" with "history of software engineering" is a good idea. All I know for sure is that all three of these articles need a lot of improvement. [[User:Aitch &#38; Aitch Aitch|Aitch &#38; Aitch Aitch]] ([[User talk:Aitch &#38; Aitch Aitch|talk]]) 13:33, 4 September 2021 (UTC)
:::::{{reply|StarryGrandma}} What would you consider the correct fix to [[Template:Software development process]]? Would "Software engineering" move to the "Paradigms and models" section? Would the first section title then just be "Core activities" implying they could belong to any approach to software development? -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 03:04, 22 September 2021 (UTC)
::::::{{u|Beland}}, setting the first section title back to "Core activities" is good. Put Software engineering at the top of the of the "Paradigms and models" section. Most of the topics in that section are also part of current software engineering. If [[Systems analysis and design]] ever turns into a real article covering [https://www.wiley.com/en-us/Systems+Analysis+and+Design%2C+7th+Edition-p-9781119496489 this] it can go there too. [[User:StarryGrandma|StarryGrandma]] ([[User talk:StarryGrandma|talk]]) 23:11, 22 September 2021 (UTC)
:::::::OK, I made that change to the template. I also added a note to the intro of [[Software development]] saying software engineering is one approach. I downloaded the SWEBOK and found it likewise uses "software construction" where [[software engineering]] was using "software development". The SWEBOK considers "software development" to be the whole process, as you do. I aligned the article with the source, so that should fix the long-standing confusion of why both of them seemed to include the other.
:::::::In my professional experience, it's not necessary to get a 2-year or 4-year or master's degree to get a computer engineering job. I've met people in those jobs who have physics degrees, who got a humanities degree and went to a programming bootcamp. One of my co-workers who never graduated high school and never went to college was self-taught, and she knew more and was a better engineer than the Tufts and MIT grads. I took Software Engineering at MIT from [[Barbara Liskov]], and her book doesn't have "software engineering" in the title.
:::::::I'm not sure there really is a difference between good software development techniques and good software engineering techniques other than branding, as the SWEBOK includes multiple programming methodologies that both were and weren't taught at school, some of which just seem to come from best commercial practices. "Systems analysis and design" looks like a classic "waterfall" style process, but SWEBOK, for example, covers waterfall, agile, TDD, and other approaches. [[Waterfall model]] might be a good place to describe SAD if you think it's a noteworthy variant.
:::::::If you have specific topics you would like to see added to the [[software engineering]] article, that would be more actionable than describing its 20-year history. We might already cover the desired topics in other articles; I'm happy to see what we have and what's missing. -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 00:40, 23 September 2021 (UTC)


===Role vs. process===
This is wrong on several levels.
:It strikes me that '''Software Engineer(ing)''' should be about the ROLE of software creator or the POSITION of a "Software Engineer"; where '''software development''' should be about the PROCESS...maybe? Just seems like we need a much clearer split between IT Roles/Positions and the Processes... really ''throughout'' the Computing category... - [[User:Mjquinn id|Mjquinn_id]] ([[User talk:Mjquinn id|talk]]) 01:16, 5 September 2021 (UTC)
::{{reply|Mjquinn id}} We ''just'' merged [[Software engineer]] into [[Software engineering]]; the talk page section above has the discussion that led to that consensus. -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 02:46, 22 September 2021 (UTC)
:::And I believe that it was a mistake. But one that can be corrected. One page should explain the Job (Software Engineer); training, skills, mentality... and one should explain the process (Software Development) life-cycle...all of which is different scope from, but similar separation to [[System integration]] and [[Systems integrator]]... You also still have [[Software development process]] hanging around out there. We need to get back to guidelines and those discussions at [[Wikipedia:WikiProject Software]]. Maybe even up to [[Wikipedia:WikiProject Computer science]]. My 2c - [[User:Mjquinn id|Mjquinn_id]] ([[User talk:Mjquinn id|talk]]) 21:37, 22 September 2021 (UTC)
::::If the above comments are accurate, software engineers don't do software development, they do software engineering. There are also the reasons the articles were merged, namely ease of navigation for the specific questions posed, and the undesirable overlap in content. Is there some reasons those arguments which got consensus above are wrong? -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 23:26, 22 September 2021 (UTC)


==The lead section is confusing==
* "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.
The lead section explains that software engineering is [[Special:Diff/1066265728|"an engineering approach on a software development of systematics application."]] What is this supposed to mean? [[User:Jarble|Jarble]] ([[User talk:Jarble|talk]]) 00:31, 23 April 2022 (UTC)
* "[...] 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.


:I dunno, looks like an IP editor garbled it a few months ago. I rephrased based on the cited sources. Better? [[User:MrOllie|MrOllie]] ([[User talk:MrOllie|talk]]) 00:36, 23 April 2022 (UTC)
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.
::{{reply to|MrOllie}} Your wording of the text not quite the same as the original wording, which was [[Special:Diff/1064849118|confusingly paraphrased]] in a previous revision. [[User:Jarble|Jarble]] ([[User talk:Jarble|talk]]) 00:45, 23 April 2022 (UTC)
:::True, but I think it is much closer to the meaning of the citations, particularly the Laplante definition. [[User:MrOllie|MrOllie]] ([[User talk:MrOllie|talk]]) 00:49, 23 April 2022 (UTC)


== Texas Licensing Requirements ==
Software Craft is not something different from Software Engineering. Software Craft is a specific instance of Software Engineering.


I went looking for citations for the Texas licensing requirements. The best I can find is the law itself ([https://statutes.capitol.texas.gov/Docs/OC/htm/OC.1001.htm]). Sure enough, the term "engineer" is regulated here, in Sec. 1001.301.(b) of the Texas Occupations Code:
I have thus removed that paragraph.


{{tq|Except as provided by Subsection (f), a person may not, unless the person holds a license issued under this chapter, directly or indirectly use or cause to be used as a professional, business, or commercial identification, title, name, representation, claim, asset, or means of advantage or benefit any of, or a variation or abbreviation of, the following terms...(1) engineer}}
--[[User:Christianhujer|Christianhujer]] ([[User talk:Christianhujer|talk]]) 20:15, 8 July 2020 (UTC)


That "except as provided by subsection f" is doing a lot here. Subsection f states, paraphrased, that using "engineer" is allowed by individuals {{tq|exempt from the licensing requirements of this chapter under Sections 1001.057 or 1001.058}} so long as they're not offering professional engineering services to the public or using the title in a context that misrepresents them as a licensed professional engineer. Section 1001.057 states that requirements are waived for {{tq|a private corporation or other business entity, or the activities of the full-time employees or other personnel under the direct supervision and control of the business entity, on or in connection with...activities related only to the research, development, design, fabrication, production, assembly, integration, or service of products manufactured by the entity}}, and goes on to explicitly state {{tq|For purposes of this section, "products manufactured by the entity" also includes computer software, firmware, hardware...}}.
== Engineering is a higher-level skill that software developers do not have ==


I am not a lawyer and have no idea if this explicitly allows using the term "software engineer" with no restrictions, however I was unable to find ''any'' source (minus a couple stack exchange posts) claiming it's not allowed, and job listings for Software Engineer positions in Texas mostly do not seem to list professional certification in the requirements. I've erred on removing the claim altogether, since it seems that in practice the term is used in Texas by unlicensed software engineers. If someone else has a better read here or a source more clearly summarizing, feel free to re-add. [[User:Dylnuge|<span style="color: #1e79a1;font-weight:700;">Dylnuge</span>]] <sup>([[User talk:Dylnuge|''Talk'']] • [[Special:Contributions/Dylnuge|''Edits'']])</sup> 21:23, 23 June 2023 (UTC)
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.</br>
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|software engineer]]”, despite what this and that article claim.</br>
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.</br>
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 (“[https://www.bloomberg.com/news/articles/2019-06-28/boeing-s-737-max-software-outsourced-to-9-an-hour-engineers 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 (“[https://www.wired.com/story/boeings-737-max-cars-software/ What Boeing’s 737 MAX Has to Do With Cars: Software]”).</br>
Who’s to blame? Boeing? Or the manufacturers and propagators of the "software engineering" hype?</br>
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?</br>
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.</br>
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.</br>
Do not believe the hype. Programming is unrelated to engineering, software does not make products safe, and programmers are not engineers.</br>
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.</br>
[[User:Impediguy|Impediguy]] ([[User talk: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... <span style="color: #E12144">[[User talk:TRANSviada|<span style="color:#E12144">'''talk'''</span>]]'''&#64;'''[[User:TRANSviada|<span style="color:#E12144">'''TRANSviada'''</span>]]</span> 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.</br>
::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.</br>
::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.</br>
::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.</br>
::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. [[User:Impediguy|Impediguy]] ([[User talk: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 [[WP:RS|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"]] - [[User:MrOllie|MrOllie]] ([[User talk: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.[[User:Impediguy|Impediguy]] ([[User talk: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. - [[User:MrOllie|MrOllie]] ([[User talk: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 article.<span style="color: #E12144">[[User talk:TRANSviada|<span style="color:#E12144">'''talk'''</span>]]'''&#64;'''[[User:TRANSviada|<span style="color:#E12144">'''TRANSviada'''</span>]]</span> 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.[[User:Impediguy|Impediguy]] ([[User talk: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. [[User:Impediguy|Impediguy]] ([[User talk:Impediguy|talk]]) 01:50, 30 December 2020 (UTC)
::Which sources were you thinking of using in your new version? - [[User:MrOllie|MrOllie]] ([[User talk: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. [[User:Impediguy|Impediguy]] ([[User talk: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 [https://www.nspe.org/resources/pe-magazine/may-2018/ncees-ends-software-engineering-pe-exam], where they stated it was due to low participation. ASME often uses the term 'Software engineer' without qualification [https://www.asme.org/topics-resources/content/manufacturing-relies-more-on-software]. - [[User:MrOllie|MrOllie]] ([[User talk: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. [[User:Impediguy|Impediguy]] ([[User talk:Impediguy|talk]]) 18:42, 30 December 2020 (UTC)
: 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.


==Wiki Education assignment: Introduction to Technical Writing==
== The article has a loop: Software Development contains Software Engineering, but also Software Engineering contains Software Development ==
{{dashboard.wikiedu.org assignment | course = Wikipedia:Wiki_Ed/CSU_Los_Angeles/Introduction_to_Technical_Writing_(Fall_2024) | assignments = [[User:Javier0192|Javier0192]] | start_date = 2024-08-13 | end_date = 2024-12-17 }}
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.


<span class="wikied-assignment" style="font-size:85%;">— Assignment last updated by [[User:Javier0192|Javier0192]] ([[User talk:Javier0192|talk]]) 18:54, 27 September 2024 (UTC)</span>
== 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.

Latest revision as of 13:12, 29 October 2024


Wiki Education Foundation-supported course assignment

[edit]

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.

Above undated message substituted from Template:Dashboard.wikiedu.org assignment by PrimeBOT (talk) 09:44, 17 January 2022 (UTC)[reply]

Wiki Education Foundation-supported course assignment

[edit]

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. Peer reviewers: Monica Pramono.

Above undated message substituted from Template:Dashboard.wikiedu.org assignment by PrimeBOT (talk) 09:44, 17 January 2022 (UTC)[reply]

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)[reply]

@Nsereko Hamza: Arguably, mathematics is not a science, but some math knowledge is definitely required to be a professional software engineer. You might consider that computer programming is in general just a form of applied mathematics. Not all advanced math is needed, and there is some math specific to computer science like Big O notation. I think whether or not you need to study sciences like biology, chemistry, and physics depends on whether you get a certification or an undergraduate degree, and where from. For example, MIT requires all undergraduates to pass classes in all three of those subjects, no matter what their major. I don't think liberal arts colleges have the same science requirements, and certainly not if you are doing a non-college software engineering certification or boot camp. I'm not sure to what degree this should be explained in the article; would other readers benefit from mentioning any of that? -- Beland (talk) 03:05, 31 July 2021 (UTC)[reply]

Merge from Software engineer

[edit]

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]

@Johnnie Bob: You mentioned you have some thoughts on this merge proposal? -- Beland (talk) 07:36, 19 August 2021 (UTC)[reply]
@Beland: I don't think there is any rule against both article having some duplicated content. I just think that the reader would like to see what a software engineer article is as opposed to going through a software engineering article to look for it, which may be wee bit more forbidding. I don't know how many viewers the article its gets, but certainly it is probable more value at the moment, for the reader. Programmer was a term that was really common when I started writing software in the 90's. It was quite a common occurence, but now you barely hear it, except in the sense of looking back, and affirming something that was good and true. Is there a stand-out benefit to combining them? scope_creepTalk 19:18, 24 August 2021 (UTC)[reply]
@Scope creep: I added templates to the talk pages showing daily pageview charts. It looks like Software engineer gets about 600 views per day and Software engineering gets about 1100. (Programmer is getting about 1300 per day after the merge from software developer.) I think occupation/activity articles are usually combined because they are two aspects of the same subject, it's easier for readers to navigate fewer articles, and better context can be provided in a single article. For example,keeping two articles means that if your question is "What is it that software engineers do?" if you go to the software engineer article, you won't find the answer there. If your question is, "Are there degree requirements for software engineering?" and you go to the software engineering article, you won't find the answer there. (And actually that summarizes yet a third article which has more detail on that topic.) In each case, you'd need to discover there's a different article, in such a way that it occurs to you that this specific article (and not one of the many other articles we've linked) might have the answer to your question.
Peeking at WP:MERGEREASON, both duplicate content and significantly overlapping content have consensus as good reasons to merge articles. It definitely reduces the workload of article maintenance and improves quality if details are only presented once, and other articles only have summaries. -- Beland (talk) 22:45, 24 August 2021 (UTC)[reply]
Hi @Beland:. I tried to come up something last night. I was trying to find some research to support keeping them seperate articles but couldn't see much. Yip, it's pretty cogent argument for merging. Certainly, regarding the size of the project, finding the right information is getting harder and harder, as more articles are created. The removal of those Wikiprojects last year, that could have been used as starting entry points for searches, I thought was misplaced. So from that aspect, if it makes it easier to find info on it, then it is probably better to merge. scope_creepTalk 10:23, 25 August 2021 (UTC)[reply]
OK, I'll start in on it. -- Beland (talk) 19:34, 31 August 2021 (UTC)[reply]
Merge complete! -- Beland (talk) 07:19, 1 September 2021 (UTC)[reply]

Possible merge with software development

[edit]

@Beland: Just read through the software development article and had a glance at this software engineering article. I'm considering the possibility of merging these two articles together. There seems to be a decent amount of overlap between them, and from my understanding, the names "software developer" and "software engineering" are used interchangeably in terms of job titles. The name of the merged article should probably remain "software development" since that seems to be the more widely used title out of the two (I may be wrong though). Thoughts? Aitch & Aitch Aitch (talk) 20:43, 1 September 2021 (UTC)[reply]

Aitch & Aitch Aitch, they are not quite the same thing and you are proposing removing Software Engineering as a topic from Wikipedia, leaving only a redirect. Both articles, and the related software development process have grown through accretion by editors adding textbook topics. Software engineering's focus on the management of large projects has gotten lost. There is also confusion because business-oriented technology and programming is taught in busiess information technology departments in universities and computer science is taught in technical and engineering departments. Both talk about software development, and the ideas of software engineering are moving from technology companies to other businesses. It would be nice if Wikipedia articles made sense of this, but eliminating Software Engineering is not the way to do it. StarryGrandma (talk) 22:41, 1 September 2021 (UTC)[reply]
@Aitch & Aitch Aitch: I think merging would be an improvement. We can certainly find sources that say "software developer" and "software engineer" are used interchangably, and also that some organizations do make a distinction. (See Programmer#Terminology.) The "software engineering" article currently uses "software development" to describe the task more unambiguously called software construction. The "software development" article covers the broad array of tasks and treats "software development" and "software engineering" as synonyms, which is what makes them mergeable.
@StarryGrandma: Merging the articles isn't "eliminating Software Engineering" from Wikipedia. The resulting merged article should discuss the specific techniques and considerations some people mean when they say "software engineering", and link to the article on professional aspects of software engineering. I don't see a bright line between "engineering" techniques and "software development methodologies", though - they both encompass pre-coding design, and post-coding testing, maintenance, etc. And they both include the management of projects large and small. So I'm having trouble imagining how to exclude "engineering" from an overview of "software development" in the broad sense. The other way around would also be difficult...we might try to scope for example, Agile software development to cover the social aspects of project management with something to say about testing tools, but the "software engineering" part of Agile is only the actual programming and testing. But that's the opposite of the claim that software development is narrow and software engineering includes all the project management extras. People just use both terms in both broad and narrow senses. -- Beland (talk) 01:23, 2 September 2021 (UTC)[reply]
@Beland: @StarryGrandma: Yeah I wasn't suggesting removing software engineering as a topic, I was suggesting merging the two articles together into one concise article since there seems to be a lot of overlap between the two. I'm not particularly an expert at this so I don't really know where to start. I was thinking that the current individual articles should be cleaned up a little before the merge since there is some vague wording and unsourced claims on both articles. Aitch & Aitch Aitch (talk) 20:14, 2 September 2021 (UTC)[reply]

@Beland and Aitch & Aitch Aitch: have not run into another discussion here where I have been at loss for words, but this one has done it. I admit to a few days of being completely speechless. Now I will try to explain without this turning into an academic lecture on the topic. You are proposing blanking the article on the area of software research in which I earned my masters degree in computer science and turning it into a few paragraphs in the software development article.

Software engineering is not another word for software development. It is one particular approach to software development, with an emphasis on quality. This was driven initially by government and military concerns in the US and Europe about the poor state of the products they were being delivered from large-scale, expensive projects. The Department of Defense has funded much of the research in this area and even had a computer language created. Most software development is not done in this way. Technical companies started calling their developers software engineers and more recently people have been referring to software development in some areas as software engineering. But the article is about the topic of software engineering whose history is given at History of software engineering.

The confusion between software engineering and software development is also understandable because the article contains so little information about the field of software engineering. The article is one of the oldest in Wikipedia. It predates the current database so we don't have the oldest edits. The earliest one we have is 14 November 2001 (and it removes most of the article with the comment "minor copyediting"). There have been 5194 edits since. Sometimes the article has had content about the actual topic of software engineering, as it did early on; sometimes it was mostly about other things. Most SE related stuff is no longer in it or was never in it. Early edits happened before sources were required for material which was available in textbook. Much of the editing seems to have been from students adding textbook-type material rather than from scholarly or technical sources.

Universities encourage a careful approach to writing software by trying to influence students. There are two paths to becoming a computer programmer at a level above just writing code. (You can get 2-year degrees in software development at community colleges.) If you want to work for technical companies you take courses in computer science. The course that introduces the full range of software development is called Software Engineering and is taught using one of the textbooks titled Software Engineering. If you are interested in business computing you take courses in information technology. In IT the course that introduces the full range of software development is called Systems Analysis and Design and is taught from one of the textbooks with the same name. Systems Analysis and Design is business computing's approach to development that emphasizes quality. (Wikipedia doesn't have an article on this and it should. It's history and development is also very interesting.) See the tables of contents and introductions at

  • Sommerville, Ian (2016). Software engineering (10th ed.). Boston: Pearson. ISBN 978-0-13-394303-0. OCLC 907941065.
  • Dennis, Alan (2019). Systems analysis and design. Hoboken, NJ: Wiley. ISBN 978-1-119-58585-5. OCLC 1050457747.

Note that the descriptions of software development are different in the two books.

What really matters is not what students learn but how the companies they will work for approach software development. One of the developments in software engineering was a mechanism for customers to be assured that the software they contract for will be developed using the these methods. The Software Engineering Institute (SEI) at Carnegie Mellon University, funded by the Department of Defense, developed Capability Maturity Models which assessed a company's software development process. Government contracts required meeting a certain level, and other companies required that their suppliers meet certain levels. Whether that was at all successful is unclear, and the SEI no longer does the assessments.

Software Engineering is a large enough topic with a 50 year history and can't be summed up concisely in the article on software development. That article is already written in summary style with sections having main articles of their own anyway. A major topic in computing meets Wikipedia's requirements for having an article. — Preceding unsigned comment added by StarryGrandma (talkcontribs) 21:54, 3 September 2021 (UTC)[reply]

@StarryGrandma: Thanks for the info. Based on what you've said, I can see that keeping the two articles separate is the best decision. I think the core problem is that the articles need to be brought to a higher standard. The "software development" article seems to be in better shape overall but its opening paragraphs (among other parts) are in poor condition. The "software engineering" article needs a lot more work since there are chunks of completely unsourced content. As for the "history of software engineering" article, I would support the idea of it being merged with the "software engineering" article. Starry Grandma, you clearly have a lot more knowledge than me on these topics so I'll ask you if merging "software engineering" with "history of software engineering" is a good idea. All I know for sure is that all three of these articles need a lot of improvement. Aitch & Aitch Aitch (talk) 13:33, 4 September 2021 (UTC)[reply]
@StarryGrandma: What would you consider the correct fix to Template:Software development process? Would "Software engineering" move to the "Paradigms and models" section? Would the first section title then just be "Core activities" implying they could belong to any approach to software development? -- Beland (talk) 03:04, 22 September 2021 (UTC)[reply]
Beland, setting the first section title back to "Core activities" is good. Put Software engineering at the top of the of the "Paradigms and models" section. Most of the topics in that section are also part of current software engineering. If Systems analysis and design ever turns into a real article covering this it can go there too. StarryGrandma (talk) 23:11, 22 September 2021 (UTC)[reply]
OK, I made that change to the template. I also added a note to the intro of Software development saying software engineering is one approach. I downloaded the SWEBOK and found it likewise uses "software construction" where software engineering was using "software development". The SWEBOK considers "software development" to be the whole process, as you do. I aligned the article with the source, so that should fix the long-standing confusion of why both of them seemed to include the other.
In my professional experience, it's not necessary to get a 2-year or 4-year or master's degree to get a computer engineering job. I've met people in those jobs who have physics degrees, who got a humanities degree and went to a programming bootcamp. One of my co-workers who never graduated high school and never went to college was self-taught, and she knew more and was a better engineer than the Tufts and MIT grads. I took Software Engineering at MIT from Barbara Liskov, and her book doesn't have "software engineering" in the title.
I'm not sure there really is a difference between good software development techniques and good software engineering techniques other than branding, as the SWEBOK includes multiple programming methodologies that both were and weren't taught at school, some of which just seem to come from best commercial practices. "Systems analysis and design" looks like a classic "waterfall" style process, but SWEBOK, for example, covers waterfall, agile, TDD, and other approaches. Waterfall model might be a good place to describe SAD if you think it's a noteworthy variant.
If you have specific topics you would like to see added to the software engineering article, that would be more actionable than describing its 20-year history. We might already cover the desired topics in other articles; I'm happy to see what we have and what's missing. -- Beland (talk) 00:40, 23 September 2021 (UTC)[reply]

Role vs. process

[edit]
It strikes me that Software Engineer(ing) should be about the ROLE of software creator or the POSITION of a "Software Engineer"; where software development should be about the PROCESS...maybe? Just seems like we need a much clearer split between IT Roles/Positions and the Processes... really throughout the Computing category... - Mjquinn_id (talk) 01:16, 5 September 2021 (UTC)[reply]
@Mjquinn id: We just merged Software engineer into Software engineering; the talk page section above has the discussion that led to that consensus. -- Beland (talk) 02:46, 22 September 2021 (UTC)[reply]
And I believe that it was a mistake. But one that can be corrected. One page should explain the Job (Software Engineer); training, skills, mentality... and one should explain the process (Software Development) life-cycle...all of which is different scope from, but similar separation to System integration and Systems integrator... You also still have Software development process hanging around out there. We need to get back to guidelines and those discussions at Wikipedia:WikiProject Software. Maybe even up to Wikipedia:WikiProject Computer science. My 2c - Mjquinn_id (talk) 21:37, 22 September 2021 (UTC)[reply]
If the above comments are accurate, software engineers don't do software development, they do software engineering. There are also the reasons the articles were merged, namely ease of navigation for the specific questions posed, and the undesirable overlap in content. Is there some reasons those arguments which got consensus above are wrong? -- Beland (talk) 23:26, 22 September 2021 (UTC)[reply]

The lead section is confusing

[edit]

The lead section explains that software engineering is "an engineering approach on a software development of systematics application." What is this supposed to mean? Jarble (talk) 00:31, 23 April 2022 (UTC)[reply]

I dunno, looks like an IP editor garbled it a few months ago. I rephrased based on the cited sources. Better? MrOllie (talk) 00:36, 23 April 2022 (UTC)[reply]
@MrOllie: Your wording of the text not quite the same as the original wording, which was confusingly paraphrased in a previous revision. Jarble (talk) 00:45, 23 April 2022 (UTC)[reply]
True, but I think it is much closer to the meaning of the citations, particularly the Laplante definition. MrOllie (talk) 00:49, 23 April 2022 (UTC)[reply]

Texas Licensing Requirements

[edit]

I went looking for citations for the Texas licensing requirements. The best I can find is the law itself ([1]). Sure enough, the term "engineer" is regulated here, in Sec. 1001.301.(b) of the Texas Occupations Code:

Except as provided by Subsection (f), a person may not, unless the person holds a license issued under this chapter, directly or indirectly use or cause to be used as a professional, business, or commercial identification, title, name, representation, claim, asset, or means of advantage or benefit any of, or a variation or abbreviation of, the following terms...(1) engineer

That "except as provided by subsection f" is doing a lot here. Subsection f states, paraphrased, that using "engineer" is allowed by individuals exempt from the licensing requirements of this chapter under Sections 1001.057 or 1001.058 so long as they're not offering professional engineering services to the public or using the title in a context that misrepresents them as a licensed professional engineer. Section 1001.057 states that requirements are waived for a private corporation or other business entity, or the activities of the full-time employees or other personnel under the direct supervision and control of the business entity, on or in connection with...activities related only to the research, development, design, fabrication, production, assembly, integration, or service of products manufactured by the entity, and goes on to explicitly state For purposes of this section, "products manufactured by the entity" also includes computer software, firmware, hardware....

I am not a lawyer and have no idea if this explicitly allows using the term "software engineer" with no restrictions, however I was unable to find any source (minus a couple stack exchange posts) claiming it's not allowed, and job listings for Software Engineer positions in Texas mostly do not seem to list professional certification in the requirements. I've erred on removing the claim altogether, since it seems that in practice the term is used in Texas by unlicensed software engineers. If someone else has a better read here or a source more clearly summarizing, feel free to re-add. Dylnuge (TalkEdits) 21:23, 23 June 2023 (UTC)[reply]

Wiki Education assignment: Introduction to Technical Writing

[edit]

This article was the subject of a Wiki Education Foundation-supported course assignment, between 13 August 2024 and 17 December 2024. Further details are available on the course page. Student editor(s): Javier0192 (article contribs).

— Assignment last updated by Javier0192 (talk) 18:54, 27 September 2024 (UTC)[reply]