text:
Talk:Software engineering/Archive 3

Previous comments

 * Talk:Software engineering/Archive 1
 * Talk:Software engineering/Archive 2

Profession?
Why is PROFESSION part of the definition ? René Bach, Switzerland rrene@acm.org.

Admiral Grace Hopper? Some justification, please
I would like to see some explanation or evidence for the inclusion of Admiral Grace Hopper as a "pioneering software engineer." It's clear that there is at least some controversy over the term "software engineering," and naming her as a "pioneering software engineer" seems to me to be enlisting her on a particular side of that controversy. And I'm not at all sure she belongs there.

I'd like to see some quotation or published remark that shows that she used the term "software engineering" herself and showed an awareness of and alignment with the "software engineering" community and its concepts.

The first Google hit on Grace Hopper is: Grace Hopper, Pioneering Computer Scientist; and the Wit and Wisdom of Grace Hopper page does not contain the word "engineering." Dpbsmith 20:55, 21 Apr 2004 (UTC) Neither does Wikipedia's article on Grace Hopper. Dpbsmith 16:58, 22 Apr 2004 (UTC)

Of course, this biography mentions that she was a "Research Fellow in Engineering Sciences," "Systems Engineer," "Lecturer at the Moore School of Electrical Engineering," "Fellow of the Institute of Electrical and Electronics Engineers," etc. so I can see how this discussion is likely to go... but of course, before "Computer Science" was invented in the late seventies... and much brouhaha there was about that, too... all computer stuff was considered to be a kind of electrical engineering. So she was an engineer... but was she a software engineer? Dpbsmith 21:06, 21 Apr 2004 (UTC)

I'm going to remove her name for now. Please put it back if you have a reasonable case for her inclusion. Dpbsmith 17:00, 22 Apr 2004 (UTC)

 * How is it that you justify the other names in that list?  By what criteria does one determine who the pioneers are?  For example, what timeframes would be appropriate for the term "pioneer" to be associated with that list.  - Bevo 18:42, 22 Apr 2004 (UTC)

 * All I can say is that when I looked at the list of names, I thought "One of these names is not like the others, one of these names doesn't belong."

 * The issue is not who's a pioneer. Admiral Hopper was IMHO certainly a computer pioneer. But I don't think she espoused the viewpoints usually associated with "software engineering." As for the other names on the list... I didn't really consider them. Since the article says that software engineering "emerged as a bona fide profession" starting in the mid-nineties, so I'd think anyone who was clearly identifiable as working in software engineering prior to the mid-nineties would count as a pioneer.

 * Why did you leave the other mention of Grace Hopper in the article if you don't feel that she was a software engineer? - Bevo 18:44, 22 Apr 2004 (UTC)

 * Because I didn't notice it. Now you've called my attention to it, I see that the context seems to be merely the role of women in computing generally. It seems to me that the sentence says: Hopper and other women filled "programming" jobs during the "1940s, 1950s, and 1960s". It also, it seems to me, is saying that those decades were "the first several decades of software engineering."

 * If all software writing done in the 1940s, 1950s, and 1960s was "software engineering," then certainly Hopper was a very notable software engineer. And indeed some parts of the article do seem to take the view that all software writing is software engineering.

 * However, I believe that the phrase "software engineering" these days usually carries some definite semantic baggage with it: it is a specific approach to the task of writing software. I think this is clear from other parts of the article. For example, one part of the article specifically classifies Edsger Dijkstra, Donald Knuth, and Alan Turing as not being software engineers. Hopper's most notable contribution might be the development of COBOL; Dijkstra's, the development of ALGOL. These are very parallel achievements and to me would suggest that they belong in the same category, as does Hopper's original background in mathematics.

 * In other words, if "software engineer" is just a courtesy title for "good programmer," sure, she was a software engineer. But if "software engineer" means management techniques, adherence to well-specified methodologies, use of CASE tools, etc. then it's not so clear. Dpbsmith 19:29, 22 Apr 2004 (UTC)

 * Perhaps Kent Beck should be removed from the list as well. See especially SE pioneer David Parnas article http://www.xp2003.org/xp2002/talksinfo/parnas.pdf - Bevo 02:42, 23 Apr 2004 (UTC)

Grace Hopper built the first compiler for the Mark 1, and compilers are probably the most important tools that SEs use. Also, she is famous for "it is easier to get forgiveness than permission" which is a very XP way of working. She did not set out to be a software engineer, but David Parnas probably did not set out to be a software engineer, either.

As for who should be on the list, that is an excellent question. The CS page debated a similar question for about 6 months last year. The criteria I used, was that I wanted 5 or 6 names from the list of software engineering topics pages that gave a sense of how big and broad the field is. Beck and Humphrey go together like yin and yang, showing opposite ways of doing process. Hopper was from the first generation, Beck is from "the most recent" generation. Once again, like yin and yang showing change over time. Boehm, Brooks, and Parnas are the heros from the first generation to meaningfully use the term software engineering. Yet, they are not the first generation to work on these issues, nor were they the last.

There are lots of ways to choose the top 5 or 6 names.

 * It's not a question of "who's the top," it's a question of "what does software engineering mean?" And the more I look at this article, it seems to me that the article has a severe, severe problem. "Software engineering" is being used to mean at least two distinct things.

 * As an umbrella term, for anything having to do with the production of software
 * As a specific term for a specific school of thought about the organization and procedures for developing software... a school that draws a distinction between engineering, science, art, and craft and distinctly advocates the use of an engineering model for producing software.

 * Now, the Pioneers list from List of Software Engineering Topics obviously uses the "lumper" definition, as it includes Edsger Dijkstra and Donald Knuth... yet Software Engineering uses the "splitter" definition when it declares that Dijkstra and Knuth are not "software engineers," but "computer scientists."

 * Personally, when I look at the Pioneers list, I certainly put Kent Beck, Grady Booch, Fred Brooks, Watts Humphrey, Winston Royce, Gerald Weinberg, Ed Yourdon in a different category from Backus, Dijkstra, and Knuth. And to me, Admiral Hopper belongs with the latter, not the former.

 * The supposed definition that heads the article is no help. In fact it's a mess. It says "the profession concerned with creating and maintaining software applications by applying computer science." Now, the term "computer science" did not exist prior to, I dunno, the early seventies. It seems to me it's pretty hard to decide whether Backus or Hopper or the ALGOL folk can be properly described as "creating and maintaining software applications by applying computer science." It's even harder for me to figure out where, in "The Psychology of Computer Programming" (Weinberg), or "Handbook of Walkthroughs, Inspections, and Technical Reviews" (Weinberg) or "Extreme Program Explained" (Beck), you can point to an example of the "application of computer science."

 * Meanwhile, throwing in that term "profession" clouds the issue further. Someone who contributes to Linux without being paid for it is doing it for the love of it, and is therefore by definition an amateur. If software engineering is a profession, than most Linux contributors are not software engineers... at least not while contributing to Linux. That makes no sense to me.

 * Anyway, I still think that if you write "Kent Beck, Barry Boehm, Fred Brooks, ___________, Watts Humphrey, David Parnas," that "Admiral Grace Hopper" is not an obvious fit.

 * Dpbsmith|Dpbsmith]] 23:18, 23 Apr 2004 (UTC)

 * Do you consider the "Extreme Programming" methodology to be an engineering methodology? - Bevo 01:04, 24 Apr 2004 (UTC)

 * An "engineering methodology?" What's that? My limited experience is that—outside of software—people who call themselves "engineers" don't talk about "methodologies." Dpbsmith 01:23, 24 Apr 2004 (UTC)

 * Indeed, I just checked:

 * "aerospace engineering methodology" = 2 Google hits
 * "chemical engineering methodology" = 28 Google hits
 * "civil engineering methodology" = 7 Google hits
 * "electrical engineering methodology" = 10 Google hits
 * "mechanical engineering methodology" = 18 Google hits
 * Your search - "Mining engineering methodology" - did not match any documents
 * "software engineering methdology" = 5560 Google hits

 * I don't know exactly what that means, but it has to mean something. Dpbsmith 01:23, 24 Apr 2004 (UTC)

 * Read the article Methodology. Look at the use of the word in this Software engineering article.   Google for "engineering methodology" and I get 18,000 hits.  Google for the term "software engineering and methodology" and I get 19,300 hits. It's a well-established term. - Bevo 01:36, 24 Apr 2004 (UTC)

 * I know what a "methodology" is. And I know what a "software engineering methodology" is. I am questioning the phrase "engineering methodology" because I don't believe that other branches of engineering indulge much in "methodologies."

 * All of the examples in the Methodology article refer to software engineering or project management, and if you changed the title to "Software Engineering Methodology," only two sentences would need rewriting.

 * Change your Google search from "engineering methodology" to "engineering methodology" -software and the number of hits drops to 4560, most of which concern information systems or other computer-related topics. Change it to "engineering methodology" -software -information to exclude these and it drops to 1660.

 * Software engineers talk a lot about "methodologies." Other engineers do not. Dpbsmith 20:06, 24 Apr 2004 (UTC)

 * I suppose that indicates that "software engineering" is not a true engineering endeavor. Perhaps you don't get to the maturity of legitimately using the label "engineering" until you only have one proven and universally practiced way to do something. - Bevo 14:22, 25 Apr 2004 (UTC)

 * There are many ways to build bridges, many ways to build houses, many ways to build radios. Engineering has many, many methodologies, not just on. Perhaps engineers do not do engineering?

Oh, that Conclusion
...that says how big, important, proud, etc. the software engineering profession is? Does it communicate any information at all? Or is it pure marketing?

I don't suppose it would be possible to quietly remove it or otherwise put it out of its misery? Reminds me of an old promotional film for Project Whirlwind which ends:

 * We have told you the story of one problem recently solved on one digital computer. Multiply this by hundreds of problems being handled routinely by a hundred such computers and you have an idea of the current importance of the digital computer as a new tool to help scale some of the hitherto insurmountable peaks which span the domain of man's activities!

