In Search of a Software Engineering Profession

Gary Ford and Norman E. Gibbs of the Software Engineering Institute identified eight elements of a mature profession.[2] A professional's development typically follows the progression shown in Figure 6-2.

Figure 6-2. Professional development follows most or all of these basic steps in all well-established professions.

graphics/06fig02.gif

Initial Professional Education. Professionals generally begin their professional life by completing a university program in their chosen field medical school, engineering school, law school, and so on.

Accreditation. University programs are accredited by oversight bodies that determine whether each program provides adequate education. This ensures that, as long as professionals graduate from accredited programs, they will start their professional lives with the knowledge they need to perform effectively. The Accreditation Board for Engineering and Technology (ABET) oversees engineering programs in the United States, and the Canadian Engineering Accreditation Board (CEAB) oversees engineering programs in Canada.

Skills Development. For most professions, education alone is not sufficient to develop full professional capabilities. Nascent professionals need practice applying their knowledge before they are prepared to take primary responsibility for performing work in their field. Physicians have a three-year residency. Certified Public Accountants (CPAs) must work one year for a board-approved organization before receiving their licenses. Professional Engineers must have at least four years of work experience. Requiring some kind of apprenticeship ensures that people who enter a profession have practice performing work at a satisfactory level of competence.

Certification. After completion of education and skills development, a professional is required to pass one or more exams that ensure the person has attained a minimum level of knowledge. Doctors take board exams. Accountants take CPA exams. Professional engineers take a Fundamentals of Engineering exam at college graduation time and then take an engineering specialty exam about four years later. Some professions require recertification from time to time.

Licensing. Licensing is similar to certification except that it is mandatory instead of voluntary and administered by a governmental authority.

Professional Development. Many professionals are required to keep their professional education current. Ongoing professional education maintains or improves workers' knowledge and skills after they begin professional practice. Professional development requirements tend to be strongest in professions where there is a rapidly changing body of technical knowledge. Medicine is perhaps the most notable because of the constant improvements in drugs, therapies, medical equipment, and diagnosis and treatment procedures. After a professional's initial education and skills development are complete, this requirement helps to ensure a minimum competency level throughout the professional's career.

Professional Societies. Professionals see themselves as part of a community of like-minded individuals who put their professional standards above their individual self-interest or their employer's self-interest. In the beginning, professional societies usually promote the exchange of knowledge, and over time their function evolves to include defining certification criteria, managing certification programs, establishing accreditation standards, and defining codes of ethics and disciplinary action for violations of those codes.

Code of Ethics. Each profession has a code of ethics to ensure that its practitioners behave responsibly. The code states not just what its practitioners actually do, but what they should do. Professionals can be ejected from their professional societies or lose their license to practice for violating the code of ethics. Adherence to a recognized code of conduct helps professionals feel they belong to a well-regarded community, and enforcement of ethics standards helps maintain a minimum level of conduct.

In addition to the eight elements identified by Ford and Gibbs, many professions exhibit a ninth characteristic that applies to organizations rather than specific workers:

Organizational Certification. In many professions, not only must individuals be certified, their organizations must be certified. Accounting firms are peer reviewed. Hospitals are accredited, as are universities. For fields as complex as accounting, education, and medicine, organizational certification is a response to the reality that individual competence is not sufficient to guarantee adequate levels of professional service; organizational characteristics can have as much influence as individuals' characteristics.

Ford and Gibbs point out that many nonprofessional occupations exhibit some small number of these elements. For example, the state of California requires licenses for custom upholsterers, amateur boxers, private investigators, and mule racing jockeys, but it doesn't require most of the other elements of a profession for those occupations. For all common professions, nearly all of the elements exist.

Ford and Gibbs defined several levels of maturity for each of the elements of a profession.

Nonexistence. The element simply doesn't exist.

Ad Hoc. The element exists, but only in isolated, uncoordinated instances.

Established. The element exists and is clearly identified with a specific profession. (Ford and Gibbs use the word "specific," but I find that confusing.)

Maturing. The element has existed for many years and is actively maintained and improved by some professional body.

A mature profession is one whose elements have reached the maturing stage. Of course, "maturity" is a moving target. Some of the specific elements that seemed mature 30 years ago don't seem mature today, and some elements that seem mature today will not seem mature 30 years from now.

Table 6-1 describes the maturity of the software engineering profession. The profession is mostly in the Established stage, with some areas lagging and some moving into Maturity. More details about the entries in the table are discussed throughout this book.

Table 6-1. Maturity of the elements of the software engineering profession[3]

ELEMENT

CURRENT STATUS

Initial Professional Education

Between Ad Hoc and Established. Bachelor's degrees in computer science, electrical engineering, mathematics, and so on are the common preparation for entry into the profession. Dozens of master's degree programs in software engineering exist. Numerous undergraduate programs have been launched in the past few years, but few students have completed those programs so far.

Accreditation

Established. Accreditation guidelines are currently being defined by a working group from the IEEE Computer Society and the ACM but have not yet been implemented.[4]

Skills Development

Established. Guidelines have been developed for the skills needed by a software engineer to enter the profession.

Certification

Established. Commercial vendors such as Microsoft, Novell, and Oracle have provided technology-related certification programs for many years. Since 2002, the IEEE Computer Society has offered a Certified Software Development Professional Certificate for general software engineering credentials.

Licensing

Ad Hoc. The state of Texas licenses professional software engineers under a statute passed in 1998. The provinces of British Columbia and Ontario began registering professional software engineers in 1999.

Professional Development

Ad Hoc, moving toward Established. Some organizations have published professional development guidelines. For examples, see the IEEE Computer Society's continuing education guidelines at www.computer.org/certification and Construx Software's guidelines at www.construx.com/ladder.

Professional Societies

Established, moving toward Maturing. The IEEE Computer Society, the ACM, and other professional societies exist. These societies (especially the IEEE) explicitly state that they represent software engineering. They do not yet offer the full range of products and services needed to support software engineers as professionals. They cannot discipline violators of the software engineering code of ethics.

Code of Ethics

Established. The ACM and the IEEE Computer Society have adopted a code of ethics specifically for software engineers. The code is not yet widely respected or adopted within industry.

Organizational Certification

Established, moving toward Maturing. The Software Engineering Institute has defined a Software Capability Maturity Model, which it actively maintains and improves. The model has been used to assess more than 1,500 organizations since 1987. It is not applied universally. ISO 9000-9004 certification is widely adopted, especially in Europe.



Professional Software Development(c) Shorter Schedules, Higher Quality Products, More Successful Projects, [... ]reers
Professional Software Development(c) Shorter Schedules, Higher Quality Products, More Successful Projects, [... ]reers
ISBN: N/A
EAN: N/A
Year: 2005
Pages: 164

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net