This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of
computers,
computing, and
information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join
the discussion and see a list of open tasks.ComputingWikipedia:WikiProject ComputingTemplate:WikiProject ComputingComputing articles
This article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of
Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join
the discussion and see a list of open tasks.Computer scienceWikipedia:WikiProject Computer scienceTemplate:WikiProject Computer scienceComputer science articles
This article is within the scope of WikiProject Engineering, a collaborative effort to improve the coverage of
engineering on Wikipedia. If you would like to participate, please visit the project page, where you can join
the discussion and see a list of open tasks.EngineeringWikipedia:WikiProject EngineeringTemplate:WikiProject EngineeringEngineering articles
This article is within the scope of WikiProject Technology, a collaborative effort to improve the coverage of
technology on Wikipedia. If you would like to participate, please visit the project page, where you can join
the discussion and see a list of open tasks.TechnologyWikipedia:WikiProject TechnologyTemplate:WikiProject TechnologyTechnology articles
This article is within the scope of WikiProject Software, a collaborative effort to improve the coverage of
software on Wikipedia. If you would like to participate, please visit the project page, where you can join
the discussion and see a list of open tasks.SoftwareWikipedia:WikiProject SoftwareTemplate:WikiProject Softwaresoftware articles
This article is within the scope of WikiProject Systems, which collaborates on articles related to
systems and
systems science.SystemsWikipedia:WikiProject SystemsTemplate:WikiProject SystemsSystems articles
This page has archives. Sections older than 180 days may be automatically archived by Lowercase sigmabot III when more than 8 sections are present.
Wiki Education Foundation-supported course assignment
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.
Wiki Education Foundation-supported course assignment
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.
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 (
talk •
contribs)
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
There is an inconsistency: "Design, Maintenance, Requirements and Testing" belong to Software Development and Software Engineering at the same time
The overview table at the right says the following: Software Development core activities: (Software) Requirements, (Software) Design, (Software) Testing, (Software) Maintenance .... However, the body of the article says: Fields (of Software Engineering): ... Software Requirements, Software Design, Software Testing, Software Maintenance. Each practice should belong to either Software Development or Software Engineering, but not both at the same time.— Preceding
unsigned comment added by
88.0.117.22 (
talk •
contribs)
03:05, 27 May 2021 (UTC)reply
Given that "software engineering" and "software development" are sometimes used as synonyms, and when they are not synonyms substantially overlap, I think the fact that those fields are described as applying to both, is fine. --
Beland (
talk)
02:48, 31 July 2021 (UTC)reply
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. scope_creepTalk10:56, 24 August 2021 (UTC)reply
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...
@
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_creepTalk19: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_creepTalk10:23, 25 August 2021 (UTC)reply
@
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
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 (
talk •
contribs)
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
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
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
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
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(
Talk •
Edits)21:23, 23 June 2023 (UTC)reply