Cue music. Dpbsmith 16:25, 29 Apr 2004 (UTC)

 * You make a good point. I looked around and found no other articles on Wikipedia that have conclusion sections. And this text is very (overly?) "apple pie".

 * Here are 2 reasons to keep a conclusion like this one. First, the text before the conclusion is a major downer: all about the criticisms of SE. It would be nice for those who read the text from front to back to be left with a positive vibe about SE. People often remember what they read last. One alternative is to find some positive or neutral content to put at the end. Second, many technical articles (though not Wikipedia, yet) identify a few clear points for readers to remember, these key points are often restated in the conclusion. I wonder what handful of key points the other authors of theis article want readers to remember, and where should they be listed?

Restructuring of page
I hope you agree with breaking up the software engineering article in several smaller articles (and moving lots of talk to the archived talk). I know, this was very rough cut, but I hope time will smooth it out again... :) --denny vrandečić 21:59, Jun 27, 2004 (UTC)

 * Thanks, it really needed it.

Disagree with the latest precis at the top of the article.
The latest commenting-out of "poorly formed sentences" in favor of non-nuanced lists is a regression. Better to have the detail than the stereotypes in the current lists which make up the wikilinks. The current changes to the first paragraphs bowdlerize and trivialize it. The software tools which were previously mentioned aren't necessarily in the replacement lists. Ancheta Wis 01:43, 22 Jul 2004 (UTC)

 * I agree. A common mistake in hypertext documents is to assume that readers will click on all of the links and understand what all of the links mean. If that happened, readers would have to click on everything in Wikipedia to understand 1 page.

 * I believe that each page should stand on its own, at least a little bit. A casual reader should find enough details on each page to understand something about the topic, without any additional clicks. And the text around each link should give the reader enough context so they can choose whether to click on a link or not. Note: This principle is the opposite of "information hiding" that is used to design software for computers.

 * This means that the first paragraph or so of the SE article should list enough concrete applications that naive readers would understand (a little bit) what we mean by "application", and should list enough technologies and practices, that they would understand (a little bit) what we mean by "technology and practice".

 * Examples were removed under the guise of "peacock terms". But, there were no peacock terms in the text. Peacock terms are "an important..." "one of the most important..." "one of the best..." "the most influential..." "a significant..." and so on.

 * Another stated principle of Wikipedia is "Show; don't tell". Concrete examples are much more like "show; don't tell" than abstract generalizations. So, I have reinstated the examples.

 * The only real reason to remove examples I can think of, is because someone disagrees with whether the examples are valid. For example, some argue that embedded-software is engineered, but office suites are not because they have so many problems with crashing and security. But, that would be a debate over what software engineering is, rather than a debate over peacock terms.

 * I urge Kenny to explain his rationale for deleting the examples. Perhaps then we can find a way to change the intro to meet our common goals.

 * embody social and economic value, by making people more productive, improving their quality of life, and enabling them to do things that would otherwise be impossible. help developers, by improving productivity and quality. -- it is communist slogans, not definitions. Abstract. Senseless. Metaphoric. Emotions in form of words. Better to write something like this: Software is usefull. For exaple word processor is very usefull in text editing. For more examples see ... Software created by prgammers with software tools. Most common software tool is compiler. For more software tools see programming tool
 * Long enumerations is sentences used in Ericksonian hypnosis to misslead consciousness. Example: A, B, C, D and F and may be also G, H and J, if K and L will join too will do M, N and O for P, Q and R for S, T and W.
 * Write "Examlpes:" before examples. Do not oveload with exaples, I think 1,2 3 is enogh. Write most common examples.
 * Thank you. Kenny 14:32, 2004 Jul 28 (UTC)

 * I can agree with you about separating out examples into a separate sentence using the prefix "Examples:". I did that.
 * I do not yet agree that examples should only have 1,2, or 3 examples is enough. On the List of software engineering topics page, there are more than 100 applications and more than 200 technologies and practices. It may take a list of 6 or 8 examples to show diversity of applications / technologies and practices.
 * A too lot of examples is not effective. Please read The Magical Number Seven, Plus or Minus Two. This number of words in sentence is ideal. List of software engineering topics is full comprehensive ordered list. Kenny 09:54, 2004 Jul 29 (UTC)
 * Many, many clear and important sentences have more than 9 words. The point of writing is to communicate clearly. Please avoid using simplistic rules to justify bad writing.
 * Let me assure you that I live in the U.S. and I oppose communism. I believe it is important to show SE in a good way, just like everyone else should want to show their favorite topic in a good way. That is common sense communication. The reason to say the technologies and practices are there for productivity and quality, is because it is true. If you do not care about productivity or quality, then you may be a programmer, but not a software engineer. The reason to say that applications improve people's lives, is because it is true. People enjoy playing video games, which would be impossible without software. People have lower cost telephone service (more value) because of software. The Agile Software Development publishes many papers and books about creating "social and economic value".
 * Ok, yes, productivity, quality, entertaiment is important. Also there is a lot of other important topics, and not only SE improves quality.
 * Critic of "SE applications embody social and economic value by making people more productive"
 * this article about SE, not SW and SW applications.
 * Avoid_peacock_terms
 * IMHO, I see nothing interesting, usefull, in this sentence. The sense of this sentence is same and "Pencil embody social and economic value by making people more productive". The only meaningful interpretation on this phrase I found is: "Software is usefull for people."
 * After I've read this sentence, I have this questions:
 * What is "social and economic value"?
 * Making people more productive for ....?
 * Only SE applications are valuable?
 * How SE applications making people more productive?
 * SE applications make people only more productive?
 * SE applications make only people more productive?

 * I agree that this page is about SE and not SW. To contrast, SE people write core applications, while business people write spreadsheet templates, lots of people write VB scripts, artists write animation scripts, and scientists write simulations. All of that is software. Trying to clarify this distinction is a good reason to show the diversity SE applications.

 * Scientific applications are more about understanding nature than about making people productive. Software engineers write the compilers that make the scientists more productive. Animation scripts are more about making visuals to an artist. Software engineers write the animation engines that make the artists more productive. SE has a different emphasis than other professions that write software.

 * Yes, this is right. Kenny 15:46, 2004 Jul 29 (UTC)

 * We agree on that.

 * I believe that one important distinction, is that most SE software is purchased for one reason or another. (Note that the free software projects often recreate programs that have been sold for a long time.) Users buy the software because they want to use it for a reason. In office automation and robotics, it is to improve the productivity of workers. In the case of visual special-effects and video games, it is to have fun. These are examples of "social and economic value". Perhaps "value" needs to be explained better or use better examples.

 * Also, I believe that the first 2 or 4 paragraphs should show what SE is and start to explain that it is not all software. These paragraphs cannot make an exact distinction, because that would take too many words. (That is what the whole article is for.) But these paragraphs should start to introduce some of the key distinctions.
 * I'll be back in 3 days. Software engineering need nore rework. Kenny 19:20, 2004 Jul 29 (UTC)

Don't see the point of this section or sentence
There is currently an entire section called Software engineer whose content is:

 * A profession, which cares with creation of software with software engineering called software engineer, programmer or developer.

I tried to rewrite it, but I don't understand what it means or what the purpose of the section is supposed to be. Does it mean:

 * A software engineer is a professional devoted to the creation of software via the application of software engineering principles. A software engineer may also be called a programmer or developer.

If not, what does it mean? Is it worth a whole section just to explain that a "software engineer" is someone who does "software engineering?" [[User:Dpbsmith|Dpbsmith (talk)]] 16:22, 30 Aug 2004 (UTC)

I think that your's is better but, as someone with a degree in "software engineering" I am a little disturbed by how much this article likens software engineers to programmers. My University makes a clear distinction between a computer engineer (from the college of engineering), a computer scientist (from the college of science), and a computer information systems major (from the college of business). True, in all 3 programs we learn to code, but the purpose of software engineering (a part of computer engineering) is to take a set process to the development and integration of software into a system. Engineering is the application of science into the real world and can't be done properly if you understand only how code works and not why code works. I'd like to see this article (and the world in general) come to some clearer definitions between programmers, application architects, and software engineers. Cavebear42 23:36, 30 Aug 2004 (UTC)
 * True that! DaBeast

To make more international
To make this more international, the issues such as economics and famous people needs to become more international (less biased to U.S.). To do this, we need data from Europe and Asia. So, what is the economic impact of SE in Europe and Asia? Who are the SE pioneers in Europe and Asia?

Remove
Removed the following sentence, because it directly contradicts itself.

 * Without the engineering approach, the code can be difficult to maintain or debug, but an engineering approach does not guarantee quality code without bugs.

Waterfall
"The waterfall has been widely discredited in practice, though many people still seem to idealize it."

Where and how has "the waterfall been widely discredited?"

I do not advocate it, but I want to see this sentence clarified and evidence cited.

If it means simply "The waterfall method is no longer in fashion" or "large developers like Microsoft do not use the waterfall method" then that is what should be said.

If it means "The waterfall method has been shown to be inferior to other methodologies" then that is what should be said.

In both cases, evidence for the assertion should be cited.

 * The Spiral model (and others) succeed because the Waterfall fails. I am not aware of a single large project that has ever been successfully driven by a requirements doc, except where that project had undergone many previous iterations. Even the US DOD agrees about this. The pragmatists in SE widely agree that the Waterfall is a catastrophe.

 * However, good criticism is hard to say. Alas, the Waterfall is still very fashionable with many people (for example formal methods people, and some project management people) who use it justify their own point of view. For them, the Waterfall is far more superior and successful to the Spiral, Chaos, Scrum, or other models. Also, the Waterfall is very simple, and most SE textbooks begin by teaching the Waterfall because it is so simple.

 * Please help find a better way to say this.

What really bothers me about software methodologies is my impression that they simply come in and out of fashion for no particular reason other than the personal influence and salesmanship of exponents. Each methodology is always accompanied by flat assertions that it has been proven in practice, but the "proofs" I've seen seen usually anecdotes ("case studies,") and are often accompanied by unrealistic requirements for success (must have everyone's buy-in, must have the backing of upper management, etc.) They are often discussed in a way that implies a background of data which is always assumed but never actually presented.... [[User:Dpbsmith|Dpbsmith (talk)]] 19:41, 6 Oct 2004 (UTC)

 * Good point. This is one of the main criticisms of all methodologies. The page Methodology (software engineering) lists a couple more related criticisms.

 * Methodologies was one of the main areas of software engineering over the last 20-30 years. Even today, there is a huge amount of time and energy devoted to methdologies(including RUP, Agile, CMM ...). I think this SE page should *briefly* discuss methodologies and point to the other page. But like I said, saying it well is hard. Do you have any thoughts on what it should say?

