Fog Creek Software
Discussion Board




Software Engineers are Professionals

I keep seeing this mentioned in this and other forums that Software Engineering is not a Profession because the government doesn't regulate it or because of this or that reason.

I imagine poor neurotic Engineers wringing their hands at these periodic proclamations "Oh Dear! Oh My! I am not a Professional then!"

First of all, a degree is a certificate and anyone with an engineering or CS degree is certainly certified. Some certificates are more prestigious than others of course. But what does that matter? Certification has little to do with being a professional.

Professional  pro. - "1. A person following a profession."
Profession n. - "An occupation or vocation requiring training in the liberal arts or the sciences and advanced study in a specialized field."

So -- HTML coders? NOT professionals. VLSI designers? Professionals. Javascript monkeys? Probably not professionals. DSP algorithm designers? Professionals. OOA/D/P and Patterns gurus? Professionals.

So, most of us are professionals. Advanced study is certainly needed for most engineering work. And yes, some can be self-taught, can train themselves from a book or such, but that doesn't change the fact that there was advanced training involved.

So let's hear no more of these silly attacks on our professionalism, whether used for puerile name-calling, or to ride on some political certification agenda that has nothing to do with professionalism and everything to do with the politics of power.

Certification in particular is no guarantee of competance at all -- look at the mess of the profession of teaching. There are some good teachers among the ranks of the certified, but most of them in the United States are egregiously incompetant, otherwise the high rates of language and math illiteracy we see would not be possible.

X. J. Scott
Monday, June 17, 2002

Brilliantly stated X. J. Scott

J.W.
Tuesday, June 18, 2002

Professionalism is an invention to placate managerial types and customers.  They call us professionals in exchange for us never comparing floats without an epsilon.  So let's not be used by it and instead use it as it was meant to be used.

genlee
Tuesday, June 18, 2002

I'm depressed.  I feel as if I keep on programming in Java/C#-style languages, I can never call myself a professional.  More a consumer, because they're all consumer languages to get you to program on someone's machine.

It's like an engineer whose equations are all owned by some company.  I guess I can get some satisfaction from knowing that many of their tools are.

anon to protect the guilty
Tuesday, June 18, 2002

>It's like an engineer whose equations are all owned by some company. I guess I can get some satisfaction from knowing that many of their tools are.


There you corrected yourself. It is not like an engineer whose equations are owned by some company, it is like an enginieer who constructs something from parts that were made somewhere else. You do not start building a new car by mining for iron ore yourself, do you?

As for the equations: like a software enginieer, every engineer profits from and reuses knowledge that has been gathered over generations. This makes new developments possible. Alexander von Humboldt, a German historicist and scientist said: "If we see further today than our ancestors did, it is because we are standing on the shoulders of giants."

Have fun,

Jutta Jordans
Tuesday, June 18, 2002

Indeed and at times,
it may seem that we are not worthy to fill their shoes.

["If we see further today than our ancestors did, it is because we are standing on the shoulders of giants."]

J.W.
Tuesday, June 18, 2002

<B>"If we see further today than our ancestors did, it is because we are standing on the shoulders of giants."</B>

  I'm pretty dang sure this was Newton.  Or else my Math book was wrong ... or else he said a very similar thing on this death bed ... and I have a BS in Mathmatics. :-)

  In other news, Tom D. Marco wrote a brilliant treatise on Professionalism, and Professionalism in Software Mgt ... I think you might find it worthwhile:

http://www.systemsguild.com/GuildSite/TDM/Professionalism.html

regards,

Matt H.
Tuesday, June 18, 2002


It's DeMarco, not D. Marco.  Man, am I a luser.

Matt H.
Tuesday, June 18, 2002

The Columbia World of Quotations.  1996.
 
 
NUMBER: 41418
QUOTATION: If I have seen further [than certain other men] it is by standing upon the shoulders of giants.
ATTRIBUTION: Isaac Newton (1642–1727), British physicist, mathematician, universal genius. Letter to Robert Hooke, February 5, 1675.

With reference to his dependency on Galileo’s and Kepler’s work in physics and astronomy.


http://www.bartleby.com/66/18/41418.html

Ged Byrne
Tuesday, June 18, 2002


Who was it who said that the software revolution appears to be the result of midgets standing on the toes of other midgets?

Craig
Tuesday, June 18, 2002

Yep, seems to have been Newton not Humboldt, I could have sworn that I learned it differently in university (I studied history among other things). Sorry, Isaac, no offence itended :-)

Still a cool quote.

Have fun,

Jutta Jordans
Tuesday, June 18, 2002

Matt,

I thank you profusely for posting this wonderful, beautiful, inspirational piece by DeMarco:

http://www.systemsguild.com/GuildSite/TDM/Professionalism.html

One thing about Joel's board is that people have excellent taste in articles.

I found a nice explanation of DeMarco's lucid point of view regarding certification and was thrilled to see I am not the only one who sees it for what it is:

http://www.systemsguild.com/GuildSite/TDM/certification.html

Fight the Power!

X. J. Scott
Tuesday, June 18, 2002

The Isaac Newton quote about "standing on the shoulders of giants" was also a jab at one of his competitors, who happened to be very short.

Banana Fred
Tuesday, June 18, 2002

<B>"If we see further today than our ancestors did, it is because we are standing on the shoulders of giants."</B>

If I have not seen further, it is because of these damn giants standing on my shoulders.

Carpe Diem
Tuesday, June 18, 2002

Professionalism is an exclusionary meme that should be applied to everyhing or nothing. 

Javascript monkey, C++ monkey, java monkey....monkeys are monkeys regardless of language.  If you must use "professional" to rank the quality, adherence to SWE principles or any other criterea of a given black of code then there is PLENTY of "professionaly" written javascript, VB , perl, python, HTML, php etc.

Dan Sickles
Tuesday, June 18, 2002

My business card clearly states I am an engineer so i must be true.

I don't worry about being called a professional programmer because at the end of the day I know I have accomplished something that most cannot. Not to say that they don't have the capacity to learn it, but just that it happens to be a skill I have that they do not. Some think we are artisans, others think we are engineers, but most just think we are geeks. I tend to believe the later.


Speaking of slouching on the shoulders of giant's:
http://www.ibiblio.org/stayfree/9/slouching.htm

Ian Stallings
Tuesday, June 18, 2002

> Profession n. - "An occupation or vocation requiring training in the liberal arts or the sciences and advanced study in a specialized field."

I think the keyword here is "requiring".  Technically, the only thing required to be a coder is 2 hands.  It is not ILLEGAL to code w/o a licence (vis a vis accounting, law, mediciine)

Bella
Tuesday, June 18, 2002

You've negated your own argument buy introducing the definition of professional.  Thankfully most of us can still read and extract the meaning if not the spirit of the definition.

"requiring training"  -> distilled definition of professional.  Everyting else is there to purely buttress this core theme.

Based on your assertion JD's and Accoutants would certainly not be professionals. [Requirements: one mouth, zero ethics, and drink like a fish]

Finally, perhaps I need to have my eyes checked, but I see no reference to LEGAL in the root definition of PROFESSIONAL.

Functional Illiteracy is a social disease.


[> Profession n. - "An occupation or vocation requiring training in the liberal arts or the sciences and advanced study in a specialized field."

I think the keyword here is "requiring". Technically, the only thing required to be a coder is 2 hands. It is not ILLEGAL to code w/o a licence (vis a vis accounting, law, mediciine)

Bella]

Larry From Queens
Tuesday, June 18, 2002

Let me be explicit, since you simply didn't get it.  Contrary to your idiotic assertion, lawyers, doctors, accountants all REQUIRE a LICENSE to practice.  That is the definition of professional that I am using.  There are degrees and tests one must complete successfully.  There are formalities. 

