Define -- "Software Engineering"
2nesser asks: "How do you define the term 'Software Engineering'? Some see it as the implementation of the theoretical world of Computer Science, but isn't there more to it than that? Social responsibility, documentation, a program that works under precise, known conditions? Can you compare Software Engineering to other disciplines? What sets a 'Software Engineer' apart from the rest of the crowd?"
When I worked for a large government contractor, there was intense interest in having our division become SEI level 3 compliant (then level 4 the next year, then level 5 the next year.)
:-(
This question was one of the ones asked by management at the time. They knew then that they were are the mercy of the 80/20 rules:
80% of the code takes 20% of the project time
last 20% of the code takes 80% of the time
80% of the staff does 20% of the work,
20% of the staff does 80% of the work.
etc.
So they tried to reign the "heroes" in. They did so by trying to adapt the over-performing 20% - by limiting what and when they could do, so as to:
A) bring the 80% along and
B) make the 80% not look so bad/suffer from low self esteem.
That division of that company reorganized itself into non-existence in the last few years (it had 1,200 "engineers" when they started in on the SEI stuff.)
--
In my opinion, programming is most efficiently done by individuals, when they are properly motivated. Much of the discipline of "software engineering" practices are VERY good but tend to be taken too far the instant politics are involved. For example, code reviews are essential for production quality code, yet when they become required for the tiniest change they become bureaucratic nightmares.
In my experience, the term 'engineer' has only been thrown about as a political buzzword; sometimes to justify higher education requirements, other times it is used to scare end-users out of filing formal complaints and other times it was used to raise hourly billing rates.
But whenever the term was used, it meant someone was planning on having programmers (ahem, engineers) program less.
"God is dead." - Frederik Nietzsche