Talk:Software engineering

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

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 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 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]

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

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 (talkcontribs) 03:05, 27 May 2021 (UTC)[reply]

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

Merge from Software engineer[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]