On the other hand, you do NOT REQUIRE training to be a programmer.  Yes, it would be nice, and it tends to help, but TECHNICALLY, anyone can step right up and claim to be a programmer.  There is no OFFICIAL state issued piece of paper showing you're a programmer.  Get it? 

> Based on your assertion JD's and Accoutants would certainly not be professionals. [Requirements: one mouth, zero ethics, and drink like a fish]

My assertions??  My argument is that of a legal, formal nature.  YOURS is anecdotal and ethical.  YOU support the above, not ME.  Get it straight, moron.

Bella
Wednesday, June 19, 2002

Certificates, degrees etc. are part of the competence measure delegation process. By requiring or looking for a contractor or employee holding a certain certificate, you are outsourcing part of your testing of this person or contractor to the institute handing out these certifications. The real value of a certificate is that of the least qualified person ever to have obtained that certificate (the percieved value can differ widely from that since it also has to do with marketing, inertia etc.).

Just me (Sir to you)
Wednesday, June 19, 2002

>I think the keyword here is "requiring". Technically, the only thing required to be a coder is 2 hands. It is not ILLEGAL to code w/o a licence (vis a vis accounting, law, mediciine)

Bella, do you really think it should be illegal to code without a license of any kind? And then, to what extend? Only if you get paid for coding? Or should it also be illegal to take part in open source or private projects? The point is: many people get their programming skills by just doing. They learn something new with every project they participate in. (I do not know any medical doctors, lawers or accountants who started their job as a hobby first).

If a specific programming job affords specific skills that normally come with a university education in a specific subject (let's say a masters degree in mathematics), you can be pretty sure the employer will look for a person that fullfills this criteria, the master degree will become his or her "license" for the job. But many of the skills that make a good programmer are "soft skills" like ability to team, problem solving skills, stubbornness, learning strategies and creativity. How do you validate and license these?

Of course you could make an IQ test or the like part of the licensing procedure, but I think the problem with many "bad" developers ist not, that they are stupid. And I think licensing for specific programming languages or the like is even less helpfull, since we all know that learning a new language is not the big deal once you are familiar with the underlying concepts. I really think there is nothing to be gained from a legally enforced licensing system for programmers.

I understand the frustration that leads to the idea of certifications or licensing for programmers again and again. I had to work with incompetent colleagues too, from time to time. I just don't think, licensing would change much.  How well someone is able to do a specific job will only show when he or she tries. Don't  keep people who do a bad job. It is as easy as that. If your personell manager (is this the right word in English? the person who decides who to hire and fire, I mean) makes a lot of wrong decisions about people, change the personell manager.

I know, this is a Dilbert world and management does not work that way in many companies. Still, a company that hires and keeps bad programmers and does not notice it would hire and keep bad licensed programmers as well.

Have fun,

Jutta Jordans
Wednesday, June 19, 2002

Bella,
I would assert that you do require training to become a programmer. You can teach yourself but you still require training to program.

[v. trained, train·ing, trains
To coach in or accustom to a mode of behavior or performance.]


I would also assert that one could easily fall into the category of "professional" just because of the ambiguous nature of the word and the various definitions. Obviously you have your own feelings on who is and isn't a professional and who falls into that category, reserving it for those that are required by law to get a license.

Although I give you a gold star for the knee jerk inflammatory comments you so often dole out with great pleasure, it doesn't change the fact that words and their meaning are intepreted. What one might think the definition is might be right, but might conflict with another's definition, which might also be right.

Ian Stallings
Wednesday, June 19, 2002

It seems to me, based merely on the posts found here on JoelOnSoftware,  that those pushing for some some sort of legally sanctioned certification (i.e. licensing) fall into the following categories:

1. Those who seem to be worried about maintaining their employment status.
2. Unseemly bitches who have trouble expressing themselves.
3. All of the above.

I think there is enough evidence on this site alone to make a case against "licensing".

My word, how'd you like to go home to that every night...

Nat Ersoz
Wednesday, June 19, 2002

Does anyone happen to know if professional prostitutes have to be certified?

Joe AA.
Thursday, June 20, 2002

Bella, do Professional Tennis Players have to Licensed or is it just a racket?

Sorry, couldn't resist. :-)

Greg Kellerman
Friday, June 21, 2002

Just because bella throws in some flammatory remarks doesn't mean his logic isn't valid.  A profession REQUIRES training, why is this so hard to understand?  Programming doesn't REQUIRE any sort of training.  I know, I've worked with several that have had no training.  A couple were quite good, most were terrible.  You can cut hair and not charge for it without a license, but you can't cut hair and charge for it if you don't have a license.  Why?  I don't know.  Probable too many bad haircuts.  The point is that to call yourself a hairdresser, you HAVE to have gone through training (and passed a test) that demonstrates you know what you are doing.  Whether or not such a certification or license is possible in software is another point entirely.  Jeez, didn't you people have logic in school?

Now, before you morons throw your anti-cert flames my way, let it be known that I am NOT in favor of certification.  In fact, I believe programming is not only NOT a profession, but that most of you imbeciles will not be needed in the mid-future.  As a REAL engineer (yes, I passed a test), I have seen several programmers replaced by some good programs (excel, microstation, simtraffic, etc...).  Yes, we will still need excel programmers (for a while), but think of how many fortran programmers lost their jobs once we were trained to use excel.

Have fun!

:)

why i don't believe in programming
Friday, June 21, 2002

Bella by any other name is still Bellla...

La Ghostly
Friday, June 21, 2002

<giggle>

Joe AA.
Friday, June 21, 2002

I'm glad someone followed my ostensibly simple logic. 
"Required vs. Suggested" was the point I was trying to make. 

Bella
Friday, June 21, 2002

This is what I mean when I say software engineering isn't a profession:

"An occupation, such as law, medicine, or engineering, that requires considerable training and specialized study. "

I've met too many 'good' programmers that didn't know a bubble sort from merge sort ... or what a bit table is. 

IMHO:  Yeah, its a job.  Yeah, its an occupation.  But I can't consider it a profession.  YMMV.

Johnny Simmson
Saturday, June 22, 2002

And I would like to add that I work with the "OOA/D/P and Patterns" group, namely c++.  On a side note, some of the most anal-retentive patterns people I've met are the worst programmers.  They always remind me of the joke about the king asking an engineer and a computer scientist to design a toaster.

Johnny Simmson
Saturday, June 22, 2002

What's the CS vs. engineer joke?

Bella
Sunday, June 23, 2002

Once upon a time, in a kingdom not far from here, a king summoned two of his advisors for a test. He showed them both a shiny metal box with two slots in the top, a control knob, and a lever. "What do you think this is?"
One advisor, an engineer, answered first. "It is a toaster," he said. The king asked, "How would you design an embedded computer for it?" The engineer replied, "Using a four-bit microcontroller, I would write a simple program that reads the darkness knob and quantizes its position to one of 16 shades of darkness, from snow white to coal black. The program would use that darkness level as the index to a 16-element table of initial timer values. Then it would turn on the heating elements and start the timer with the initial value selected from the table. At the end of the time delay, it would turn off the heat and pop up the toast. Come back next week, and I'll show you a working prototype."


The second advisor, a computer scientist, immediately recognized the danger of such short-sighted thinking. He said, "Toasters don't just turn bread into toast, they are also used to warm frozen waffles. What you see before you is really a breakfast food cooker. As the subjects of your kingdom become more sophisticated, they will demand more capabilities. They will need a breakfast food cooker that can also cook sausage, fry bacon, and make scrambled eggs. A toaster that only makes toast will soon be obsolete. If we don't look to the future, we will have to completely redesign the toaster in just a few years."

"With this in mind, we can formulate a more intelligent solution to the problem. First, create a class of breakfast foods. Specialize this class into subclasses: grains, pork, and poultry. The specialization process should be repeated with grains divided into toast, muffins, pancakes, and waffles; pork divided into sausage, links, and bacon; and poultry divided into scrambled eggs, hard- boiled eggs, poached eggs, fried eggs, and various omelet classes."