Why are we making judgements on how well a process works? I think we should state what the waterfall method is, since it is so prevalent, and leave it at that. Then when we discuss iterative methods or the spiral method, we can say that those methods attempt to build on the waterfall model by accounting for the element of risk. Of course, each methodology will have something unique to itself, something in its design/philosophy that accounts for something the others don't.

Remove

 * This article attempts to be neutral on this issue, but errs on the side of being independent to clarify the differences between fields.

Quotes
These 2 quotes are pretty cynical and down. In a similar vein, one could describe Winston Churchill as "a politician who lost a bunch of elections." Can we not find much better quotes about SE?

 * I don't believe you can get much better than Edsger Dijkstra and Fred Brooks, and I would be opposed to replacing these quotations with gee-whiz happy talk. [[User:Dpbsmith|Dpbsmith (talk)]] 17:34, 19 Nov 2004 (UTC)

 * I think one can almost always do better than Dijkstra. The only person more cynical the Dijkstra is Neumann. Boehm and Parnas would both be much better (more true to SE) than Dijkstra.

 * What the heck do you mean by "more true to SE?" I cannot imagine someone saying "let's remove the quotation from John A. Roebling and replace it with one from Othmar Ammann because Ammann is more true to civil engineering than Roebling." This whole article reads more like a marketing department's white paper than an encyclopedia article about a branch of engineering. [[User:Dpbsmith|Dpbsmith (talk)]] 20:36, 23 Nov 2004 (UTC)

 * You have one point, but only one point. Dijkstra was reknowned for his goals to make SE more mathematical. He made many important contributions to SE. But, his biases show he is rather narrow-minded, perhaps fanatical. He also showed a lot of contempt for commerical software and practitioners.

 * On the other hand, Parnas and Boehm have both worked in industry, and except for a few stray comments here and there, they both showed respect for commercial software and practioners. They also tolerated a much wider range of ideas of what good SE practice is.

 * I believe that one cannot define SE without including practice, and in this respect Dijkstra is totally out of touch with reality.

Kent Beck
Why isn't he a pioneer? His promotion and popularization of the XP concepts seemed pretty radical and pioneering to me at the time. And even where the whole XP method hasn't been adopted, a lot of its ideas have influenced the development process. -- Key45 23:10, 23 Nov 2004 (UTC)

 * He is a pioneer of extreme programming, certainly, but he isn't a pioneer of software engineering. He is a notable and important recent contributor to the field of software engineering. A pioneer is "One who ventures into unknown or unclaimed territory to settle. 2. One who opens up new areas of thought, research, or development: a pioneer in aviation." Beck didn't "open up" the field of software engineering. That was done in the 1970s. In fact, Robert L. Glass defines the "pioneering era" as 1955-1965. "Structured Programming" emerged in the early 1970s. Naur et. al wrote "Software Engineering: Concepts and Techniques" in 1976. I don't know exactly when Beck was developing the "Extreme Programming" methodology, but it must have been in the 1990s, a couple of decades after the pioneers. [[User:Dpbsmith|Dpbsmith (talk)]] 01:30, 24 Nov 2004 (UTC)

 * "Unclaimed territory, opens up new areas of thought...". I'd say that describes Beck to a tee.  He greatly expanded the way people think about software engineering, even if he didn't invent it.   I don't think basing the distinction on date alone is correct.  Wouldn't you call Burt Rutan a pioneer in aerospace engineering, even 40 years after the moon shot and 100 years after the Wright Brothers?  Also, didn't you argue for his inclusion earlier in this page (in the Grace Hopper section)?    -- Key45 17:17, 24 Nov 2004 (UTC)

 * Burt Rutan and Kent Beck are innovators or revolutionaries, not pioneers. That does not diminish their contributions. Hu 17:42, 2004 Nov 24 (UTC)

 * It's all arguable, but I would have called Rutan a pioneer in the use of composite materials in aviation and a pioneer in the commercialization of spaceflight; I would have said Frank Whittle was a pioneer in jet propulsion, and that Lindbergh was a pioneer in transoceanic flight; but when I think of "pioneers of aviation" I think of Chanute, Langley, and the Wright brothers. [[User:Dpbsmith|Dpbsmith (talk)]] 18:10, 24 Nov 2004 (UTC) P. S. No, I never argued for Kent Beck's inclusion as a pioneer. I wasn't paying a lot of attention to aspect, really. IMHO Grace Hopper was a pioneer in computing, but does not belong to the field of software engineering. IMHO Kent Beck certainly belongs to the field of software engineering, but did not pioneer it. Your mileage may (and obviously does) vary. [[User:Dpbsmith|Dpbsmith (talk)]] 18:14, 24 Nov 2004 (UTC) P. P. S. And, yes, I see that the article on Lindbergh calls him an aviation pioneer. But the article on Burt Rutan does not...

 * I would much rather put both Beck and Humphrey on the page as pioneers. They complement each other. But, Beck helps to show that the field is much more than what a bunch of researchers thought about 30 years ago. SE is a living, breathing field that still is evolving. -- The Phantom Avenger

Meanings
I've reinserted the following which I believe to be accurate:

 * As of 2005, in common parlance the term software engineering is used with at least three distinct meanings:
 * As the usual contemporary term for the broad range of activities that was formerly called programming or systems analysis;
 * As the broad term for the technical analysis of all aspects of the practice, as opposed to the theory of computer programming;
 * As the term embodying the advocacy of a specific approach to computer programming, one that urges that it be treated as an engineering profession rather than an art or a craft, and advocates the codification of recommended practices in the form of software engineering methodologies.

The term is really used in all these senses, even if some advocates would like it to be otherwise.

Why was it removed?

If, after introducing these terms, it is felt that the article should discuss only one of these meanings for software engineering, it should say so and then continue. Anything else muddies the water. Dpbsmith (talk) 21:22, 15 Feb 2005 (UTC)

RUSSOFT
What is RUSSOFT? Do we have an external link to more information? RJFJR 21:08, Feb 20, 2005 (UTC)

 * [http:\\www.russoft.org www.russoft.org] is an external link to RUSSOFT. The other organizations listed in the article are wikilinked (such as IEEE).  I don't know how we want to handle this for consistancy (wikilinks only, this one as external, remove this, leave as is...).  I'm not even positive it is an organization in the same way IEEE and ACM are.

Removed material
The intro section was very choppy (a lot of paragraphs each with a few sentences). I consolidated them and removed the following material. I felt the following material, while detailed and interesting, was not directly related to software engineering. I have moved it here in case there is disagreement. RJFJR 19:32, Mar 12, 2005 (UTC)
 * SE applications are used in a wide range of activities, from industry to entertainment. Software applications improve user productivity and quality of life. Application software examples: office suites, video games, and the world wide web. System software examples: embedded systems and operating systems.
 * Software engineering examples: databases, languages, libraries, patterns, and tools. Computer science examples: algorithms and data structures. Project management examples: processes.

 * This edit opens up a long and divisive debate. There are many issues.

 * Concreteness: Many believe that examples make text much more concrete and comprehensible. Others want text to be high-level and abstract.
 * Audience: A related question, is who should the pages be written for? Most writers are in college or past college. However, there is evidence that most readers are high-school students, or other people who are not familar with a topic. What is obvious and irrelevant to a CS student or grad, may be very unclear and important to a high-school student or someone who is thinking of returning to college. Of course, Wikipedia has yet to define its target audience very well. The lists make it accessable to a much broader audience.
 * Definition: Saying that SE emphasize quality does not really say what is and is not SE. Some (especially in aerospace, SEI, etc.) have argued that SE is about life-and-death apps, and video games are not SE because a lower standard of quality applies. Yet, the U.S. census from 2000 made it clear that people who write normal, everday app view themselves as SE. Using the broader examples allows this larger community to be included, without pandering to the elitists.
 * Style: Your main complaint is choppiness. The original version was sentence prose. One Wikipedian hated the prose list, but was willing to stop arguing after making it an example list. This was maybe 6-8 months ago.
 * I will replace the examples in a couple days, unless someone finds a new way to think about all this. -- The Phantom Avenger for SE

Sorry, I didn't mean to cause a disturbance. One of your points mentioned quality as it relates to software engineering, this sounds like something that could be (and should be) expanded into a section. Can we add a section for definitions under terminology and put some of the material you want to put back in there? I'll have to look at this some more later. RJFJR 15:13, Mar 15, 2005 (UTC)

 * Please do not apologize. You are correct that the sentences are choppy and need to be improved. And, they had sat there for many months, without change. While I have fought in these battles in the past, I do not mean to imply that you intended any harm.

 * The big dilemma I see, is that most readers will not read past the intro. So, all relevant info for the main definition should be in the intro. Only alternative, historical, and other weaker info should be moved down into the definition section. Also, the intro from last week was not particularly long, in terms of word count. The trick is to make is tighter and smoother. Will think about this. -- The Phantom Avenger for SE

Removed the following text. This is a researcher fantasy. I suspect that every truly useful bit of research is very quickly adopted into practice. At least 1 practitioner believes that researchers are too often self-deluded and research gets ignored only when it is junk. Practitoners need every useful method and technique that they can find, regardless of when or where it comes from.

 * In the last years software engineering made big steps from the research point of view. But the research output has been slowly introduced in the industry. So probably, nowadays is important to transfer the advanced research output into daily practice, instead of developing new methods and techniques.

I replaced the second paragraph which was

 * Software applications improve user productivity and quality of life. Examples include embedded systems, office suites, operating systems, video games, and world wide web. Technologies and practices improve the productivity of developers and the quality of the applications they create. Examples include algorithms, data structures, databases, languages, libraries, patterns, processes, and tools. Processes encompass analysis, specification, design, development, and testing.

The paragraph I substituted tries to answer the question "what is software". If someone chooses to replace it please consider putting my version here for possible discussion or borrowing from. The version I inserted may need some work on the choice of wording (could be simplified some). I need check if we have an article on measuring code in millions of lines of code. I apologize in advance if I've made the article worse rather than better.RJFJR 17:53, Mar 25, 2005 (UTC)

 * I think your explanation of "why SE matters", mostly the reliable million line apps is important. However, there is a whole page computer software devoted to the question "what is software?", so I don't believe that that belongs here. Also, there are no concrete examples of what apps and technologies are. People in the field will have no problem, but people outside the field probably do not know.

 * Apps are used in the devices listed. I didn't want to bog people down with things like embedded system and real time programming (even though there some differences in how you do engineering for those conditions.)  I'm not sure how to descirbe SE techniques without being too technical.  The second paragraph as I wrote it is a tad long, may need pruning.  On the other hand probably need to add an example of the kind of app you have on a PC (to go with what are mainly embedded examples).  Any ideas for non-technical examples of SE techniques? RJFJR 20:00, Mar 25, 2005 (UTC)

 * After thinking about it for a couple days, I basically agree with your intro. Good job. -- The Phantom Avenger for SE

For Your Info: Yesterday (March 29, 2005) this page was in the top 10 on Google search for "software engineering". Until yesterday, this page bounced around between about place 11 and place 20. Pages Usually bounces around in a range of 5 or 8 positions. Since this page has been climbing, it should routinely be in the top 10, within a month.

This means that this page is useful enough for lot of people to appreciate it. I believe the reason for popularity is because this page has real content and real sentences, as opposed to boring lists like the "computer science" page. Also, it is neutral enough to not get hung up on traditional (out of date) points of view.

Anyways congratulations to all the authors of this page. -- The Phantom Avenger for SE

 * High Five, everyone! RJFJR 02:20, Mar 31, 2005 (UTC)

'Room for improvement' has room for improvement
The section currently headed 'room for improvement' ironically has room for improvement. It was a section on how software is often buggy and insecure but that improvements in software engineering procedures and technologies can improve this. It's been tightened to the point where it is a little too tight. Anyone have any material we can add to clarify this? RJFJR 02:35, Apr 7, 2005 (UTC)

Excuse me?
Extreme Programming is the best-known agile process. In Extreme Programming, the phases are mixed up. Advocates say this is much more effective. Testing is done first, to provide concrete goals for development. Coding comes next. Design and architecture emerge out of refactoring, and come after coding. Design is done by the same people who do the coding. (Only the last feature - blurring together design and code - is common to all the other agile processes.)

 * How can testing "be done first?" If no coding has occurred yet, what is there to test? Dpbsmith (talk) 10:39, 7 Apr 2005 (UTC)

 * You write the unit test as some sort of semi-formal specification to test the design contract of a future implementation. That way you can think of the interface of code, while doing something useful (coding) at the same time. Example: you want to write a certain collection class. First you write the unit test, in which you create an instance of the (not yet existing!) class in code. Then you do a few addition and removal operations, and write code to check the contents and size of the container. This test will of course not compile. So then you write an empty class that conforms to the newly-designed interface. You adapt some changes to the test if needed, and you compile. This time, the unit test will compile, and will fail immediately (otherwhise your test is bad). Now you continue implementing methods, during which you constantly test, expand and adapt the unit test. I hope this clears stuff up. Wouter Lievens 16:51, 7 Apr 2005 (UTC)

 * That's completely different. "Developing unit tests" is not "testing." Please clarify the paragraph language to explain that unit tests are developed before developing the code, which is perfectly sensible (and a common practice for decades), not that "testing is done first," which is absurd. Also, if the unit tests are actually implemented, then surely that counts as "coding," i.e. it is just saying that one part of the coding, the unit tests, is performed before other portions. Note that this is not that different from insisting that well-specified requirements be defined before coding begins; unit tests are simply very well-specified requirements. Dpbsmith (talk) 17:37, 7 Apr 2005 (UTC)

 * You're indeed correct. The paragraph (with which I had nothing to do :p) requires a rewrite. Wouter Lievens 19:12, 7 Apr 2005 (UTC)

Formal methods: cleanup
I removed most of the contribution of 204.134.9.1 (April 5), as it fits more into a discussion of personal views (i.e. here) than it represents a neutral point of view.

The general problem is that formal methods can not be seriously discussed as a sub-chapter of a software engineering article. So we better keep here only a value-free short note that there is something like “formal methods” too.

In particular the contribution is focused on writing and validating code. People apply formal methods for any kind of application. Creating conventional code (like C++ etc.) using formal methods is just one – not very sophisticated – possibility to use their power. For instance, a state machine can be defined without writing one line of code. There are several methods to validate the state machine (infinite loops, dead locks, states which cannot be reached etc.). A designed state machine can be expressed as a set of boolean equations by an automatic process. This set can be then executed by an other automatic process (the rules of boolean algebra are well known). Doing so one creates a computer control application, but there is not one line of code behind it. This is the really interesting part of formal methods, the validation possibility is just an other aspect of it.

 * This is a formal methods fantasy. I would like *anyone* to show me a 'state machine that can be expressed a set of boolean equations' that actually does something useful that is not written *some* form of programming language (whether graphical or textual). Even ML and OCAML are now universally recognized as programming languages. And, any form of validation that can be applied to boolean equations can also be applied to code. The above paragraph contains more wishful thinking than the original article contained opinion.

 * Thowa 10:42, 17 Apr 2005 (UTC): None of the formal methods can be shortly explained within a Wiki-discussion. But let's do a short example, a more interested reader might find as a useful starting point to understand how powerful formal methods in practise are.
 * Let's create a finite state machine (FSM) having two states "Eat" and "Sleep". This FSM shall communicate with two external objects: a digital input (di) and a timer (ti). The digital input can generate two signals: “true” and “false”. The timer generates one signal “over”. The timer accepts also a command “start” (which does a reset and starts the timer). We create an input and output dictionary which can be used by the FSM:
 * Input dictionary: {di_true, di_false, ti_over}
 * Output dictionary: {ti_start}

 * What does our example FSM do? It starts in state “Eat” and goes to state “Sleep” in case the di was set to “true”. Entering the state “Sleep” the FSM starts the timer. To go back to state “Eat” the timer must be “over” (ti_over) and the di must be changed to “false” (di_false). Please print the FSM transition diagram on a piece of paper to avoid any misunderstanding. To create the executable specification we need to create state transition tables for each state of our FSM:

 * and

 * An automatic process can generate a set of equations which fully express the above specification. This set could look like this (note that this is already a kind of machine code, so it looks criptical, but I enter it here to show the “magic” behind the executable specification):

 * S1     N2 V4
 * S2 E1 N1 V3&2

 * where S represents the current state, N the next state, E entry action and V condition (& means AND). For instance the first line means “in state 1 (Eat) go to state 2 (Sleep) if the boolean condition 4 (di_true) is true”.

 * Some words about the used boolean algebra here. In the presented concept it is the positive logic algebra and not the boolean algebra (i.e. NOT is forbidden). The reason is simple: in the software world we have very seldom signals which can be negated. Lets take for instance a sensor which delivers temperature: temp_low, temp_good and temp_high. What would be NOT temp_high? So in the above concept we only look if a signal exists or not. Some signals cannot exists in parallel, e.g. We cannot have at the same time di_true and di_false.

 * The above equation plus the description of the I/O dictionaries can be now read by a standard executor (which might be a part of the OS) and executed.

 * I like your example very much. I copied it to the formal methods page as the "example" section. Thank you.

 * As you can see up to now, we did not write one line of code in any conventional programming language. Of course, this method can be applied “only” to design the control part of the application. All the peek/poke operations (translation of real signals to names accepted by the FSM and vis-a-versa) as well as pure mathematical calculations have still to be coded in the conventional way, but the improvement (reliability, maintenance and time-to-market) in software design is enormous.

 * I disagree with your premise. Yes, you did not write in a "conventional programming language" but you did write in a "programming langauge". If you claim to have an "excutable specification" then the specification must be written in a mechanically clear form. Also, I have no way to know whether your spec improves reliability or maintenance or time-to-market. Those claims are just hot air. Perhaps my guru friends would have written the same program in C++ much faster than you wrote your executable spec.

 * Thowa 07:31, 26 Apr 2005 (UTC): I can agree with you that any kind of „mechanically clear form“ can be called a programming language. But then I would say that this „FSM-language“ is an enormous progress in development of programming languages compared with all we have else. The step forward is the syntax and methodology behind it.

 * 1. The syntax: instead of writing thousands of lines of cryptic text which can only be understood by certain gurus you plot pictures and fill out tables. The result of your work can be understood by your management, can be discussed with your customer and does not need any further design documentation as it cannot be better explained in words.

 * I think we agree on what you say in these 2 paragraphs. When a mini-language is smaller and clearer, it is ofter better for everyone. -- PASE

 * 2. Methodology: the difference in thinking is here critical. For instance in OOP you think in terms of objects. You try to express your problem (application) as a set of black boxes communicating with each other. In FSM you try to express your problem in a form of situations (states), which is a much more realistic approach. If you design a system of 10 FSM, each of them consisting of 10 states, you covered theoretically 10^10 possible situations your application can be in. Even if we know that there are several impossible combinations of FSM states, it is impressing to be able to see how many situations do we cover. In OOP it cannot be possible because we don't think situation oriented – you can count only your black-boxes. Besides this can you imagine how many lines of C++ code would be necessary to cover 10^10 cases? In practice all we can do in code is to design the sunny day scenario and cover the most obvious error cases. The rest is just „almost impossible“, „happens very seldom“ or „can be accepted“. Therefore the most of the software is as it is (i.e. buggy). You will also make bugs in your FSM design of course, but those are on a much higher level of abstraction (something like if (a=b) instead of if (a==b) will never happen in your „code“) and the (automatic) validation methods are by far much more powerful than what you can do in code.

 * I think the above statements explain also a little bit what I meant by „improved reliability, maintenance and time-to-market“, but you can still think it is just „hot air“. Luckily there is some „hard ware“ in place: Lucent published some years ago "an article in Bell Labs Technical Journal", where they explain how they introduced the VFSM (virtual FSM) technology in their labs and what were the results in terms of reliability, maintenance and time-to-market after several hundreds of projects done (see p. 15). Since then, there has been done a lot of improvement and the methods became much more powerful. Unfortunately my own experiences are not published yet, but I promise that this will happen soon... ;-) --Thowa 07:31, 26 Apr 2005 (UTC)

 * This is an interesting argument. My first response is that most code in most apps is not applicable to most formal methods. I work on a commerical app that plays a sound, whenever a file transfer completes (among other stuff). This code is about interfacing with the OS and saving and setting user preferences. No formal method will make that better.

 * Another example is parser generators. They are very nice examples of formal methods, by expressing syntax simply and clearly. But, most programs do very little parsing, so parser generators do not help most programs. Of course PGs do help compilers and a few other programs.

 * Every new formal method technique helps a little bit. I hope your VFSM gets used. But, very few formal methods have been widely used, unless they are put into compilers, like weakest preconditions, where they are used automatically and invisibly. -- The Phantom Avenger for SE

 * I have had a small amount of success on occasion writing a mini-language to do something, where the mini-language saved a lot of code. Usually the code was very redundant. Most recently, it was a list of macro calls that made the WindowProc message names clear, whenever there was a macro defined for the message. The mini-languages often looked like your table above. But, rather than arguing that they are "executable specifications", I have been arguing that they are "useful code." Maybe, one theorist's executable specification is a programmer's mini-language?

 * The software engineering is a young science and there is still a lot to do, but there is already a lot in place and so there is already a lot to learn if you want to work as engineer and not as coder.

 * You are making assumptions here. 20 years ago, I worked on theorem proving, mostly with resolution-based provers in grad school. I originally believed in things like you say, but I changed my mind. Theory cannot handle the following questions. How do we know that you did not forget a case? What if the user wanted a completely different problem to be solved? How do we know that a hand translation from your diagram to code is correct? These are the hardest questions to answer, and no amount of theory will ever do so. -- The Phantom Avenger for SE

 * Thowa 10:42, 17 Apr 2005 (UTC)

Last but not least, I found there is an article about formal methods, so it's better to focus on the details there.

 * I think we agree on this. -- The Phantom Avenger for SE

Thowa 15:09, 10 Apr 2005 (UTC)

POV section snipped
I removed this:
 * Software engineering is the practice of creating software, productively and with quality.

 * Members of this profession are called software engineers, programmers, developers, or practitioners.

 * People who write code and do not follow the doctrines of software engineering are more accurately called programmers, developers, or software artists.

Every one of these sentences is unsupported and debatable opinion. Not one of them is backed by any reference to any source.

First, creating software "productively and with quality" is the goal, not the definition of software engineering. It is a claim that is made by software engineering advocates. Our article on Engineering says "Engineering is the application of science to the needs of humanity. This is accomplished through knowledge, mathematics, and practical experience applied to the design of useful objects or processes." Nothing about productivity or quality there. Would we say that "athletics is the practice of winning games?" Would we say that an athlete is not an athlete when he or she loses?

 * I agree with your arguments. But, from a historical POV, productivity and quality have been the main drivers of SE for the last 40 years. Fortran, Cobol, Java, code repositories, etc. have all been promoted to improve productivity, quality, or both. The famous "No Silver Bullet" paper was based on the argument that nothing would bring a 10-fold increase in producitivity with 10 years. The main thrust of the CMM is measuring and improving quality (and outsourcing jobs). The SEI in many documents specifically defines SE in terms of process.

 * The problem is that we have been so busy bootstrapping the SE profession with tools and processes, that we still don't have a "lofty goal" definition of SE. And, I would not trust traditional engineers to write it for SE, or base it on their definition. SE is still figuring out its own reality.

Second, "the doctrines of software engineering" is a very poorly defined term. In fact, "doctrine" and "engineering" are almost antithetical. On page 7 of Sommerville's "Software Engineering", 6th edition, he says:

 * Engineers make things work. They apply theories, methods and tools where these are appropriate but they use them selectively and always try to discover solutions to problems even when there are no applicable theories and methods to support them.

Are we to say that a software engineer is not being an engineer when he is trying "to discover solutions to problems even when there are no applicable theories of methods?" Or, in fact, is this the time when he is most truly an engineer?

 * This has always been a point of contention. Is an SE what a typical SE does every day? Is an SE someone who works toward a particular end? With particular tools? etc.... The sentences you removed were written by different authors who insisted that the definition be kept in the article. I at one point moved them into the same section. This text should probably have been removed a long time ago.

Third: Who decides who gets called an "engineer?" On the one hand, very, very, very few people who write software hold a PE certificate. By that definition—the legal definition in many states—very, very few software developers are entitled to be called "engineers." On the other hand, "software engineer" is the job title at many companies for anyone who writes code. It is absurd to say that it is wrong to call someone by their job title. There is no doubt that software engineering advocates would like to define the term themselves, but that is their point of view. Dpbsmith (talk) 23:22, 21 Apr 2005 (UTC)

 * Once again, an excellent point. Partly this is a debate between the elitists and the populists. Do you have a proposed answer? -- The Phantom Avenger for SE

 * My proposed answer is to snip the paragraph, since I don't think it says anything useful or important. I don't see any need for it to be there. It is up to those who think something of this sort needs to be there to articulate it in a neutral and non-promotional way.  Dpbsmith (talk) 16:21, 25 Apr 2005 (UTC)

Careful about POV: "Profession"
I weasel-worded the statement that software engineering is "a profession." The definition of "profession" varies. Software engineering meets some definitions of profession but not others.

A good example is the existence of a code of ethics. Many, though not all definitions of "profession" say that a professional is bound by a code of ethics, which takes precedence over the professional's responsibility to his employer. It is very clear that medical doctors and their employers acknowledge that doctors are bound to a code of professional ethics. A doctor may be a hospital employee, but is a doctor first and a hospital employee second. The same is true of accountants.

It is far from clear that this is true of software engineers. Dpbsmith (talk) 16:17, 25 Apr 2005 (UTC)

POV
The attempt to remove POV by insisting that software engineering is not a profession and not a form of engineering is extremely POV. If you want to add that most areas do not have legislation establishing a professional software engineer license then that certainly belongs. But I feel no need to stay here and hear how software engineers are not professional, not ethical, not competent, not able, etc. Not licensed maybe, anything else needs to be proved.RJFJR 16:33, Apr 25, 2005 (UTC)

 * How do you read "regarded by some as a profession" to mean "insisting that it is not a profession?"

 * If it is important to have the word "profession" in the lead paragraph than it has to be qualified somehow, because some people regard it as a profession, and some do not. It's a grey area. And it depends on how "profession" is defined and people do not agree on the definition. It is clear that software engineering is not a profession in the same way that medicine or accounting is. Does that mean the word profession should not be used? Not necessarily, but there needs to be some care about how it is phrased.

 * I'd be perfectly happy to leave the word profession out of the lead paragraph altogether. Do you have a wording that you would suggest? Here are some that occur to me: Dpbsmith (talk) 12:09, 26 Apr 2005 (UTC)

 * Software engineering (SE) is the discipline practiced by software engineers, concerned with creating and maintaining software by applying technologies and practices from computer science, project management, engineering and other fields. [substitute "discipline" for "profession"]
 * Software engineering (SE) is the practice of creating and maintaining software by the skillful and systematic application of computer science, project management, and engineering knowledge. Dpbsmith (talk) 12:09, 26 Apr 2005 (UTC)

 * I agree that *not all* agree that SE is a profession. But, from the point of view of simplicity and clarity, saying that "SE is a profession" makes sense. Adding words like "discipline" just make it worse. Just what is a "discipline" or "practice"? Murky words make definitions worse. -- Phantom Avenger for SE

 * Also, I believe that SE is a profession, just like medicine or accounting. What is the difference? That you need a license? Many people in medicine do not have licenses. Many people in accounting do not have licenses.

 * As noted above, both medical doctors and accountants subscribe to a formal code of ethics and consider themselves to have a responsibility to their profession and not merely to their employer. An accountant can say to an employer "I can't do that because it is not in accordance with generally accepted accounting principles." I don't think you can point to anything comparable for software engineering. If a doctor said to his or her employer, "I can't do that because it is not medically ethical," the response would probably be an argument for its being ethical. If a software engineer said to his or her employer "I can't do that because it violates the code of software ethics" the response would probably be hysterical laughter. This is a clear difference.

 * Whoa! Where is it written that "profession" equals "ethics"? I just looked up the definition on dictionary.com and it does not mention ethics. And, "thief" is a very old profession, but where is the ethics in that?

 * As I have said repeatedly, definitions of "profession" differ. That's what I mean by saying that "software engineering is a profession" embodies a point of view.

 * It turns out, by the way, that I'm quite right that some people, e.g. the ACM do think that a code of ethics is intrinsic to the idea of a "profession." But it turns out that I'm quite wrong in thinking that software engineering doesn't have one. Here's the IEEE/ACM software engineering code of ethics. So now the question is: is it for real, i.e. is this code of ethics a real part of the day-to-day practice of software engineering? Dpbsmith (talk) 19:51, 26 Apr 2005 (UTC)

 * Also, the Wikipedia entry for profession hardly mentions ethics. Except that late in the intro, it points out that ethics is less important in the late 20th century.

 * Of course, if "professional" is taken to mean "someone who is paid" then there is no problem--except that it would imply that most work on open source projects is not software engineering.

 * None of this should be taken to suggest that software engineers, as a group, are not "ethical." Who can say whether the employees of Microsoft, as a group, are more or less ethical than, say, the employees of Arthur Andersen? I'm just saying that the professions of medicine and accounting formally have an ethical dimension that I don't think software engineering has. Dpbsmith (talk) 17:06, 26 Apr 2005 (UTC)

 * We know that Arthur Anderson employees engaged in unethical behavior, because AA was put out of business. We know that energy engineers at Enron engaged in unethical behavior, because Enron was put out of business. Their professions did not prevent them from behaving unethically.

 * And, if we are going to pick nits, what "engineering knowledge" does SE use that is not already covered by CS, PM, or another field like medicine? Many people (like me) argue that SE is not a branch of engineering. For example, the TBP which is the engineering honor society in the U.S. over the last 2 years amended their constitution to ban CS people from joining. Most SE people have CS degrees. Clearly, many traditional engineers argue that SE is not part of engineering. -- Phantom Avenger for SE

IEEE POV?
Replacing the intro paragraph (which is specific) with one defined by the IEEE (which only represents about 5% of the SEs in the U.S. and maybe 1% or 2% of the SEs in the world) is a very political act. That definition certainly does not apply to me or my colleagues. -- The Phantom Avenger for SE

Besides, that definition does not mention ethics. :)

 * OK, what's an organization you like, and how do they define it? My point is not to pick IEEE specifically, but I noticed that a number of other organizations seem to use that definition... and I was looking for an authoritative definition from an outside source that might be accepted as neutral. Dpbsmith (talk) 00:18, 27 Apr 2005 (UTC)

 * Well I am in the ACM. But most software engineers are not in either organization. Wikipedia in general does not go around using "standard definitions." It tries to create even better definitions. -- PASE

Proposal: Have a Software Development page
Currently, "Software Development" redirects to "Software Engineering". It seems pretty clear to me that not all software development can or should be considered to be software engineering. It might resolve a lot of the POV concerns (on all sides) to have a general Software Development (SD) page that can then direct people to various topics, including Software Engineering (SE), Software Craftsmanship, or whatever. A fair amount of the content should fit within the SD page, while the IEEE stuff can be at home at SE.

 * Distinguishing between SD and SE might be good idea. Please proceed. Note that there is already a computer programming page.

 * However, there are many other people who are software engineers who are not in the IEEE. In fact, almost all SE are not members of the IEEE. For example, the ACM has more members who qualify as software engineers than the IEEE does. And, both organizations together cover less than 10% of the software engineers in the U.S. and much less than that around the world. See the Software engineering demographics page for details.

 * Note that the current page talks about all SEs, and avoids claiming that any one society has the best definition.

 * If you want to start an "IEEE SE" page, then please start an "IEEE software engineering" page, which can state as much IEEE propoganda as it wants. But, to claim that the IEEE is the primary source of wisdom about SE would be conceited. The IEEE is an important source of info, but they sometimes promote their own agenda, rather than for the whole SE community. -- The Phantom Avenger for SE

 * I am starting an IEEE software engineering page.

Critical mass
I'm not an expert in software engineering, but I request article critical mass (software) to be written, explaining use of term critical mass in software engineering. A sentence linking to it might look nice after the sentence...

"Many software products contain millions of lines of code that are expected to perform properly in the face of changing conditions."

...in software engineering article. I just can't find the words to write it my self. --80.221.54.251 19:36, 25 May 2005 (UTC)

whooooo

title: Talk:Software engineering/Archive 3


text:
User:Redmist

I am a 20 year old Wikipedian from the San Francisco Bay Area (specifically Palo Alto). Interests of mine include medicine (esp. emergency and prehospital medicine), religion, and science.

Contact: email: dave@tornpants.com web: tornpants.com

Qualifications:
 * Emergency Medical Technician (Defibrillation)
 * Reasonably intelligent
 * An autodidact with a penchant for accurate and interesting information

Feel free to contact me if you want to play pool, have coffee/tea, or go climbing (or for any other reason).

Writeups I help tend to (or at least watch):
 * Azotemia
 * Emergency Medical Services
 * Diabetes
 * Hinduism
 * Religion
 * adrenal gland
 * Tetanus
 * Biorn the Pale

Writeups that attract me (to do):
 * Amyotrophic Lateral Sclerosis
 * Lymphoma
 * Typhus

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: User:Redmist


text:
Kidderminster

Kidderminster is a market town and civil parish in Worcestershire, England, 20 mi south-west of Birmingham and 12 mi north of Worcester. Located north of the River Stour and east of the River Severn, in the 2021 census, it had a population of 57,400. The town is twinned with Husum, Germany.

Situated in the far north of Worcestershire (and with its northern suburbs only 3 and 4 miles from the Staffordshire and Shropshire borders respectively), the town is the main administration centre for the wider Wyre Forest District, which includes the towns of Stourport-on-Severn and Bewdley, along with other outlying settlements.

History
The land around Kidderminster may have been first populated by the Husmerae, an Anglo-Saxon tribe first mentioned in the Ismere Diploma, a document in which Ethelbald of Mercia granted a "parcel of land of ten hides" to Cyneberht. This developed as the settlement of Stour-in-Usmere, which was later the subject of a territorial dispute settled by Offa of Mercia in 781, when he restored certain rights to Bishop Heathored. This allowed for the founding of a monastery or minstre in the area.

The earliest written form of the name Kidderminster was first documented in the Domesday Book of 1086, where it appears as Chideminstre, meaning 'Cydda or Cydela's minster or monastery'. It was a large manor held by William the Conqueror, with 16 outlying settlements (Bristitune, Fastochesfeld, Franche, Habberley, Hurcott, Mitton, Oldington, Ribbesford, Sudwale, Sutton, Teulesberge, Trimpley, Wannerton and Wribbenhall). Various spellings were in use – Kedeleministre or Kideministre (in the 12th and 13th centuries), Kyderemunstre (13th–15th centuries) – until the name of the town was settled as Kidderminster by the 16th century. Between 1156 and 1162 Henry II granted the manor to his steward, Manasser Biset. By six decades later, the settlement grew and a fair (1228) and later a market (1240) were established there.

To the south by the River Stour, dating from the 15th century, is a single surviving tower of Caldwall (or Caldwell) Castle, a fortified manor house. Kidderminster owes its growth to the early development of the cloth industry, which was aided by its position upon the River Stour, and its location at the confluence of four main roads to Birmingham, Dudley, Worcester, Bewdley and Bridgnorth. In a visit to the town sometime around 1540, King's Antiquary John Leland noted that Kidderminster "standeth most by clothing". Over the following centuries the town specialised in textile trades such as weaving, fulling, cloth working and milling, and was also home to numerous other trades including shoemaking, haberdashery, saddle making, dyers, tailors, tanners and glovers.

King Charles I granted the Borough of Kidderminster a Charter in 1636. the original charter can be viewed at Kidderminster Town Hall.

Kidderminster's position at the junction of several main roads made it a place of strategic importance during the English Civil War, with several skirmishes taking place in and around the town.

In 1670–1 Kidderminster's cloth industry obtained a guild by act of parliament and by 1677, the town had as many as 459 weavers and perhaps 3,000 spinners. Following King Louis XIV's revocation of the Edict of Nantes in October 1685 and the subsequent renewed persecution of French Protestants in France, many Huguenots emigrated to Britain. The immigration and settlement of waves of industrious Huguenots brought the benefits of skilled artisans, merchants and manufacturers to Britain. They contributed to a preexisting but basic cloth weaving industry in towns and cities throughout England, in some cases establishing new businesses. In Worcestershire, the Huguenots established themselves at Worcester, Evesham, Droitwich and Kidderminster.

In the early 18th century, carpet weaving was introduced to Kidderminster, and this rapidly became the staple trade of the town. Its growth was aided by the opening of the Staffordshire and Worcestershire Canal in 1771, and later the arrival of the railway to the town in 1852. The carpet industry went into decline in the 1970s, but still continues on a reduced scale.

Poor trade conditions in 1828, when 2,000 looms were not working for an 18-week period, led to riots where £3,000 of damage was done during one night.

The town's local government was reformed by the Municipal Reform Act 1835, which incorporated Kidderminster as a municipal borough. This superseded the charter of 1636, and divided the borough into three wards represented by six aldermen and eighteen councillors, the number of wards was doubled in the 1880s. The current Town Hall on Vicar Street was built in 1877.

Kidderminster has two Commissioners' churches. The first was St George's Church, on Radford Avenue. This was designed by Francis Goodwin and built in 1821–1824, finally being consecrated in April 1824. Its grant of just over £17,000.00, was the third-largest given by the commission to any church outside London. The second church was St John's Church, on the Bewdley Road. This was built in 1843 and the architect was Matthew Steele; its grant was just over £4,000.

The Shrubbery was converted into a military headquarters towards the end of the 19th century.

In 1974 the old borough of Kidderminster was abolished and merged into the new Wyre Forest District. In December 2015 Kidderminster was established as a civil parish with a new Town Council, following a public referendum.

Geography
The River Stour and the Staffordshire and Worcestershire Canal both flow through Kidderminster town centre.

Economy
The modern carpet industry was founded in the area in 1785 by Brintons. The carpet industry became extremely important to the local economy, so much so that the local newspaper is still named The Shuttle after the shuttles used on the carpet looms. A type of carpet was known as Kidderminster carpet or, in the United States, Ingrain carpet: this was a reversible carpet with no pile, with the pattern showing in opposite colours on the two faces, and was popular from the 18th to early 20th centuries. By 1951 there were over thirty carpet manufacturers in the town, including, for example, Quayle & Tranter (now defunct). They commissioned such notable artists as George Bain to create their traditional Celtic designs. Aided by a 2004 grant from the Heritage Lottery Fund, a museum dedicated to the Kidderminster carpet industry was officially opened by Lord Cobham in 2012.

Politics
Kidderminster Town is a civil parish within Wyre Forest District, with Kidderminster Town Council created in the early 21st century to take on the duties of a parish council, following a referendum in May 2015. Prior to this, Charter Trustees maintained the traditions of the town and elected a Mayor. At the 2019 local elections to Wyre Forest District Council, the Conservatives lost their majority and the council was took over by a 'Progressive Alliance' formed of independents and councillors from other parties. However, in May 2022 Health Concern announced they would not be standing at the next election, instead favouring a unified independent offering. At the following election in 2023 the Conservatives regained majority control after a collapse in the independent and former Health Concern vote, one of only two council gains nationally.

The area (initially as Kidderminster, then after 1983 as the Wyre Forest constituency) has been represented by Conservative Members of Parliament (MPs) Gerald Nabarro 1950–1964, Tatton Brinton 1964–1974, Esmond Bulmer 1974–1987, Anthony Coombs 1987–1997, and Labour MP David Lock 1997–2001. In the 2001 United Kingdom general election, the town returned Dr Richard Taylor as an independent MP for the Wyre Forest parliamentary constituency. Taylor had fought the election to protest against the proposed reduction in services at Kidderminster Hospital. He held his seat at the 2005 election, the first independent MP to do so since 1949. Mark Garnier has held the seat of Wyre Forest since the 2010 election increasing his majority each time.

Demographics
At the 2011 census there were 55,530 residents in Kidderminster in 24,869 households, the median age of Kidderminster residents was 41.

Kidderminster's population at the 2011 census was predominantly White (96.8%). The largest non-white groups were Asian at 1.7%, and mixed race at 1.2%.

67% of Kidderminster residents identified as Christian, with 24.7% stating they had no religion, and 6.6% not stating any religion. The largest non-Christian group were Muslims at 0.8%, followed by Buddhists at 0.2% and Hindus and Sikhs at 0.1% each, with others at 0.4%.

Architecture and landmarks
Kidderminster's parish church of St Mary and All Saints' is a grade I listed building dating mostly from the 15th and 16th centuries. Another notable church is St John's Church, which is grade II listed, and dates from 1843. Other listed buildings of note in the town include the Town Hall of 1877. The Shrubbery, a 19th-century mansion, and the Kidderminster Register Office. Many of Kidderminster's historic buildings were lost from the 1960s onwards, this led to the creation of the Kidderminster Civic Society in 1993 to promote preservation of the town's heritage. There are some former factory buildings of note in Kidderminster, which have mostly been converted to other uses. A notable one is the former Slingfield Mill, dating from 1864 to 1870, which is grade II listed, and has been converted for retail use.

In the 1968 Buildings of England volume on Worcestershire, Pevsner described the town as: "uncommonly devoid of visual pleasure and architectural interest." Crown House, an early 1970s office block was particularly criticised, and was once rated among the top 10 ugliest buildings in Britain. Demolition was completed in April 2020, improving the Kidderminster skyline. In the 2007 revision of this volume, Alan Brooks wrote; "the 19th century mill buildings, together with the churches, provide most of the architectural interest in a town otherwise uncommonly lacking in visual pleasures."

Transport
Two railway stations in the town share the same approach road and are located less than fifty metres apart. The main National Rail station, operated by West Midlands Trains, is Kidderminster, from where trains run to Birmingham, Worcester and London. The other station, Kidderminster Town, is the terminus of the preserved Heritage Railway line, Severn Valley Railway, from where trains run to Bridgnorth.
 * Rail

Several major routes run through the town, including the A456 which runs from Birmingham to just south of Woofferton, Shropshire; the A451 which runs from Stourbridge to Abberley; the A442 which runs from Droitwich to Hodnet, Shropshire, a few miles north of Telford; the A449 which runs from Newport in south Wales to Stafford and crosses the A456 at the Land Oak; and the A448 road which starts in the town and goes to Studley in Warwickshire, via Bromsgrove and Redditch. A major change in the town centre road infrastructure was the construction of the ring road in the 1970s and 1980s. This relieved the town's growing congestion but diverted traffic outside the centre, drawing off customers for businesses. The final phase of the ring road was never completed, which results in the town having a ring road that does not form a complete ring.
 * Road

The Staffordshire and Worcestershire Canal passes through the town.
 * Waterways

There are direct bus links with towns including Worcester, Halesowen, Bewdley, Stourport, Bridgnorth, Bromsgrove and Redditch. The majority of the services in Kidderminster are operated by Diamond West Midlands (previously First Midland Red) while the rest is operated by Select Bus Services (297), Finesse and Yarranton Brothers. Services 291 and 292 were operated by R & B Travel prior to the company surrendering its licence in January 2020. Services 15A/C, S15, 294, 580 and 133were operated by Coniston Coaches prior to surrendering its licence in October 2020. 15A/C, S15 & 294 were passed onto Astons until 2021 and 2022. Service 297 was operated by Arriva Midlands until 4 September 2023 when Select won the contract for the service.
 * Bus

Education
As part of educational restructuring in the Wyre Forest district, Kidderminster's schools were reorganised from a three-tier system of first, middle and high schools to the two-tier system more common in the UK as a whole, featuring primary schools and secondary schools. In this process, several first and middle schools were closed or merged into new primaries. The three high schools of King Charles I School, Wolverley C E Secondary School, and Baxter College (formerly Harry Cheshire High School) became secondary schools that included sixth forms.

Independent schools include Heathfield Knoll School in Wolverley. Formerly independent, Holy Trinity School became a state-funded free school in 2014. Kidderminster College is located in Market Street in the town centre, having moved from older premises in Hoo Road in 2003. Other local secondary schools include The Stourport High School & VIth Form Centre and The Bewdley School.

Cricket
Kidderminster CC is a local cricket club at whose home ground of Chester Road North Ground Worcestershire County Cricket Club play occasional County Championship and county 2nd XI games.

Football
Formed in 1886, Kidderminster Harriers F.C. is the town's professional football club. Local rivals of the Harriers were traditionally Worcester City and Bromsgrove Rovers, and in recent years also Cheltenham Town and Hereford United. As of 2023 Cheltenham are in League One, two divisions above Kidderminster, with Hereford being the division below Kidderminster.

In 2005 the Harriers were relegated to the Conference Premier after five years in the Football League Two division. They had reached the Football League as Conference champions in 2000, and are Worcestershire's only representative in the league. They had won the title in 1994 but were denied promotion then as their stadium did not meet Football League capacity requirements. That same year they eliminated Birmingham City from the FA Cup; they eventually reached the fifth round of the competition (just missing the quarter-finals), where they hosted Premier League side West Ham United, narrowly losing 0–1. Prior to Lincoln City's run in the competition in 2017, Harriers were the last non-league side to reach round five of the FA Cup. Harriers were relegated to the National League North in 2016.

In recent years, Kidderminster have seen some success under manager and former Harriers player Russell Penn. A strong FA Cup run in the 2021–2022 season led to the Harriers facing Premier League side West Ham in, as they had done in 1994. The affair ended in a 1–2 defeat, yet the game led to major economic benefit for the club, with TV money and ticket sales generating large amounts of income. Harriers further went into the Play-Offs that same season, but were eliminated in their first game to Boston United. In the 2022–2023 season, Kidderminster again reached the Play-Offs, achieving the feat on the last game of the season after an excellent late run of league form. Harriers beat Alfreton, Kings Lynn and finally Brackley in the Play-Offs and regained promotion to the National League.

The Kidderminster & District League has operated since 1984 and draws teams from Worcestershire and South Staffordshire.

Rugby
Kidderminster Carolians RFC is a local rugby union club, currently playing at level 7 in Counties 1 Midlands West (North) at First XV Level and Midlands Reserve League 2 at 2nd XV level.

Regularly putting out 3 senior teams including veterans, the club also has a thriving Colts (u18s) age group, a developing women's team since 2021 and a large minis and juniors section.

Hockey
Kidderminster Hockey club was founded in 1892 and in 2010 there are five men's hockey teams, a women's team and a junior team.

Local attractions
Located in Kidderminster is the Severn Valley Railway a heritage railway. The Museum of Carpet opened in 2012, showcases the town's contribution to the carpet industry. Brinton Park is an urban park to the south of the town centre, comprising 30 acre of land donated by John Brinton in the 1880s. Another green space is Wilden Marsh, a nature reserve covering 94 acre to the south of Kidderminster.

Places of interest near Kidderminster include the West Midlands Safari Park to the west of Kidderminster towards Bewdley. A few miles south of the town is Hartlebury Castle, which houses the Worcestershire County Museum. A few miles north are the Drakelow Tunnels a former underground military complex, which has an attached museum.

Local media
The local newspaper covering Kidderminster is The Shuttle.

Local news and television programmes are provided by BBC West Midlands and ITV Central. Television signals are received from the Sutton Coldfield and local relay transmitters.

The Wyre was the town's first local commercial radio station; it began broadcasting on 12 September 2005 from studios in Kidderminster. Other radio stations providing local coverage are Free Radio Herefordshire & Worcestershire, Sunshine Radio and BBC Hereford & Worcester. The Wyre ceased broadcasting in 2012, and Signal 107 was launched on 26 March 2012 (it now broadcasts as Greatest Hits Radio Herefordshire and Worcestershire).

Climate
The town is noted for its particularly high record lows. Despite an average July low of 11.7 °C, the temperature has never fallen below 5 °C in that month. The coldest and warmest July nights were both recorded in 2015.

