Edsger Dijkstra, who could be somewhat abrasive at times (he called "Carl Friedrich Gauss, the Prince of Mathematicians but also somewhat of a coward") said in his essay "On the cruelty of really teaching computing science" (EWD1036):

A number of these phenomena have been bundled under the name "Software
Engineering". As economics is known as "The Miserable Science", software
engineering should be known as "The Doomed Discipline", doomed because
it cannot even approach its goal since its goal is self-contradictory.
Software engineering, of course, presents itself as another worthy
cause, but that is eyewash: if you carefully read its literature and
analyse what its devotees actually do, you will discover that software
engineering has accepted as its charter "How to program if you cannot.".

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.
If this question can be reworded to fit the rules in the help center, please edit the question.

1

Wow, a downvote and four close votes in 17 minutes. Software developers really do still hate Dijkstra.
–
Curt SampsonJun 7 '09 at 8:24

1

This is reaally really subjective, please make it a wiki
–
hasenJun 7 '09 at 8:25

1

No, we just hate non-questions.
–
anonJun 7 '09 at 8:30

1

It's a serious question. Would it be fair to say that Stack Overflow is not for questions that don't have simple answers?
–
Curt SampsonJun 13 '09 at 4:14

@CurtSampson: Yes, it is true. Nobody cares, though. Teaching as many people as the software industry needs how to become competent programmers is simply not cost-effective. In all fairness, one of our main limitations is the primitiveness of our tools: We need to enforce pre and postconditions, yet we do not use dependent types. We need to guarantee resources are properly cleaned up, yet we do not use linear types. Heck, if we do types at all, we design class hierarchies mostly based on "intuitive" truths that fail to hold in corner cases. Good results cannot be achieved through bad means.
–
Eduardo LeónJun 22 '13 at 10:46

Except that, once they're working in a team on a piece of software too large for a single person to write or maintain, those who think they can program usually find that they, by this definition, can't - if they have the humility to accept this.
–
Michael BorgwardtJun 7 '09 at 8:47

@MichaelBorgwardt Completely agree, Software Engineering shines in the field of humanity in the discipline. It helps answer and the study the question "How can people work together to make software?" And I'd rather have someone who knows the science of software engineering who's been a programmer/developer make those decisions, rather a manager who has only been a programmer/developer or even not at all.
–
Derek LitzDec 7 '13 at 16:32

I wouldn't agree. For me, software engineering is how to go about attacking complex problem and Getting Things Done which involves more than just writing some code here and there.

Even if you can program, you need to know about the discipline in the large, etc etc etc. Taking science into engineering is about making decisions on a practical basis with the current technology available, and having a team (large, small or singular) that designs and produces a product that works, here and now.

Computer Science is IMHO a much narrower scope and less of a daily problem when doing software development.

(This of course depends on your product. Some products have more technology and science in them than does others, regardless of whether they're software, hardware, buildings, bicycles, cars or space rockets.)

Sometimes the "software engineers" are people who wroted very few lines of code. The problem isn't about dijkstra its about them. He was against formal verification in software(probably because it can't be applied in real life), not against sloppy code.