"The ham and cheese omelet class is worth special attention because it must inherit characteristics from the pork, dairy, and poultry classes. Thus, we see that the problem cannot be properly solved without multiple inheritance. At run time, the program must create the proper object and send a message to the object that says, 'Cook yourself.' The semantics of this message depend, of course, on the kind of object, so they have a different meaning to a piece of toast than to scrambled eggs."

"Reviewing the process so far, we see that the analysis phase has revealed that the primary requirement is to cook any kind of breakfast food. In the design phase, we have discovered some derived requirements. Specifically, we need an object-oriented language with multiple inheritance. Of course, users don't want the eggs to get cold while the bacon is frying, so concurrent processing is required, too."

"We must not forget the user interface. The lever that lowers the food lacks versatility, and the darkness knob is confusing. Users won't buy the product unless it has a user-friendly, graphical interface. When the breakfast cooker is plugged in, users should see a cowboy boot on the screen. Users click on it, and the message 'Booting UNIX v.8.3' appears on the screen. (UNIX 8.3 should be out by the time the product gets to the market.) Users can pull down a menu and click on the foods they want to cook."


"Having made the wise decision of specifying the software first in the design phase, all that remains is to pick an adequate hardware platform for the implementation phase. An Intel 80386 with 8MB of memory, a 30MB hard disk, and a VGA monitor should be sufficient. If you select a multitasking, object oriented language that supports multiple inheritance and has a built-in GUI, writing the program will be a snap. (Imagine the difficulty we would have had if we had foolishly allowed a hardware-first design strategy to lock us into a four-bit microcontroller!)."

The king wisely had the computer scientist beheaded, and they all lived happily ever after.


 

Johnny Simmson
Sunday, June 23, 2002

Teachers don't get to run the class as they see fit, so don't blame illiteracy on them.  Also, certification is used to establish a bare minimum of competence - not greatness.

those who know me have no need of my name
Monday, June 24, 2002

Like it or not, the masses below the bare minimum are exactly what will drive your IT salary lower.  Just watch.

Bella
Monday, June 24, 2002

Bella-

I think what will actually drive my salary lower is the massive influx of TALENTED people.  You know, all those kids that used to major in chemistry or engineering that opted for CS instead.

Also note that my previous post offerred no opinion on the value of certification.

those who know me have no need of my name
Monday, June 24, 2002

Johnny,

That is a -great- story about the toaster.

noname,

I had many competant teachers myself,  many not so competant -- and a few outstanding for which I am grateful.

The point about the high school graduate illiteracy is that it is such an extreme example -- you have a student who makes it through close contact with 7 primary teachers and then 36 secondary level teachers, none of whom notice that he is illiterate. If even one of them did notice it, the student would have been forwarded to a reading specialist for special assistence. There is simply no excuse for any student graduating illiterate. Everyone can learn to read and it should not be so difficult for a teacher to notice when a student can not read. That 43 teachers didn't notice is a sign of either negligence or incompetance although we can probably excuse the 6 PE teachers I suppose since reading's not part of PE, so 37 teachers. I don't see that any real school policy, no matter how draconian or foolish would interfere with any teacher noticing that a student could not read over a 13 year period.

X. J. Scott
Thursday, June 27, 2002

I agree XJ.  My statement sounds pretty lame now that I read it again.  Those teachers that let that kind of thing happen should lose their certification.  I wonder how much of it is incompetence versus just not caring.

those who know me have no need of my name
Thursday, June 27, 2002

My two cents... it's about caring about the wrong thing, that is, the egos and prestige of the teachers and administration before them that did nothing about the problem.  It takes courage to stand up to crap and many prefer to go along to get along.  Pitiful.

Joe AA.
Thursday, June 27, 2002

*  Recent Topics

*  Fog Creek Home