Category:
Customize My Settings Edit My Profile Register To Join Search Forums Main Page Forum Help Login To The Forums
Author
Message Text For:
Do You Have a License to Drive That Mouse?
Navigation:

Discussion
Date Posted: Tuesday October 02, 2001 10:37:50 AM
Email Thread
Dave Parnas has written extensively on many aspects of software engineering and recently has written in favor of the licensing and ertification of software professionals, which he believes is, in principle, as necessary as the certification and licensing of doctors, lawyers, hairdressers and other professionals.

Reply
Top
Bottom
Next
Previous

mmarcos
Date Posted: Tuesday October 02, 2001 01:53:44 PM
Email Thread
I'm a little late and somewhat "green" for this discussion of licenses but I thought I might add an idea along. My presentation is quite simplified but only for purposes of getting the idea across.

Software, as opposed to medicine, hairdressing, plumbing, etc. is by nature a "Swiss Army knife". It is used in a wide spectrum of situations that can be radically different. While it can be used to control pressure valves in phosphate plants, it can also be used to run online role-playing games.

These two situations raise different concerns at a public level. If the software used in the pressure valves were to fail to meet its intended objectives correctly, this might generate a truly dangerous situation with lives at risk. If an RPG (role-playing game) site were to go down, the repercussion would probably be limited to a bunch of angry customers and its consequences.

I would support software engineering certification for those engineers and their firms whose work is going to be applied in situations where there are potential risks and/or dangers to human populations and/or critical infrastructures (including things such as financial services) as long as it doesn't impede the free and unencumbered development of non-critical applications by non-certified engineers. What is and isn't considered critical is sure to be argued about but perhaps this is a way out of the certificate/non-certificate dichotomy.


Reply
Top
Bottom
Next
Previous

Red Rubbie
Date Posted: Tuesday October 02, 2001 04:27:41 PM
Email Thread
No matter what Dave Parnas writes or says, it is worth reading or hearing - even if you disagree. You must think about it.

I want to make one observation that supports an idea he expressed. As a person who has engaged in a great deal of software development and consulting, I have always been amused by my compatriots who think that they don't have to make some effort to understand the field in which they are providing development or engineering.

I have been fortunate to learn a lot about the re-insurance industry as a result of consulting, and have applied my understanding of computational fluid dynamics to help with wind tunnel systems development. But, this has cost my paymasters some time,i.e., dollars. Thank heavens they were willing to pay. But, I couldn't have done any work without some understanding of the fields.

Dick Swenson

Reply
Top
Bottom
Next
Previous

epepke
Date Posted: Friday October 05, 2001 12:50:20 PM
Email Thread
This article is an example of what I call assumptive reasoning. The basic argument, as far as I can tell, goes like this:

1) Software developers do not generally have sufficient appropriate skills to produce good software in the real world.

2) Traditional computer science programs do not teach enough about physics, engineering, accounting, etc. to produce graduates with the required real-world skills.

3) The fix consists of licenses and certifications, or at least they are a step in the right direction.

In an assumptive argument, the conclusion (in this case 3) is simple assumed, rather than supported with evidence. All arguments are peripheral. The main tactic in an assumptive argument is to deflect or rule out questioning the assumption. By the responses of mmarcos and Red Rubbie I guess that it has been largely unsuccessful.

An excellent example of assumptive tactics is near the beginning of the article:

"No, there are frequent complaints about them; nobody would claim perfection. I would still argue that we're better off with them. Let's take doctors as an illustration. Some people say that doctors are too conservative and don't use natural medicines and things like that. They want to broaden the rules so that chiropractors and those who use natural remedies can practice as doctors and so that doctors can use some unconventional therapies. On the other side there are many people who notice that doctors make many mistakes, are often negligent and even incompetent. Those who note those failings want to tighten up the system. It's a compromise. I don't think doctors are perfect, and I don't think engineering is perfect."

This contains two shibboleths of assumptive arguments: 1) the setting of options along a single, linear, monotonic axis ("conservative" vs. "broaden") and 2) the notion of compromise or balance.

Assumptive arguments are common in politics and criminal law, where they are usually strongly emotive. For example, the rights of victims are often "balanced" against the rights of the accused. The hidden assumption is that the intensity of a victim's perceived suffering is positively, monotonically related to the probability that any given individual committed the crime. Because this assumption is so ludicrous and has recently been directly refuted by DNA evidence of sex offenders imprisoned many years ago, nobody tries to support it with logic, hence the assumption.

Dave Parnas' assumption is hardly ludicrous and not nearly as emotive as this, but yet I believe it is incorrect, and at the very least it needs to be examined. Here is why I think it is wrong.

1) Certifications

The term "certification" already means something with respect to computers. It is an item of vocational training which is widely viewed as an alternative or in some cases an unrelated supplement to a degree. Most certifications are offered by specific vendors and are about the tricks needed to operate their products. There is currently a blue-collar attitude amongst some certificate holders and many managers that looks down on education. While the criticism of computer science programs is to some extent valid, it is also true that there are many certificate-holders that not only wouldn't know DeBroglie's laws if they sat on their faces, but are fiercely proud of the fact. There is a strong culture, not universal but just short of dominance, which holds that knowing anything more than the bare minimum is bad. Finding this out was one of the most disturbing things I learned upon making the transition from a career as an academic research scientist to a career in industry.

Dave Parnas, by his description, has produced a pretty good program, though I wonder about the courses in thermodynamics. This may be a US/Canada cultural difference, though. In the US most students learn about thermodynamics in general physics classes, sometimes in high school. At the CS level, a course in information theory, which builds upon knowledge of thermodynamics and ties it into coding, compression, etc. is essential. Anyway, I'm sure that he means something very different by "certification." However, given the fact that a well-established culture of certification already exists, it would be worse than useless to try to take back the concept.

2) Licenses

Are licenses useful for doctors? Possibly, as they are backed up by extensive training and peer review. On the other hand, there are doctors who have lost their licenses yet continue to write diet books. Are they useful for hairdressers? Possibly, as hairdressers do seem to be pretty good about cleaning their combs these days.

However, licenses are also useful to people who treat cancer with coffee and tobacco enemas, people who massage inflamed gall bladders, people who claim to see the future in a lump of quartz, and the like, who are all "licensed professionals."

Licenses may provide two things: 1) a positive correlation between having the license and being competent, and 2) a positive correlation between having the license and being perceived as competent. For licenses to be good, not only does 1 have to be true; it has to be demonstrably stronger than 2.

This is difficult, because a license essentially means only the ability to persuade a bureaucrat to allow one to practice, and bureaucrats do not have much of a clue. The public who would use their services have a hard time telling the difference between a piece of paper that means something and one that does not. Licensing of physicians and lawyers works moderately well only because both professions have hard, centralized, hierarchical control organizations (boards and bars) that are cultural descendents of a time when both professions were managed by the Church (hence the name "profession," an abbreviation of "profession of faith").

Developers, on the other hand, have a widely non-hierarchical organization. Although old-time hackers speak of wizards and gurus, these are strictly meritocratic terms and are in fact being driven out by the modern "IT professional" mindset. A comparable universal hierarchical organization does not exist and possibly cannot exist. However, it is a prerequisite for any talk of licensing to begin. A person of mediocre competence who is perceived as such is not a real danger. A person who is perceived as more competent than is true, on the other hand, is a danger. At the present time, licenses would increase the danger.

I may be wrong about this. However, at minimum, it is part of what needs to be discussed. The nonexistent ideal fix always seems better than reality, but that says nothing about the effects once implemented and made real.


Reply
Top
Bottom
Next
Previous

Red Rubbie
Date Posted: Tuesday October 09, 2001 05:43:33 PM
Email Thread
I think that one question must be asked of us all before we criticize Parnas. Are we satisfied with the quality of the software with which we work or are forced to work?

If we are, then we presumably think that there is no need to work to improve it, and therefore we think that the problem of competency on the part of those who provide us with the software is non-existent.

If we aren't, then we must investigate ways to improve that quality. One way is to attempt to raise the competence levels (either competence in a technical sense or competence in a social sense) of thos who provide us with software.

I for one do not think the quality is acceptable. I wouldn't accept the same quality in a used car, new car, or medical practice. In fact, in the latter case I can actually consider suing. I can do the same if an architect designs a building that falls down, a plumber installs equipment that doesn't meet code, or a lawyer gives me bad advice. In fact, it seems that the only industry that is immune from being held responsible for poor quality is the software industry or the software organizations within other industries.

Anything can be misused as we saw when a commercial airplane was used as a weapon. That won't prevent me from insisting that engineers who design and build airplanes musn't be competent, and that those miserable bureaucrats who insist on airworthiness certificates shouldn't continue to do so. And, yes, I insist that pilots be licensed.

Frankly, our industry doesn't seem to be interested in improving quality - so maybe we have no choice but to insist that not-just-anybody can be permitted to produce software.

Reply
Top
Bottom
Next
Previous

epepke
Date Posted: Wednesday October 10, 2001 12:07:02 PM
Email Thread
I think that what I wrote may have been too long to read, so I'll write something shorter, using Red Rubbie's recent message as an example.

Let's say that Parnas had suggested that all programmers be required to join the Church of Scientology. (This is not a contrived example; back in the day, all Imsai employees were required to take Erhard Seminar Training, or EST, and Scientology is the closest modern equivalent.)

Then, most of Red Rubbie's message would still make sense and appear compelling, with only a couple of phrase changes. However, in that context, it would function to deflect criticism of Scientology as the one correct solution.

