| |||||||||
For many years, software engineering has been trying to be a profession. This was hampered by the common perception that it is merely the application of computer science. The goal of making software engineering into its own profession spurred a great deal of debate about what it means to be a profession.
To claim to be a profession, software engineering needs to be widely recognized as such. Such things are having undergraduate degrees, licences that are recognized by state governments, their own codes of ethics, and so on are symbols of that recognition.
In the mid-1990s, the National Society of Professional Engineers sued in all states in the US to prohibit anyone from using the term software engineer as a noun or field of employment. They won in most (48?) states. Utah does not license professional engineers, so the point was moot there.
In response, the IEEE and ACM began a joint effort called JCESEP in 1993, which evolved into SWECC in 1998 to explore making software engineering into a profession. Both committees used traditional engineering model. The ACM pulled out of SWECC (in May 1999), objecting to its support for the Texas professionalization efforts, of having state licenses for software engineers. The IEEE continued to support making software engineering a branch of traditional engineering.
Software engineering ethics is a large field. In some ways it began as an attempt to define bugs as unethical. However that is unrealistic.
Bill Joy argued that "better software" can only enable its privileged end users, make reality more power-pointy as opposed to more humane, and ultimately run away with itself so that "the future doesn't need us." He openly questioned the goals of software engineering in this respect, asking why it isn't trying to be more ethical rather than more efficient.
Lawrence Lessig argued that coding is more like law, in that it expresses a certain social ethic by deciding what to ignore/consider in making detailed decisions.
Most professional organizations (such as the ACM and IEEE) and certifying organizations (such as the Institute for Certification of Computer Professionals) have formal codes of ethics. Adherence to the code of ethics is required as a condition of membership or certification. According to the ICCP, violation of the code can result in revocation of the certificate.
Of course, most traditional engineers never bother to earn licenses.
Donald Bagart of Texas became the first professional software engineer in the U.S. on September 4, 1998 or October 9, 1998. As of May 2002, Texas had issued 44 professional engineering licenses for software engineers.
Professional licensing has been criticized for many reasons.
For more information, see: