(Using Clip Art to Help Argue That) Certifying Software Professionals (is the Wave of the Future) Brian Demers February 24, 2000 CS 99 Prof. Kotz
Whom do you trust? And how much do you trust them? Your friend Raoul Your house
Software Developers Today No common background –College grad –Transfer from another field –Self-taught Training is often inadequate (Or, “Did CS 23 really teach you about Software Engineering?”)
Consequences of the Current Situation Non-critical systems –Windows –Netscape –PC Blitz Critical systems: Therac-25 –Radiation treatment device –Hardware interlocks replaced by faulty software –2 dead, 4 crippled by radiation overexposure
How “professional” is software engineering? Deborah Johnson on Special Professions: Requires mastery of an esoteric body of knowledge Autonomy in work Professional society controls “admission” Fulfills important social need
Software Engineering vs. Other Professions SE could meet all four criteria Other professions fail some criteria, but are still thought of as professions All professionals: obligated to some minimum level of performance How can there be a minimum standard of performance with bugs?
BUGS! Errors in computer programs are inevitable …but programmers cannot be absolved of responsibility for serious or careless mistakes …and not all errors are inevitable
Why Certification? Establish a base quality level Expose SEs to more problems –Exposure happens before the job –Tests could change with advances/changes in technology Facilitates identification of negligent programming
Types of Certification Group: –Capability Maturity Model (CMM) –ISO 9001 Individual: –Personal Software Process (PSP) –Microsoft Certification
Group Certification CMM model –5 different levels of process maturity –Describes “what”, not “how” “Documented process” “Monitor and control performance” “Review” Does it work? –Great improvements in meeting ship dates –At one company, number of critical defects at ship time dropped to zero. –Teams claimed to experience higher overall efficiency
Individual Certification PSP –Devised by Software Engineering Inst. (creators of CMM) –Focuses on “how” – avoid introducing error to begin with –Practice large-scale techniques on small problems –Quantitatively analyze results Does this work? –Much improved ability to estimate product completion –EKLOC: dropped from 100 to 20 –LOC/hr remained constant –Shorter test times claimed
Conclusions Ethically, there is a class of problems which good design and implementation principles would help prevent Certification of software engineers: –Seems to help prevent these problems –Increases reliability and productivity overall –Protects against lawsuits in the future? What do you think?