Applies traditional techniques to produce goods and provide services
Examples: Cabinet making, Sewing, Teaching?
Science
Aims to gather, verify and document knowledge and insight through research
Examples: Physics, Biology, Computer Science
Engineering
Applies both knowledge and scientifically analyzed and justified methods to develop and produce technical products
There has always been creative tension between theory and practice
“Well, it may be all right in practice, but it will never work in theory.” – Warren Buffett on how the academic community regards his investment approach
“In theory, there is no difference between theory and practice. But, in practice, there is.” – Jan L.A. van de Snepscheut and/or Yogi Berra
“In theory, the difference between theory and practice is small. In practice, the difference between theory and practice is large.”
“Beware of bugs in the above code; I have only proved it correct, not tried it.” – Donald Knuth
What is Software Engineering?
Engineering
The creative application of scientific principles to design or develop structures, machines
To construct or operate the same with full cognizance of their design;
To forecast their behavior under specific operating conditions;
Respecting an intended function, economics of operation or safety to life and property
Software Engineering
People processes required to build working, deployed, software based systems
Development methodology to deal with extreme complexity
Primacy of deployed systems, used in the world, having real impact on people