Unlike other professions (such as Accounting, Law, Medicine, etc.), there is no profession-wide certification for Software Engineering.
I am well aware of the multitude of technology and methodology specific certifications that aim to serve as proof of specialisation and experience, but there is no public Software Engineering society / governing body that sets (and has the power to legally assess) generally accepted professional standards.
I understand that software is a dynamic beast - that is part art, part science - but I'm wondering whether Software Engineering has the potential to become a formal profession.
What needs to change for this to happen, and would it even be a good thing?
(If anybody knows of formal research into this topic I'd greatly appreciate references)
I agree with many of the good points raised below regarding the current level of certification in Software Engineering. I also find it very interesting that some countries treat Software Engineering as a profession whilst others don't.
There does however seem to be a bit of shroud surrounding the term "formal profession", and how it would apply to Software Engineering. I think the key issue with Software Engineering - and the primary reason it is not a full-blown profession - is that if you're a certified Software Engineer, and - for example - some software you wrote for an elevator malfunctions and kills people, your certification and / or membership to a formal professional body won't get revoked.
Sure, your company might get sued for millions, and you personally might lose your job and earn a bad reference, but generally speaking, you personally are protected by the shield of limited liability as a result of being employed by said company. In other words, and as far as I know, there is no legal assessment / enforcement in place (unlike other formal professions and their governing societies) which have the mandate to officially bar you from trading once you've made a colossal stuff-up.
I quite liked the answer that touched on the fact that Software Engineering - as it stands - is a meritocracy, which doesn't need to be a formal profession, and that this is a good thing that shouldn't change. At the same time, I think we need to make a clear distinction between Software Engineers of mission-critical software versus developers of miscellaneous / non-critical software.
To those of you who work / have worked on mission-critical software - is there any personal liability? Surely there is a need for formal repercussions in the event of the Software Engineer making a costly mistake?