This post is just a thought on the whole "is software engineering" question. Its a big question, so I'm not attempting to make any sweeping claims, but rather to relate my own experience.

I do not have an engineering degree, nor a certification, or anything to label me as an engineer. However, I think of what I do at work as software engineering- not software development or coding or hacking, but engineering.

The reason for this is that I am an engineer in a purely defacto manner. I work at NASA within an engineering organization with its own practices and processes like all the other engineering organizations. We are responsible for software just as the mechnical group is for mechnical things, the elecrical group for electrical things, structural for structure, thermal for thermal, etc.

Within my group, we maintain process documents, we gather requirements which are reviewed and signed off, we write and run test procedures (also reviewed and signed), we hold reviews, we document and test and release and all kinds of software activities. This is different from what I believe is commonly done within a software organization- its not agile and its not much fun, but software doesn't get a pass just because its soft.

We are not perfect- far from it- but we do get evaluated (internally and externally) for conformance with NASA 7150.2C and CMMI processes. We are audited by a separate software assurance group. We review our own processes and are responsible for compliance with NASA practices.

In other words, I see software treated like any other engineering discpline, and in that environment, software acts like an engineering discipline. I'm not saying that software is exactly like the well established discplines, and I recognize that there are difficulties when referring to something as engineering, and that they can differ by country and culture. Thats why I'm merely reporting my experience- I am a member in the Flight Software Systems Branch of the Engineering Directorate of Langley Research Center and therefore, defacto, an engineer.