Of course, licensing and certification is not obviously ludicrous, as Scientology is. However, the fact that an idea is not ludicrous does not imply that it is the correct decision, and it certainly does not imply that criticizing the fix is tantamount to claiming that the problem it is purported to fix is not bad.

I make the following observations about software:

1. Software used to be better than it is today.

I once worked on a decent sized project with no known bugs. (It was a bisynchronous communications package, with host and clent abilities, file transfer, printer management, and a text editor.) We were so confident it had no bugs that we offered anyone who found a bug a free dinner at any restaurant, and we only had to pay once. This, however, was in 1983.

2. There are more certifications now than there used to be.

Up until a very few years ago, discussions on what certification to get were unheard of. Now they are ubiquitous.

3. There are examples of very good software that can be studied. Many of these are complex, and some are old.

I keep hearing how today's software is so complex it has to crash all the time. Not only do I have an emotional response that this is nonsense, but there are counterexamples. The avionics system for the Space Shuttle contains about a million lines of code but is extremely well designed and quite reliable. (c.f. Feynman's report)

Due to this history, I conclude that the problem is not that software development is primitive and must be improved, but rather that there is some force acting to push the quality of software down. Therefore, to improve software, these forces must be removed or counteracted.

I strongly suspect that the negative forces lie principly in four areas:

1) Management of software development
2) Certifications as a replacement for degrees
3) The functioning of the business marketplace
4) The functioning of the consumer marketplace

If I am correct, then licenses will have at best a neutral effect, and more certification will have a negative effect.

Reply
Top
Bottom
Next
Previous

ScarletKnight
Date Posted: Saturday October 20, 2001 09:34:26 AM
Email Thread View Profile
First, some counter-anecdotes.

I worked on a project that had as its frontline users blue-collar
workers with very little in the way of PC skills. However, some teams
were high-performing information-processors that, given enough time,
would get a degree in applied mathematics if they thought it would help do the job correctly.

On the other hand, I also saw some bare-minimum types who were proud of their PC ignorance. The spectrum exists, and I had the good fortune of working with them all. The key to reaching users is demonstrated competence and patience. If you say you're going to do something, deliver. And if someone doesn't understand something, it's your fault.

Certifications will not ensure that I practice what I previously
preached. Besides, what I said in the above is generally accepted wisdom by educators. However, if during the certification or licensing process you can ensure that someone has been exposed to those principles and thoroughly indoctrinated in them, you can assure yourself of a better developer on average.

I've been lucky. I've only worked for one really poor dev team, and that had more to do with an individual personality than lack of skills or accredations. AT&T is a lumbering ex-monopoly living in the past and keeping lawyers in business, but the software folks I've worked with throughout AT&T are among the finest I've ever met. And everything I learned, I learned on the job. Classes only get your mind ready to think in a new way: by doing it, you're reinforcing those lessons and making them permanent.

It's no different with certs and licenses. If you don't get a chance to use it and practically apply it, they mean nothing.




Reply
Top
Bottom
Next
Previous

rossde
Date Posted: Saturday November 10, 2001 03:48:46 PM
Email Thread
The key to good software is good software-development processes. This includes starting with requirements, having design reviews, doing code walk-throughs, and formal testing.

The largest single source of computer software today appears to be Microsoft, which does little of any of this. For example, the greatest part of Microsoft's testing is done via non-professional consumers performing beta testing -- and they have to pay Microsoft for the "privilege" of doing this. This even applies to software from Microsoft that is then embedded into critical military, health, and commercial systems.

Do you really believe that Microsoft will employ only licensed professionals (whose greater training should command higher salaries) and then adhere to all the costly and time-consuming aspects of the software-development processes I described above?

Reply
Top
Bottom
Next
Previous

emofine
Date Posted: Sunday April 18, 2004 04:07:41 AM
Email Thread
I completely agree with you here. Quite frankly, much has been written about certifying developers, and a lot less has been written about the many incompetent managers that somehow get to run IT projects (usually into the ground). I think people should start off with requiring certification of IT managers (and their managers, all the way to the top) before they are allowed anywhere near an IT project. In the 20 years I have been in this industry, the worst examples of software engineering that I have seen have been largely due to extremely poor management, arising from a fundamental lack of understanding of the realities of software development, and leading to the usual suspects, which include unrealistic timelines, excessive schedule pressure, unpaid overtime, and poorly designed and implemented systems.

Of course, management certification for IT (someone once suggested a "Management Maturity Model") is not likely to happen anytime soon, because the people that would have to enforce such certification would be - managers! This would be about as probable as politicians voting to eliminate their special golden parachutes in favor of surviving on Social Security and IRAs, like to rest of us.

Reply
Top
Bottom
Next
Previous
Navigation:

[ACM]   [Ubiquity]   [ACM Privacy Policy]