Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Most/all people who call themselves software engineers are not engineers. I'm not convinced that software engineering itself is actually a field of engineering, for that very reason. At most universities, software engineering is just a weak-sauce mashup of basic engineering classes, computer engineering, and compsci. I don't believe there is any agreement about the basic principles of software construction.

Just because people call themselves software engineers and schools teach it as a discrete program, doesn't make them true engineers. There are plenty of schools that offer 'financial engineering' programs. IMO, programmers have a lot more in common with traditional artisan trades than engineering. They call themselves 'software engineers' because skilled technical workers prefer to associate with their cultural equals in an established white-collar profession than blue-collar craftsmen.



I disagree, by definition in most jurisdictions, being an Engineer is being accredited by the local Engineering body. In Canada the Canadian Engineering Accreditation Board [1] accredits undergraduate programs that teach the field of Software Engineering. I attend such a program at the University of Waterloo [2][3]. After I graduate I can write the exams offered by Professional Engineers Ontario [4]. I think this makes Software Engineering a field of Engineering.

In regards to what is taught at universities, my program involves courses on Engineering Design, Computer Engineering and Computer Science, but it also has classes on what constitutes Object-Oriented design, HCI, etc. I think those courses are more than enough to teach students on the basic principles of software construction.

Also, what do you define the "basic principles of software construction" to be?

[1] http://www.engineerscanada.ca/e/index.cfm [2] http://uwaterloo.ca/ [3] http://www.softeng.uwaterloo.ca/ [4] http://www.peo.on.ca/


I guess we'll have to agree to disagree. I don't see accreditation of engineering programs as proof that software engineering is a legitimate field of engineering.

The problem for me is that there don't seem to be any basic principles of software construction. Most programs just teach a selection of software development fad methodologies. A decade ago, most programs taught some variation of waterfall development. Now they tend to teach some variation of agile development. As far as I can tell, there's no scholarship to support one method over the other - it's pure fashion and industry demand. (The decline of academic research on software construction methods since the 80s is another problem) Look at software engineering programs in another ten years and I'm sure you'll see a different mix of classes emphasizing the business trends of the day.

In comparison, you could look at the curriculum for almost any electrical engineering program from thirty years ago and you would see almost the same classes as a modern program: circuit theory, E&M, electric machines, control, communication systems, etc. The only significant difference would be the addition of courses on software and digital electronics.


Interestingly enough, the wiki for Engineering uses the following:

Engineering is the discipline, art, skill and profession of acquiring and applying scientific, mathematical, economic, social, and practical knowledge, in order to design and build structures, machines, devices, systems, materials and processes that safely realize improvements to the lives of people. (http://en.wikipedia.org/wiki/Engineering)

By using art, it would indicate that process is not necessarily needed for something to be classified as engineering. The fact that software engineers do use mathematical concepts (similar to how a civil, mechanical, or chemical engineer does) to build systems would make it an engineering discipline.

Disclaimer: I am a software engineer and I don't look at myself as any more or less of an engineer as any others.


They call themselves 'software engineers' because skilled technical workers prefer to associate with their cultural equals in an established white-collar profession than blue-collar craftsmen.

I hate the term "software engineer" but for the opposite reason: I see "engineering" as a lesser profession than computer programming. In programming, you never solve the same problem twice; you make something new each time because you can freely reuse what you made last time. In engineering, you're building the same bridge 1000 times over 1000 rivers.

A "software engineer" is a person that makes a career out of solving the same problem over and over again. There are a lot of people like this, but I'm not going to associate myself with that.


There's nothing wrong with being a craftsman. I think programmers would be better off if they embraced programming as a craft, instead of pretending that it obeys scientific principles as yet undiscovered and can be practiced without reference to the skill of the individual programmer.


There's plenty of areas where "writing code" is engineering, and there's plenty others where its rocket science. Then there's some where its Apollo 13.

The trick is to know which is which.


I think you’re missing the most basic separation.

Engineering has a long history of building things that can kill people. In that context significant caution is required which is still at the heart of any of the true engineering disciplines. Some software fits into that context but the failure of most pieces of software tend to have less dramatic outcomes with most critical systems designed to operate even if it's software does the worst possible things at the worst time.


" A real engineer applies physical laws to create a product with some certainty of functioning properly."

"Most/all people who call themselves software engineers are not engineers. I'm not convinced that software engineering itself is actually a field of engineering, for that very reason."

Extracting meaningful information from a corpus of documents involves dealing with physical laws.Identifying spam deals with physical laws. So do a lot of other problems which often have strong mathematical theory. Mathematics is lot abstract and often comes before the physics of things.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: