-
"professionilization" of software development?
Steve McConnel's latest book "After the Gold Rush" discusses how mindless
marketers, impossible deadlines and too much coffee has cheapened the software
engineers reputation as a professional. He proposes that, to be called a
software engineer, a programmer should have certifications (just as electricians,
architects, etc.. those other "honorable" professions), a strong core knowledge
and a set of professional ethics or accountability for the work he/she has
done (imagine getting sued because you modeled a piece of software incorrectly).
Anyways, I forgot the details, but the software engineer track (before you
can call yourself an ACTUAL software engineer) he proposed looked something
like this.(I AM NOT SURE THIS IS ACCURATE, BUT ITS CLOSE!)
No degree No college - 15 years experience - then u have the oppurtunity
to take the SE test 
No degree Some college - 12/13 years experience - then u can take the test
BA Computer Science - 8 years experience, then u can take the test
Masters - 5 years, take test
PHD - 2-4 I forgot.. take test
Software engineers would have senior roles in organizations and these organizations
would be required to have n number of SE's for i number of programmers in
their shop. SE's would have a base salary for achieving this. I believe
he stated that Texas already does this.?..? Anyways, he used the analogy
of the gold rush in comparing the programmer to the "gold digger/panner".
The skills the gold panner/digger had were in need at the time of the gold
rush so everyone worked and did well, then afterwards, the process of extracting
gold became more complex and only some panners/diggers kept on and studied
and evolved with the times, shedding the "old-style panners"..
I don't necessarily have a strong opinion one way or another, its just a
very interesting read.
The reason I posted this is because it seems to be a natural step for the
discussion over certifications. Sometimes, the best way to understand the
direction an industry should follow in the future, is to take a look at other
industries, more mature industries and see how they do it(although, software
engineering does have many concepts which are far superior to other industries,
our processes for instance (XTREME!)).
~aaron
-
Re: "professionilization" of software development?
In article <3c0cdb9a$1@147.208.176.211>, a@a.com says...
>
> I believe he stated that Texas already does this.?..?
No, Texas is not doing this.
Bob
-
Re: "professionilization" of software development?
On Tue, 4 Dec 2001 09:35:49 -0600, Bob
<rainsleyno@bodyspamsolutions.com> wrote:
>In article <3c0cdb9a$1@147.208.176.211>, a@a.com says...
>>
>> I believe he stated that Texas already does this.?..?
>
>No, Texas is not doing this.
To hang your shingle out as an "Engineer" you have to be a registered
Professional Engineer (PE) in Texas.
Without the PE you can work for some large company and do "engineering
work" for that company and have the title "engineer" by your name, but
you cannot do work for "the public".
What's more, the title "Engineer" and the engineering tests are far
more broad than just your area of specialization (software). To even
pass the Engineer In Training (EIT) exam, you need to know core stuff
like thermodynamics, structure, electrical and power systems,
chemistry, etc, etc.
A big part of "Engineer" is to know enough about a broad range of
issues so that you recognize what you don't know and get someone who
does.
Dan
Language Stability is a *feature* I wish VB had!
(#6)
-
Re: "professionilization" of software development?
Dan Barclay <Dan@MVPs.org> wrote:
>To hang your shingle out as an "Engineer" you have to be a registered
>Professional Engineer (PE) in Texas.
This is also true in Illinois and, I suspect, a number of other states.
>What's more, the title "Engineer" and the engineering tests are far
>more broad than just your area of specialization (software). To even
>pass the Engineer In Training (EIT) exam, you need to know core stuff
>like thermodynamics, structure, electrical and power systems,
>chemistry, etc, etc.
>
>A big part of "Engineer" is to know enough about a broad range of
>issues so that you recognize what you don't know and get someone who
>does.
>
>Dan
>
>Language Stability is a *feature* I wish VB had!
> (#6)
I second that. I was originally a chemical engineer (for 7 years) and employed
in the software world for the last 8+ years. The term "engineer" as applied
to software developers has always seemed a misnomer. I do agree, however,
that some sort of experience-based certification is necessary. The problem
is that this would seriously cut into the profits of the cottage industry
that has sprung up around certification courses, books, and of course the
fees for the actual exams. As long as the vendors control the certifications
and not the professional organizations, this won't change.
-
Re: "professionilization" of software development?
On 5 Dec 2001 21:02:31 GMT, "Byron Lee" <bglyahoo@yahoo.com> wrote:
>I second that. I was originally a chemical engineer (for 7 years) and employed
>in the software world for the last 8+ years. The term "engineer" as applied
>to software developers has always seemed a misnomer. I do agree, however,
>that some sort of experience-based certification is necessary. The problem
>is that this would seriously cut into the profits of the cottage industry
>that has sprung up around certification courses, books, and of course the
>fees for the actual exams. As long as the vendors control the certifications
>and not the professional organizations, this won't change.
It's difficult to apply "engineer" to software. What's more,
"engineered" software isn't necessarily better than "cottage" software
in many cases.
I'm a software developer, not a software engineer. I worked as an
Engineer for "a large chemical company" for a number of years before
doing this full time. I've had CS grads of several styles working for
and with me. There is no comparison to engineering, in the broader
sense. At least at this point in time.
Dan
Language Stability is a *feature* I wish VB had!
(#6)
-
Re: "professionilization" of software development?
>I'm a software developer, not a software engineer.
I think thats incorrect. the use of the word "engineer" is different from
industry-industry and institution - institution and country-country. Its
like saying that a public method in a class is not an interface because Sun's
java defines an interface as an un-implemented class. An interface in its
rawest form is ".. a point at which independent systems or diverse groups
interact". So it is NOT incorrect to say a public method is an interface
although Java-only programmers (thats all they know lets say) will say, "thats
a method, not an interface"..
Engineer is defined as:
"One who is trained or professionally engaged in a branch of engineering."
Engineering is defined:
"The application of scientific and mathematical principles to practical ends
such as the design, manufacture, and operation of efficient and economical
structures, machines, processes, and systems. "
Therefor, if software programmers apply scientific/mathematical principles
to design structures (although abstract), processes and systems, they are
engineers. This will be true until the industry sets standards that are
accepted by the masses, which hasn't happened.
-
Re: "professionilization" of software development?
What makes a good software engineer? Certification is something that probably,
in a statistical sense, makes a difference, though I would venture to guess
that it is no guarantee. The introduction of new languages and new programming
paradigms has changed what the definition of a good software engineer is.
There are, in fact, differing opinions based on which side of the process
you dwell. Today we have RAD programming as an institutional practice...
however there are those in the industry who observe that this methodology
has lead to less reliable software, albeit the software is pumped out faster
and is therefore more profitable (think Microsoft). So the SE from that
Profits Standard is good, however he is bad by the standards of the Engineering
community. Since software, usually, does not kill people when it fails,
whereas hardware very well may (such as bridges, cars, refrigerators, etc.)
the qaulity control standards for phyiscal engineers is much higher than
for software. It is permissible, though annoying, that software will crash.
It is not permissible for bridges to do so. Therein is the rub.
A good (corporate environment) Software Engineer, in my opinion, has the
following qualities (with relative difficulty of testing during the interview
process):
------------------------------------
A fundametally sound understanding of programming principals and techniques.
[easy to test]
Old-world appreciation of what a stable application is and why it is desirable
to work towards that goal and how to do so (proper design, validation, error
trapping, etc). [not too difficult to test]
An ability to quickly analyze business requirements and construct the best
available architecture for an application based on the business functionality
(ie - excel where excel belongs, database server intranet app where those
belong, etc). [somewhat difficult to test]
The ability to resist the temptation to implement new technologies in order
to pad your own resume. [impossible to test]
The ability to recognize when a new technology will actually serve well for
implementing a business process. [difficult to test]
An ability to handle high stress and obsticals without going balistic. [difficult
to test]
An ability to communicate honestly and fearlessly about issues with the business
before the issues become a crisis (risk analysis). [impossible to test]
A will to document regardless of whether or not the business appropriately
assigns time (Requirements, Scope, Specifications, Risk Assessment). [difficult
to test]
The ability to gracefully sail past a deadline when resources and time have
not been allocated properly without feeling awful. [impossible to test]
An ability to learn while doing and to do research on the fly in adverse
circumstances using as many tools as required to get the appropriate technical
answers. [somewhat difficult to test]
The ability to talk down scope creep. [impossible to test]
The ability to construct applications end-to-end, from the initial design
(data model, business logic, user interface) all the way through to the release
of the final implementation. [somewhat difficult to test]
An understanding of the usefulness of the Project Life Cycle. [easy to test]
An understanding of the difference between good and bad project management,
and how to handle either case so that the project itself succeeds. [difficult
to test]
A sense of humor about it all. [somewhat difficult to test]
------------------------------------
These are some of the things that make for good software engineers. However,
I question whether you can find any certification that will teach them all,
or even most of them. Even 15 years of experience may not teach them all.
However, some software engineers actually have these qualities. These
are the SEs that are actually worth a fortune.
Recognizing them when you see them is a skill that HR departments should
create a certification for.
Sincerely,
VBWyrde
-
Re: "professionilization" of software development?
On 6 Dec 2001 12:07:01 GMT, "Aaron Sevivas" <a@a.com> wrote:
>
>
>>I'm a software developer, not a software engineer.
>
>I think thats incorrect.
Nope, that's correct in the formal sense. Recall that the initial
comments were discussion of the formal Engineering title and its use
in Texas. If you want to talk "generics" then we're on different
pages.
>the use of the word "engineer" is different from
>industry-industry and institution - institution and country-country. Its
>like saying that a public method in a class is not an interface because Sun's
>java defines an interface as an un-implemented class. An interface in its
>rawest form is ".. a point at which independent systems or diverse groups
>interact". So it is NOT incorrect to say a public method is an interface
>although Java-only programmers (thats all they know lets say) will say, "thats
>a method, not an interface"..
>
>Engineer is defined as:
>"One who is trained or professionally engaged in a branch of engineering."
I R A 'lectrical engineer by formal training, and I've practiced
electrical, mechanical, control systems, and chemical engineering.
>Engineering is defined:
>
>"The application of scientific and mathematical principles to practical ends
>such as the design, manufacture, and operation of efficient and economical
>structures, machines, processes, and systems. "
Good definition, but doing something that you think corresponds to
this definition does not make you an Engineer.
>Therefor,
Therefor does not apply here.
>if software programmers apply scientific/mathematical principles
>to design structures (although abstract), processes and systems, they are
>engineers. This will be true until the industry sets standards that are
>accepted by the masses, which hasn't happened.
Fine and dandy, but to practice Engineering for public consumption you
need to have a fairly broad background. It's not enough to know
electrical circuits, for example. If the electrical circuit I'm
designing is intended to control a chemical plant I need to know what
the cause/effect will be of changes in the circuit. I need to know at
least enough to recognize a potential effect and ask questions of
those in another field. Same is true for software engineers.
Regardless of what you *think* it should be, at least in most places
in the country, you'll need to be registered as a PE to practice *for
the public*. In some places, you need to be thusly registered in
order to use the term "Engineer" as a public title.
That will cause you to take an EIT exam... the same exam for all
engineers of all disciplines. If you take that exam knowing only
about your own discipline you simply won't pass it. When I took it,
it was only one simple exam though. It lasted about 8 hours, and you
bring extra batteries for your calculator (though I had a slide rule
as a backup <g>).
Dan
Language Stability is a *feature* I wish VB had!
(#6)
-
Re: "professionilization" of software development?
On 6 Dec 2001 19:54:37 GMT, "VBWyrde" <VBWyrde@xyz.com> wrote:
<snip>
>An ability to quickly analyze business requirements and construct the best
>available architecture for an application based on the business functionality
>(ie - excel where excel belongs, database server intranet app where those
>belong, etc). [somewhat difficult to test]
This is exactly the issue I was raising regarding the term
"Engineering"... except that "quickly analyze business requirements"
goes far beyond business. There is software deeply embedded in high
risk operations, where understanding of physics, chemistry, electrical
systems, etc, etc, etc, are as important as knowledge of business
issues to the business application.
I have a background in process control systems (from a previous life).
I spent a number of years designing and implementing control,
optimization, and safety systems for chemical plants. Want to get a
long discussion going? Ask 15 knowledgable engineers about placing
"real time systems" on various systems. Can you do it on NT? VMS?
DOS? Win16? Unix? What is the effect of routine (and nonroutine)
maintenance? The point isn't the answer, it's analysis of the
conditions with respect to the purpose of the "real time system".
>The ability to resist the temptation to implement new technologies in order
>to pad your own resume. [impossible to test]
Yea, but from what I've seen, there would be a *lot* of failures if it
could be tested <gg>.
<snip>
>A sense of humor about it all. [somewhat difficult to test]
LOL Good list. Still, it only discusses how well one handles
software. Software is absolutely useless if the effects of it running
never get outside the box it's in. To be an Engineer, you have to get
outside the box and do it in a competent way. Otherwise you're just a
very good programmer.
>
>These are some of the things that make for good software engineers. However,
>I question whether you can find any certification that will teach them all,
>or even most of them. Even 15 years of experience may not teach them all.
> However, some software engineers actually have these qualities. These
>are the SEs that are actually worth a fortune.
You are right, and Engineering certification also takes documented
experience. All the testing does is assure *technical* competence in
on a broad basis.
Dan
Language Stability is a *feature* I wish VB had!
(#6)
-
Re: "professionilization" of software development?
"Aaron Sevivas" <a@a.com> wrote: <SNIP>
Good call Aaron, distinguishing between "engineers" and "engineering". This
is off topic but I think it needs to be said since I see it re-occuring in
the discussions.
The word "engineer" has been reserved by, who else, engineers. "Engineers"
are people that graduated with an engineering degree from an accredited university.
As such, engineers are working hard to reserve that word for their designation,
much like "MD" is reserved for doctors. There are even law suits to remove
the word "engineer" from "sofware engineer" since in their eye, it is promoting
software people as "engineers". Engineers, in this context, we are not.
Engineers focus on principles relating to fluids, electricity, etc. Software
developers do not. Software developers learn about PM, JAD, estimation,
problem solving, life cycles, architecture, algorithms, etc. These concepts
have nothing to do with electrons or civil structures. There is definitely
a gap and difference in focus between the two professions.
Engineers know nothing of "high cohesion" and "loosely couple", OO design
or polymorphism. There seems to be some confusion between the professions
because engineering has been applied as an industry for quite some time.
The "companies" (rather than the engineering courses themselves - at least
to a lesser degree than available in comp. sci.) have learned through experience
the need for configuration managment, detailed design and a defined work
method. This is where two professions start to overlap. Software developers
encounter a similiar "project" cycle as engineers do. We however cannot
use a typical engineering methodology effectively, so where the two professions
start to merge, they also start to diverge.
I myself prefer the term "software architect" over "software engineer" but
I'm sure the arthitects would object to us using their designation also...
much like domain names there are not enough available verbs left to describe
us.
Architect: "a person who designs and guides a plan or undertaking."
James
-
Re: "professionilization" of software development?
Dan Barclay <Dan@MVPs.org> wrote:
>On 6 Dec 2001 12:07:01 GMT, "Aaron Sevivas" <a@a.com> wrote:
>>
>>>I'm a software developer, not a software engineer.
>Nope, that's correct in the formal sense.
Nope, thats correct in Texas and some other states of the Union. If your
only talking about Texas then, yes, I guess your not an engineer.
I thought it would be obvious I am speaking out of the 'Texas' context when
I state this:
"the use of the word "engineer" is different from
industry-industry and institution - institution and country-country"
I AM talking generically, thats what makes the topic interesting.
>>Engineering is defined:
>>
>>"The application of scientific and mathematical principles to practical
ends
>>such as the design, manufacture, and operation of efficient and economical
>>structures, machines, processes, and systems. "
>Good definition, but doing something that you think corresponds to
>this definition does not make you an Engineer.
Thank Webster.. and yes, it does where I'm from. Since there is no agreed
upon standard in all 50 states, and around the world, its like saying the
jamaican medicine man is not a doctor in his OWN village where the requirements
to be a doctor haven't been laid out or enforced.. the people of his village
calls him the doctor, and they probably won't stop just because u say so.
Thats how this whole conversation started remember! After the Gold Rush,
professionalization of the software industry, taking tests to be an engineer..
Once again, if you are ONLY talking about texas then we are both conversing
out of context..
>>if software programmers apply scientific/mathematical principles
>>to design structures (although abstract), processes and systems, they are
>>engineers. This will be true until the industry sets standards that are
>>accepted by the masses, which hasn't happened.
>
>Fine and dandy, but to practice Engineering for public consumption you
>need to have a fairly broad background. It's not enough to know
>electrical circuits, for example. If the electrical circuit I'm
>designing is intended to control a chemical plant I need to know what
>the cause/effect will be of changes in the circuit. I need to know at
>least enough to recognize a potential effect and ask questions of
>those in another field. Same is true for software engineers.
Again, in Texas this may be so (to attain the title of software engineer
one must pass exams on the fringe subsystems also, EE, low level programming,
etc).. your defining "engineer" here. I defined it using the dictionary,
your defining it based on your states definition.
>Regardless of what you *think* it should be, at least in most places
>in the country, you'll need to be registered as a PE to practice *for
>the public*.
Wow, if its the same in most states I wonder why Steve C McConnell wrote
his book After the Gold Rush (stating that we must test SE's before we can
call them SEs)..
Remember, your talking about engineering which hasn't been UNIVERSALLY associated
with academic achievment in the United States YET.
~aaron
-
Re: "professionilization" of software development?
On 7 Dec 2001 13:31:23 GMT, "Aaron Sevivas" <a@a.com> wrote:
>
>Dan Barclay <Dan@MVPs.org> wrote:
>>On 6 Dec 2001 12:07:01 GMT, "Aaron Sevivas" <a@a.com> wrote:
>>>
>>>>I'm a software developer, not a software engineer.
>>Nope, that's correct in the formal sense.
>
>Nope, thats correct in Texas and some other states of the Union. If your
>only talking about Texas then, yes, I guess your not an engineer.
Since I was talking about myself, and I live in Texas the statement
seems fairly clear and needs no speculation <g>.
>I thought it would be obvious I am speaking out of the 'Texas' context when
>I state this:
Dunno what *you're* talking about, but above statements you quoted are
mine.
>"the use of the word "engineer" is different from
>industry-industry and institution - institution and country-country"
>
>I AM talking generically, thats what makes the topic interesting.
Fine, and generically I agree. However, if you look at the top level
question it was with regard to "Engineering" in the formal sense (as I
recall the initial question was with regard to the term as used in
Texas). I was answering in that regard, and I'm fairly certain my
statements are correct.
<snip>
>>Regardless of what you *think* it should be, at least in most places
>>in the country, you'll need to be registered as a PE to practice *for
>>the public*.
>
>Wow, if its the same in most states I wonder why Steve C McConnell wrote
>his book After the Gold Rush (stating that we must test SE's before we can
>call them SEs)..
Steve McConnell isn't doing Engineering work (or signing off on
designs) for public consumption. Like it or not, it takes a PE for
that even if (in other states) you can *call* yourself an engineer.
If you have a phd it's customary for people to call you "Doctor".
That doesn't allow you to practice medicine and it's clearly a
different meaning for the same word.
You can believe a "software engineer" is an engineer if you want.
Unless he's completed an entire engineering curriculum and met the
licensing requirements, he isn't formally an "Engineer". Others here
tell me that "software engineers" currently do not meet those
requirements (I don't know that for sure) but if that is the case then
they won't be licensed as PE's. Perhaps they should be given the full
engineering curriculum... it would be fine with me.
>Remember, your talking about engineering which hasn't been UNIVERSALLY associated
>with academic achievment in the United States YET.
We're actually talking about two different things from the sound of
it.
Dan
Language Stability is a *feature* I wish VB had!
(#6)
-
Re: "professionilization" of software development?
>>I thought it would be obvious I am speaking out of the 'Texas' context when
>>I state this:
>
<youLeftThisPartOut..TheActualStatementIWasReferringTo>
>>"the use of the word "engineer" is different from
>>industry-industry and institution - institution and country-country"
</youLeftThisPartOut..TheActualStatementIWasReferringTo>>Dunno what *you're*
talking about, but above statements you quoted are
>mine.
BTW.. these are my statements.. See for yourself..
http://news.devx.com/cgi-bin/dnewswe...tem=1650&utag=
>Steve McConnell isn't doing Engineering work (or signing off on
>designs) for public consumption.
says you 
>We're actually talking about two different things from the sound of
>it.
probably..
later ~aaron
-
Re: "professionilization" of software development?
And I thought customers where bad with defining requirements. No wonder we're
all in trouble.
Dan Barclay <Dan@MVPs.org> wrote:
>On 6 Dec 2001 12:07:01 GMT, "Aaron Sevivas" <a@a.com> wrote:
>
>>
>>
>>>I'm a software developer, not a software engineer.
>>
>>I think thats incorrect.
>
>Nope, that's correct in the formal sense. Recall that the initial
>comments were discussion of the formal Engineering title and its use
>in Texas. If you want to talk "generics" then we're on different
>pages.
>
>>the use of the word "engineer" is different from
>>industry-industry and institution - institution and country-country. Its
>>like saying that a public method in a class is not an interface because
Sun's
>>java defines an interface as an un-implemented class. An interface in
its
>>rawest form is ".. a point at which independent systems or diverse groups
>>interact". So it is NOT incorrect to say a public method is an interface
>>although Java-only programmers (thats all they know lets say) will say,
"thats
>>a method, not an interface"..
>>
>>Engineer is defined as:
>>"One who is trained or professionally engaged in a branch of engineering."
>
>I R A 'lectrical engineer by formal training, and I've practiced
>electrical, mechanical, control systems, and chemical engineering.
>
>>Engineering is defined:
>>
>>"The application of scientific and mathematical principles to practical
ends
>>such as the design, manufacture, and operation of efficient and economical
>>structures, machines, processes, and systems. "
>
>Good definition, but doing something that you think corresponds to
>this definition does not make you an Engineer.
>
>>Therefor,
>
>Therefor does not apply here.
>
>>if software programmers apply scientific/mathematical principles
>>to design structures (although abstract), processes and systems, they are
>>engineers. This will be true until the industry sets standards that are
>>accepted by the masses, which hasn't happened.
>
>Fine and dandy, but to practice Engineering for public consumption you
>need to have a fairly broad background. It's not enough to know
>electrical circuits, for example. If the electrical circuit I'm
>designing is intended to control a chemical plant I need to know what
>the cause/effect will be of changes in the circuit. I need to know at
>least enough to recognize a potential effect and ask questions of
>those in another field. Same is true for software engineers.
>
>Regardless of what you *think* it should be, at least in most places
>in the country, you'll need to be registered as a PE to practice *for
>the public*. In some places, you need to be thusly registered in
>order to use the term "Engineer" as a public title.
>
>That will cause you to take an EIT exam... the same exam for all
>engineers of all disciplines. If you take that exam knowing only
>about your own discipline you simply won't pass it. When I took it,
>it was only one simple exam though. It lasted about 8 hours, and you
>bring extra batteries for your calculator (though I had a slide rule
>as a backup <g>).
>
>Dan
>
>Language Stability is a *feature* I wish VB had!
> (#6)
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
Forum Rules
|
Top DevX Stories
Easy Web Services with SQL Server 2005 HTTP Endpoints
JavaOne 2005: Java Platform Roadmap Focuses on Ease of Development, Sun Focuses on the "Free" in F.O.S.S.
Wed Yourself to UML with the Power of Associations
Microsoft to Add AJAX Capabilities to ASP.NET
IBM's Cloudscape Versus MySQL
|
Bookmarks