Notable residents

 * Richard Baxter, Puritan minister. He began his ministry in Kidderminster in April 1641 and served there for the next 19 years. A memorial statue of him was erected outside St Mary's parish church, where he was based. The inscription states his wish "for unity and comprehension in religion". Prior to beginning his ministry in Kidderminster, Baxter lived in Bridgnorth from 1640 to 1641.
 * Mark Birch, former guitarist with Wishbone Ash, was born and brought up in Kidderminster.
 * Edward Bradley, the English humorist of the mid-Victorian era, was born in Kidderminster in 1827.
 * Lant Carpenter, English educator and Unitarian minister, was born in Kidderminster.
 * Gilbert Claughton, Chairman of the London North Western Railway.
 * Noah Cooke, poet, was born in the town.
 * Sammi Davis, film actress, was born in Kidderminster.
 * Tony De Vit, Birmingham-based nightclub DJ and singer, was born in Kidderminster.
 * Alun Evans, English football's first £100,000 teenager, was born in Kidderminster.
 * Richard Eve, Grand Treasurer of the United Grand Lodge of England in 1889, was born in Kidderminster.
 * Thomas Foley, 1st Baron Foley, MP for Droitwich and Herefordshire, created Baron Foley, of Kidderminster in the County of Worcester in 1776.
 * Paul Frampton, theoretical physicist, was born in Kidderminster and educated at King Charles I School.
 * Ukawsaw Gronniosaw, also known as James Albert, lived with his family in the town in the 1760s and 1770s. An African prince and freed slave, he worked on his autobiography in Kidderminster, with a secretary from Leominster. Published at Bath in about 1772, this was considered the first Black African autobiography published in Britain.
 * Robert Hamer, film director and screenwriter, known for his 1949 comedy Kind Hearts and Coronets, starring Dennis Price and Alec Guinness, was born in Kidderminster.
 * Jowe Head (born as Joe Hendon in Kidderminster) is a bass guitarist, singer and visual artist, and was a member of Swell Maps before joining the Television Personalities.
 * Sir Rowland Hill, the inventor of the Penny Black and the modern postal system, was born in Blackwell Street. There is a statue, sculpted by Sir Thomas Brock, to him in Vicar Street outside the town hall. There was a pub in the Bull Ring called The Penny Black in his honour.
 * Henry Eliot Howard, director of a steelwork in Worcester, and amateur ornithologist, was born at Stone House near Kidderminster.
 * Eustace Jotham served as a British Army captain in the Great War, winning the Victoria Cross in 1915; he was born in Kidderminster.
 * Walter W. Law was born in Kidderminster to a carpet dealer, and worked as a carpet manufacturer. He later emigrated to the United States, where he founded Briarcliff Manor, New York.
 * Iskra Lawrence, model, grew up in Kidderminster.
 * Rustie Lee, TV personality and celebrity chef, used to live on the outskirts of the town.
 * Sir Josiah Mason, an English pen-manufacturer, was born in the town's Mill Street.
 * Walter Nash, former Labour Prime Minister of New Zealand, was born in the town.
 * James O'Brien, radio talk show host of LBC and journalist, was brought up in Kidderminster.
 * Job Orton, English dissenting minister, lived in Kidderminster in retirement from 1766 until his death.
 * Taylor Parkes, journalist and broadcaster, was born in West Bromwich but grew up in Kidderminster.
 * Ewan Pearson, DJ and record producer, grew up in Kidderminster.
 * Robert Plant, English musician who was the front man of the 1970s English rock band Led Zeppelin, grew up in Kidderminster and has had associations with Kidderminster College.
 * Stuart Matthew Price, singer and composer, was born in the town.
 * Jess Roden, singer, was born in Kidderminster.
 * Mike Sanchez, rhythm and blues pianist and vocalist, is a long-time resident of Kidderminster.
 * Sir Herbert Smith, 1st Baronet, Kidderminster carpet manufacturer and owner of Witley Court (see Smith of Kidderminster baronets).
 * Alf Tabb, Kidderminster cycle maker and rider of miniature cycles.
 * Dr Richard Taylor is a former independent Member of Parliament for Wyre Forest, serving from 2001 to 2010. He originally trained as a medical doctor, working as a consultant at Kidderminster General Hospital from 1972 to 1995. He was also co-leader of the National Health Action Party.
 * Tom Watson is a former Labour Party Member of Parliament (MP) for West Bromwich East and Deputy Leader of the Labour Party. He was educated at King Charles I High School in Kidderminster.
 * Stan Webb, blues guitarist and founder of Chicken Shack, resides in the town.
 * John Francis Young served as a soldier in the First World War and won the Victoria Cross as a private in 1918; he was born in Kidderminster.

Sport

 * Mo Anthoine was born and brought up on Marlpool Lane in Kidderminster. He was a mountain climber famed for his technical skill.
 * Peter Collins, former Formula One driver, was born in Kidderminster. During his career, Collins drove for the HWM, Vanwall, Maserati and Ferrari teams and won 3 of his 33 Grands Prix. His promising career was cut short during the 1958 German Grand Prix, when Collins spun off the track and sustained a fatal head injury in the accident that followed.
 * Kevin Keelan, footballer, played for Norwich City.
 * Melissa Lawley, Liverpool F.C. Women Forward, who signed for the club in 2019.
 * Ernest Perry, first-class cricketer, died in Kidderminster.
 * John Wyer was born in Kidderminster; he went on to manage repeat victories at Le Mans 24 hours.

title: Kidderminster


text:
User talk:Redmist

Welcome to the 'pedia! It is always nice to greet a new wikipedian. Hope you like the place and decide to stay. --User:maveric149

In your summary of new article Diabetes insipidus, you wrote: "Initial WU." I thought "WU", short for "writeup", only meant article on Everything2. Are you from E2?

title: User talk:Redmist


text:
Chinese food therapy

Chinese food therapy (, also called nutrition therapy and dietary therapy) is a mode of dieting rooted in Chinese beliefs concerning the effects of food on the human organism, and centered on concepts such as seasonal eating and in moderation. Its basic precepts are a mix of Taoist Wuxing and eight principle theory that are concepts drawn from the modern representation of traditional Chinese medicine.

Food therapy has long been a common approach to health among Chinese people both in China and overseas, and was popularized for western readers in the 1990s with the publication of books like The Tao of Healthy Eating and The Wisdom of the Chinese Kitchen.

Origins
A number of ancient Chinese cookbooks and treatises on food (now lost) display an early Chinese interest in food, but no known focus on its medical value. The literature on "nourishing life" integrated advice on food within broader advice on how to attain immortality. Such books, however, are only precursors of "dietary therapy", because they did not systematically describe the effect of individual food items. In the volume on "Fermentations and Food Science" of Joseph Needham's Science and Civilization in China, H. T. Huang considers the Recipes for Fifty-Two Ailments (c. 200 BCE) and the Yellow Emperor's Inner Canon as precursors of the "dietary therapy" tradition, the former because it recommends food products as remedies for various illnesses, the latter because it discusses the impact of food on health. The materia medica literature, exemplified by the Shennong Bencao Jing (1st century CE), also discussed food products, but without specializing on them.

The earliest extant Chinese dietary text is a chapter of Sun Simiao's Prescriptions Worth a Thousand Gold, which was completed in the 650s during the Tang dynasty. Sun's work contains the earliest known use of the term "food (or dietary) therapy" (shiliao). Sun stated that he wanted to present current knowledge about food so that people would first turn to food rather than drugs when suffering from an ailment. His chapter contains 154 entries divided into four sections – on fruits, vegetables, cereals, and meat – in which Sun explains the properties of individual foodstuffs with concepts borrowed from the Yellow Emperor's Inner Canon: qi, the viscera, and vital essence, as well as correspondences between the Five Phases, the "five flavors" (sour, bitter, sweet, pungent, and salty), and the five grains. He also set a large number of "dietary interdictions", some based on calendrical notions (no water chestnuts in the 7th month), others on purported interactions between foods (no clear wine with horse meat) or between different flavors.

Sun Simiao's disciple Meng Shen (621–713) compiled the first work entirely devoted to the therapeutic value of food: the Materia Dietetica. This work has not survived, but it was quoted in later texts – like the 10th-century Japanese text Ishinpō – and a fragment of it has been found among the Dunhuang manuscripts. Surviving excerpts show that Meng gave less importance to dietary prohibitions than Sun, and that he provided information on how to prepare foodstuffs rather than just describe their properties. The works of Sun Simiao and Meng Shen established the genre of materia dietetica and shaped its development in the following centuries.

Later history
An abundant literature developed in China around the medicinal uses of food. A mid-ninth-century work, now lost, called Candid Views of a Nutritionist-Physician discussed how food could treat various disorders, while several works from the Song dynasty (960–1279) explained how to feed the elderly to extend their life.

In the early 14th century, Hu Sihui, who served as Grand Dietician at the court of the Mongol Yuan dynasty (1260–1368), compiled a treatise called Yinshan zhengyao, or Proper and Essential Things for the Emperor's Food and Drink, which is still recognized in China as a classic of both materia medica and materia dietetica. Influenced by the culinary and medical traditions of the Turko-Islamic world and integrating Mongol food stuffs like mutton into its recipes, Hu's treatise interpreted the effects of food according to the scheme of correspondences between the five phases that had recently been systematized by northern Chinese medical writers of the Jin dynasty (1115–1234) and Yuan eras. Before that period, food materials had not yet been comprehensively assigned to the five flavors systematically correlated with specific internal organs and therapeutic effects.

Chinese understandings of the therapeutic effects of food were influential in East Asia. Cited in Japanese works as early as the 10th century, Chinese dietary works shaped Korean literature on food well into the Joseon period (1392–1897). In the late 17th and early 18th centuries, the imperial court of the Qing dynasty (1644–1912) ordered several works on Chinese food therapy translated into Manchu.

Main tenets
Although the precepts of Chinese food therapy are neither systematic nor identical in all times and places, some basic concepts can be isolated. One central tenet is that "medicine and food share a common origin", and that food materials can therefore be used to prevent or treat medical disorders. Like medicinal drugs, food items are classified as "heating" or "cooling". In popular understanding, "heating" food is typically "high-calorie, subjected to high heat in cooking, spicy or bitter, or 'hot' in color (red, orange)", and includes red meat, innards, baked and deep-fried goods, and alcohol. They are to be avoided in the summer and can be used to treat "cold" illnesses like excessive pallor, watery feces, fatigue, chills, and low body temperature caused by a number of possible causes, including anemia. Green vegetables are the most typical "cooling" or "cold" food, which is "low-calorie, watery, soothing or sour in taste, or 'cool' in color (whitish, green)". They are recommended for "hot" conditions: rashes, dryness or redness of skin, heartburns, and other "symptoms similar to those of a burn", but also sore throat, swollen gums, and constipation.

In more systematic understandings, each medicine or food item has one of five flavors: sour, sweet, bitter, pungent (or "acrid"), and salty. Besides describing the taste of food, each of these "flavors" purportedly has specific effects on particular viscera. The sour flavor, for instance, has "constriction and emollient effects" and "can emolliate the liver and control diarrhea and perspiration", whereas "bitter" food can "purge the heart 'fire', reduce excessive fluids, induce diarrhea, and reinforce the heart 'Yin'".

Scientific assessments
Historically, there have been few studies in English literature about the practice of Chinese food therapy. The qualitative and conceptual diagnosis of Yin deficiency in Chinese medicine points to the signs and symptoms that characterise and classify as hypertension in the western medical system, There are examples of western diets based on mixed nutritious foods and demonstrated to have health effects by extensive clinical research, such as the DASH diet or Mediterranean diet.that mirror the Asin foundational diets that tend to include leafy greens, legumes, vegetables, soy foods, whole grains, herbs and spices. Fish or shellfish and moderate portions of eggs, poultry, Infrequent servings of red meats and sweets

Other examples

 * Qiu Li Gao is a pear syrup or paste used to treat lung ailments.

title: Chinese food therapy