OT: The Economics of Incompetence

B

Bob Johnson

Hourly Rates:
Senior Programmer - $85.00/Hr.
Junior Programmer - $15.00/Hr.
Incompetent Programmer - $15.00/Hr.

The Project:
Create a simple report.

Initial Cost of Project:
Senior programmer takes 10 minutes to complete the report. Cost to the
business: $14.00
Junior programmer takes 2 hours to complete the report. Cost to the
business: $30.00
Incompetent Programmer takes 2 days (16 hours). Cost to the business:
$240.00

Lifetime Cost of the Project:
Consider the "final product" delivered by each of these programmers. The
solutions delivered by the incompetent or junior programmers are more likely
to suffer performance problems and have "bugs." The solution delivered by
the senior programmer is likely to "just work." There are huge long-term
cost differences between software that is buggy as compared to software that
just works.

Rhetorical Question: Who is the most expensive programmer on the team?

I"m just looking for some additional perspective on this question after
years of consulting - and observing that businesses so frequently care only
about the hourly rate... and end up paying so much more in the long run...
through living with their bad systems and, if bad enough, eventually hiring
someone to come in and fix things. There's so much bad software out there -
I'm guessing that it's the myopic managers considering only hourly rates.

Thoughts? Opinions? Perspective?

Thanks.
 
T

Tom Leylan

Well since it's a discussion...

Keep in mind that there are plenty of incompetent "senior" programmers
charging $85 an hour taking 2 hours to explain how stupid everybody is and
how he/she could have written it ("it" being anything) better, faster and in
Java.

The expense in your example (not counting the completely incompetent guy) is
incurred when using a senior developer to write a report. There is an
opportunity cost and there was nobody available to work on a senior-level
problem while the pro worked on something a junior level guy can a) handle
and b) learn from. Learning takes time and costs money but it has to
happen.

I find it unlikely that anybody can develop a significant (aka "readable")
report in 10 minutes. If you mean directing a SQL query to Excel okay maybe
but if there are lots of these 1-up "reports" then the senior guy should sit
with the junior guy and show him how. One hour later the junior is guy is
pumping them out in 10 minutes as well.

You're describing a known problem but what do you think the solution is?
Imagine two guys sit in front of you, one asking for $55/hr and one asking
for $75/hr. So what are the steps you would use to determine whether the
one guy is worth $20 more than the other?

You could have him generate a report... the problem is taking 2 hours to
write a report using your favorite report writer is not an indicator of how
he would write that ActiveX component you need. He might whip up a screen
in minutes, it might run fast, the code might be clever and it might look
like crap :) Just because he is a coding wizard doesn't mean he
understands the user interface.

Finally recognize that on Friday at 4:00 pm when all three programmers are
leaning back in their chair talking about what they doing on the weekend one
guy is still charging $85 an hour so you have to add that to the cost of the
report he wrote in 10 minutes.

The trick (as the project lead) is to divide the tasks up based upon the
skill level needed to accomplish the task and the experience (and interest)
of those available to work on the tasks.
 
B

Bob Johnson

Thanks Tom...

RE:
<< You're describing a known problem but what do you think the solution is?I certainly don't know. Thus the post!

RE:
<< I find it unlikely that anybody can develop a significant (aka
"readable") report in 10 minutes >>
Agreed... however that was just a quick example to keep the numbers obvious
($14 vs. $240). The numbers become even larger - seemingly unreal - with
real bad projects that make it into production. I just showed a new client
that they are paying their employees over $300,000/year to stare at an
hourglass (it's a poorly designed MS Access system with over 100 users). The
$ numbers are big - very big - once you count other costs (beyond the
hourglass). Some of the managers there say they cannot afford better
programmers. Mind boggling to me. It looks to me like they can't afford the
junior and Incompetent programmers they currently have on staff. It's
killing them financially. I don't understand why it's not perfectly obvious
to them (except perhaps they've never seen competent programmers in action).

A presumption of my OP is that the $85/hr developer is truly competent. A
rough definition of "competent" would be a developer that can design and
implement solutions that (1) actually meet the needs of the business; (2)
perform well; (3) are scalable; (4) are maintainable; and (5) are
extensible. Many of the other holy grails are at least given some
consideration - like "self-documenting." Junior level programmers might
deliver such, but would take a long time to do so; Incompetent developers -
by definition- cannot or do not deliver solutions that could be described in
those terms.

RE:
<< there are plenty of incompetent "senior" programmers >>
YES! Those are far more expensive than even the Incompetent programmers.
There are a tone of those out there too, but it seems that a lot of them
disappeared with the .com bubble and the whole outsourcing thing.

RE:
<< So what are the steps you would use to determine whether the one guy is
worth $20 more than the other? >>
Good question. Make them do something and watch them do it. Interview them
*while* they are doing it. Give them a real programming task or bug to
solve... somthing like that. Get them to explain what they are thinking and
why they are taking the specific steps or actions they are undertaking. I'm
sure there are other effective ways to measure competence. Oh, and make the
task relevant to the position to be filled.

Thanks for your thoughts on this.

Bob
 
T

Tom Leylan

RE:
...Mind boggling to me. It looks to me like they can't afford the junior
and Incompetent programmers they currently have on staff. It's killing
them financially. I don't understand why it's not perfectly obvious to
them (except perhaps they've never seen competent programmers in action).

It's a business model Bob. It's mind-boggling to a graphic artist that a
store can design lousy handwritten signs or to a marketing maven that they
can layout the store so poorly. Professionals can probably demonstrate how
much more business would be generated with simple professional improvements.
Don't know if you have ever watched "Sell This House" on TV but they take a
house that hasn't sold for months, fix it up in 48 hours and usually sell
it. They don't "repair it" they simply prepare it for showing. Add a
little paint, move the Star Trek memorabilia out of the living room, etc.

The point is everybody doesn't see the advantage. In some cases the company
may have in fact hired a "guru" and 2 years later the Java wonder app was
still in the development stage. The company itself may have been the cause
but without attributing blame, they may simply have experienced the
downside.
A presumption of my OP is that the $85/hr developer is truly competent. A
rough definition of "competent" would be a developer that can design and
implement solutions that (1) actually meet the needs of the business; (2)
perform well; (3) are scalable; (4) are maintainable; and (5) are
extensible. Many of the other holy grails are at least given some
consideration - like "self-documenting." Junior level programmers might
deliver such, but would take a long time to do so; Incompetent
developers - by definition- cannot or do not deliver solutions that could
be described in those terms.

Sure where do they find one of them. And this is the kicker, when that
person leaves where do they find a second one? Again they often (more or
less) draw a bell curve an choose what they believe is average. This gives
them the largest pool to choose from but from a group that is not
outstanding (neither too bad nor too good.) An example of this might be
professional sports teams. Why doesn't the last place team in the NFL
simply hire the coach and players that the first or second ranking teams
have? Despite being last they probably still post a profit. They might
earn more if they placed higher but then it would probably cost them more.
RE:
<< So what are the steps you would use to determine whether the one guy is
worth $20 more than the other? >>
Good question. Make them do something and watch them do it. Interview them
*while* they are doing it. Give them a real programming task or bug to
solve... somthing like that. Get them to explain what they are thinking
and why they are taking the specific steps or actions they are
undertaking. I'm sure there are other effective ways to measure
competence. Oh, and make the task relevant to the position to be filled.

Management can't typically do that. Certainly nobody in Human Resources can
and often not the head of IT. I tend to look at people's code and I like to
see a finished app that they wrote. I think I can tell from their "style"
if they understand the software development process, if they have an eye for
design, etc. If I see spaghetti code, ugly input screens, misaligned
reports and such I can be reasonably certain there will be a problem. One
guy showed me his "app" and he had mispelled the name of the company that he
wrote it for. He hadn't noticed that...

I've also been through the interview process as I'm sure you have. So now
imagine the guy who writes the spaghetti code is interviewing you. When you
explain you could have written in faster, clearer (and spelled the name of
the company correctly) in Java :) you won't get the job. Very few
managers are looking to get replaced by somebody they hire.

This is the horror of "incompetent management" ... hence the Peter Principle
and as a direct result, life in the 21st century :)
 
C

Chuck

This is a subject I could rant and rave on for days, and I can tell you
from years of painful experience that we are only scratching the
surface here :)

The cost of inexperienced, and incompetent staff is staggering when
you look at it in terms of the complete development lifecycle. Bad
staff introduce the element of randomness into what should be a formal,
logical process of development by contract.

Say for eample that the requirements and analysis folks produce perfect
use cases, and the design team produces a system design/architecture
complete with method / event shells, parameters, message flows,
stimulus, complete static structure, etc, etc, etc,...

These documents form the basis of a comprehensive build specification,
if you will, that the developer need only follow, filling in the
blanks, taking great care and paying attention to detail.

Guess what, as you clearly pointed out with your example of someone
spelling the company name wrong, inexperienced and incompetent people
DONT PAY ATTENTION TO DETAIL.

So look at it like this:

1. Junior Guy doesn't pay attention, doesn't adhere to the contract and
produces a *single* method in a single class that does not function
according to requirements. He checks in the code, cause hey it builds,
and it looks like it's working - it's returning some cool XML!.

2. Ripple effect in end to end testing. The getEmployeedetails()
method doesn't work quite right, it's returning XML that is invalid
according to it's schema. Of course nobody knows this, because little
billy junior didn't write an adequate unit test, but said he did. This
affects all major areas of the system. Test Team logs 20+ defects, as
the method problem manifests itself in bizzare ways once put into
production, even though the true *single* defect is the punk method.
In this scenario TEST TEAM time is wasted, release is delayed and there
are 20 new defects in the defect tracking system.

3. Time to review the defects, evaluate and assign for correction. In
a weekly review the team goes over the clusterbomb of 20 new defects.
No one understands what the hell is going on. All that stuff worked
fine before. There is a lot of wailing and gnashing of teeth. The
situation is serious, people are talking about a system wide code
review, never mind that we just did one last week . Time to bring in
the Lead Developer and start eating up his time. Lead developer walks
in and asks the question, "what's the last thing that changed". Lead
Developer checks finds that little billy juniors class was the last
thing checked in, he quickly diffs it against the prior version, and
finds that the method getEmployeedetails has been added. He reviews
the structure and sequence, and finds that getEmployeedetails is a
dependency in all 20 areas with defects. The defects list is collapsed
to a single defect, and re-assigned to billy junior.

4. Billy junior can't fix the problem, because he is cutting his teeth
on 'the new .net stuff' as he puts it. Never mind that validating an
xml document against it's schema is neither new, nor some exclusive
botique technology particular to .Net. He asks for help from someone
who's 'good at this stuff'. Lead reviews the code, adds the validation
, calls the unit test and finds that the unit test fails because billy
is populating the unique ID with a GUID and not the integer described
in the contract, as validated by the XSD. Lead corrects the code, and
checks it in. He marks the defect corrected, and provides a lucid
narrative of what was wrong and how he fixed the problem. Of course
Billy junior doesn't read lucid narratives :)

5. Lather, rinse, repeat...


Uggg..
 
J

JR

So what? Most programmers and a larger percentage of other computer related
professionals are barely competent. We have to make do with what is
available.

JR
 
B

Bob Johnson

RE:
<< So what? Most programmers and a larger percentage of other computer
related professionals are barely competent. >>
<< We have to make do with what is available. >>

Yes - I guess I'm just trying to understand from others what your
perspective is on this issue. For a long time I thought that I was just
coincidentally running into a bunch of exceptionally bad systems as I moved
around as an independent consultant. Then at the .NET 2005 unveiling in San
Francisco about a year ago, Steve Ballmer starts off his presentation with a
graphic showing that some ungodly percentage (35% + ) of software projects
FAIL. Then I checked out his sources and - sure enough.... Then I looked
back at some of the oddball situations I have been hired to fix or
situations seemed to evolve while on long-term contracts - and geeze - that
35% might be optimistic depending on one's definition of "failure" of a
software system. Then I found http://thedailywtf.com/ and finally I'm
concluding that my personal observations are really *representative* of the
bad state of affairs when it comes to the "professional" software
development world.

So now I'm on a new project for a new client and trying to get into the
heads of management to find out why/how their current abomination could have
evolved over such a long perod (5 years) - and why when some management was
practically begging for a "real" professional to come in and help, others
were banging the drum of "we can't afford someone that good." (yes - they
will actually make statements like that) So trying to look at this from a
strictly economics perspective (my attempt to get into the management mind),
I guess much of it boils down to the perception of competence and therefore
value. If one cannot differentiate between the competence of Michael Jordan
as compared to [insert any no-namer here], then I guess that person would
prefer to hire 8 no-namers rather than one Michael Jordan. After all, you
get 8 for the price of one. Value my friend!

This thread, I hope, isn't about ranting. Rather I'm trying to understand
how non technical management perceives value when it comes to software and
technology related purchasing decisions - including hiring developers. That
would be valuable information to have - if it can be used to improve the
current state of affairs; even if on a client-by-client basis.

Bob
 
R

RobinS

RE:
<< So what are the steps you would use to determine whether the one
guy is worth $20 more than the other? >>
Good question. Make them do something and watch them do it. Interview
them *while* they are doing it. Give them a real programming task or
bug to solve... somthing like that. Get them to explain what they are
thinking and why they are taking the specific steps or actions they
are undertaking. I'm sure there are other effective ways to measure
competence. Oh, and make the task relevant to the position to be
filled.

For one thing, check their references. If they're really as good as
they say they are, the people they used to work for will have nothing
but great things to say about them. If the people they used to work for
say something like, "We are only able to confirm that they worked here",
I'd be suspicious. I know that most companies *say* that, but every
person I've worked for at those companies will ignore that because
they liked me so much.

Check out Joel Spolsky's site. He has some interesting observations
about interviewing. He worked for Microsoft for a while, and of
course there are the Microsoft interview questions out there.

http://www.joelonsoftware.com/articles/GuerrillaInterviewing3.html

One of the things he talks about is asking how to solve real-world
problems. In this article, he mentions finding how many piano
tuners there are in Seattle. Another one he talks about in one
of his other blogs is "the elevator question" -- how would you
program an elevator? The basic idea is to see if the candidate
goes, "I don't know." or "well, let me see, we'd have to keep
track of where the elevator is, whether it's going up or down,
what floors it needs to stop on..." and so on. I thought this
was really interesting.

He also mentions giving a small, simple real-world test, like
how do you figure out if a character is an uppercase letter?
He thought everyone would sail through it, but they don't. I
found this to be true when interviewing people. Once when I
was interviewing people for a Vax Cobol job, one of the q's
we would ask people was how big an S9(9) COMP field was.
This was a signed integer, 4 bytes, and very commonly used.
About 1/2 the candidates had no idea what it was. We got
answers from "9 bytes" to "81 bytes" to "18 bits", all
delivered with complete confiction. How can you program
and never use integers? Answer: they didn't really know
Cobol, they just thought they could wing it.

Anyway, hope that article helps. I found it very informative
and helpful from both sides of the desk.

Robin S.
 
T

Tom Leylan

Respondents are still thinking in terms of programmers. Lots of people lack
adequate skill in their profession, some (and more than a few) lack the
social skills to operate in general.

What Bob has mentioned "failed systems" is due largely to incompetent
"groups". Some people have adequate skills as an individual but can't
function within a group. We've heard examples of otherwise excellent
athletes being dropped from a team because they annoy everybody else. In
some cases Bob you're seeing the results of "the least common denominator"
syndrome. There are probably individuals with the skills needed (within a
group) but the poor quality of the group in general makes it impossible for
that person to succeed. They often succumb and just let stuff slide because
the quality is so low to begin with.

I know of one project referred to by the employees as "the project that
wouldn't die". It should have been finished and working in a few months but
instead development kept going for years and it never worked properly.

You mention Michael Jordan and I'm sure he is good but only one team can
have him right? It isn't that other teams don't want him or aren't willing
to pay for his expertise (though there is a limit) he's taken. So you ask
why don't they just get the guy slightly below Michael Jordan and the
question is "who is that?" If he is recognized then he is also busy. So
who is #3, and on down the line until you find somebody who fits your
business model.

Look at it this way (heaven forbid you need brain surgery but pretend you
do) so who is the best brain surgeon and is that the guy you will get? I
doubt it because you a) can't personally afford him and b) he's booked. But
you still need the surgery so you get the person available at the time at
the price you can afford. If it is successful then you claim "I did the
research and came up with the best match" and if you die somebody writes
"why the heck did he make such a dumb managerial decision he could have had
Dr. <blah> in <blah berg>".

Also don't underestimate the "no-namer". Michael Jordan didn't have a name
when he was first signed up. I wouldn't be surprised to learn that the
founders of Google were told they lacked the experience to get a programming
job at an established company, the author of "Harry Potter" (her first book)
was told "kids don't want to read stories this long".

As the old story goes... in the 70's a bunch of executives were sitting in
their offices at the top of the Sears Tower in Chicago lauding themselves
over their rank as the #1 retailer in the US. Of course they hadn't heard
of a guy in Arkansas named Sam Walton.

Tom

Bob Johnson said:
RE:
<< So what? Most programmers and a larger percentage of other computer
related professionals are barely competent. >>
<< We have to make do with what is available. >>

Yes - I guess I'm just trying to understand from others what your
perspective is on this issue. For a long time I thought that I was just
coincidentally running into a bunch of exceptionally bad systems as I
moved around as an independent consultant. Then at the .NET 2005 unveiling
in San Francisco about a year ago, Steve Ballmer starts off his
presentation with a graphic showing that some ungodly percentage (35% + )
of software projects FAIL. Then I checked out his sources and - sure
enough.... Then I looked back at some of the oddball situations I have
been hired to fix or situations seemed to evolve while on long-term
contracts - and geeze - that 35% might be optimistic depending on one's
definition of "failure" of a software system. Then I found
http://thedailywtf.com/ and finally I'm concluding that my personal
observations are really *representative* of the bad state of affairs when
it comes to the "professional" software development world.

So now I'm on a new project for a new client and trying to get into the
heads of management to find out why/how their current abomination could
have evolved over such a long perod (5 years) - and why when some
management was practically begging for a "real" professional to come in
and help, others were banging the drum of "we can't afford someone that
good." (yes - they will actually make statements like that) So trying to
look at this from a strictly economics perspective (my attempt to get into
the management mind), I guess much of it boils down to the perception of
competence and therefore value. If one cannot differentiate between the
competence of Michael Jordan as compared to [insert any no-namer here],
then I guess that person would prefer to hire 8 no-namers rather than one
Michael Jordan. After all, you get 8 for the price of one. Value my
friend!

This thread, I hope, isn't about ranting. Rather I'm trying to understand
how non technical management perceives value when it comes to software and
technology related purchasing decisions - including hiring developers.
That would be valuable information to have - if it can be used to improve
the current state of affairs; even if on a client-by-client basis.

Bob
 
C

Cor Ligthert [MVP]

Tom,

In my idea this text was more than enough,
The trick (as the project lead) is to divide the tasks up based upon the
skill level needed to accomplish the task and the experience (and
interest) of those available to work on the tasks.
The rest was in my opinion not so important, did you write it at the end and
found it a pity to erase all that other text. I would have done it in your
place. Probably somebody stops reading that long text while it is a pity if
he does not read this (although there is in my opinion not one word false in
the rest of the text).

:)

Cor
 
B

Bob Johnson

Thanks for your perspective Robin,

RE:
<< they're really as good as they say they are, the people they used to
work for will have nothing but great things to say about them >>

I have to respectfully disagree 100% on this one. Some of my former clients
totally despise/hate me and would never say good things about me. Reason
being - they (the management) was unethical and incompetent and I called
them on it. Case in point - I worked for the client for 6 years... did a
fabulous job blah blah. The first 4 years the management was technically
competent, themselves, we hit our Y2K deadlines and life was good. Then the
business was sold and a new group of managers came in and tried to run the
IS department like it was a Taco Shop crew. They squelched a lot of imprtant
projects that they had promised to various busienss units. I ended up being
somewhat of a whistle blower when they spent the money on other things
(other than what the business units had paid for). They subsequently
replaced me with 4 guys from India (no kidding) for the same rate as mine (4
for the price of 1) and let me go, stating that I was too difficult to work
with. In the subsequent years I stayed in touch with some of my coworkers.
That new/incompetent group of managers spent more that 8 million dollars
trying to replace the system I had left them with (that me and another guy
designed and built). Their replacement system never saw production and was
'canned two years later - with nobody losing their jobs or being repremanded
for doing lousy work. For something to fail that spectacularly, a lot of
things have to go very wrong, at a number of levels, and over an extended
period. Meanwhile the system I left them with is still humming along (it's
been 3 years since I left).

Do you think they would give me a good recommendation? No way. My story
isn't the only one where competent worker bees are perceived as a threat to
incompetent managment.

I thought that was a truly unique situation (there are a lot of wild details
I'm omitting) - but looking at the daily wtf.com and hearing Ballmer state
35% + failure rate and I'm now clear that my experience was not really all
that unique. It happens all the time I guess.

Bob
 
C

Cor Ligthert [MVP]

Bob,

To add a little bit: You see the difference between a Senior Programmer, a
Junior Programmer and an Incompetent Programmer mostly after a year or
longer, as there has to be done some maintenance and those are nomore there.

Cor
 
B

Bob Johnson

Excellent points, Tom. Thank you so much for your perspective. You have
given me some things to think about as I try to move around more effectively
in the IT world.

Bob


Tom Leylan said:
Respondents are still thinking in terms of programmers. Lots of people
lack adequate skill in their profession, some (and more than a few) lack
the social skills to operate in general.

What Bob has mentioned "failed systems" is due largely to incompetent
"groups". Some people have adequate skills as an individual but can't
function within a group. We've heard examples of otherwise excellent
athletes being dropped from a team because they annoy everybody else. In
some cases Bob you're seeing the results of "the least common denominator"
syndrome. There are probably individuals with the skills needed (within a
group) but the poor quality of the group in general makes it impossible
for that person to succeed. They often succumb and just let stuff slide
because the quality is so low to begin with.

I know of one project referred to by the employees as "the project that
wouldn't die". It should have been finished and working in a few months
but instead development kept going for years and it never worked properly.

You mention Michael Jordan and I'm sure he is good but only one team can
have him right? It isn't that other teams don't want him or aren't
willing to pay for his expertise (though there is a limit) he's taken. So
you ask why don't they just get the guy slightly below Michael Jordan and
the question is "who is that?" If he is recognized then he is also busy.
So who is #3, and on down the line until you find somebody who fits your
business model.

Look at it this way (heaven forbid you need brain surgery but pretend you
do) so who is the best brain surgeon and is that the guy you will get? I
doubt it because you a) can't personally afford him and b) he's booked.
But you still need the surgery so you get the person available at the time
at the price you can afford. If it is successful then you claim "I did
the research and came up with the best match" and if you die somebody
writes "why the heck did he make such a dumb managerial decision he could
have had Dr. <blah> in <blah berg>".

Also don't underestimate the "no-namer". Michael Jordan didn't have a
name when he was first signed up. I wouldn't be surprised to learn that
the founders of Google were told they lacked the experience to get a
programming job at an established company, the author of "Harry Potter"
(her first book) was told "kids don't want to read stories this long".

As the old story goes... in the 70's a bunch of executives were sitting in
their offices at the top of the Sears Tower in Chicago lauding themselves
over their rank as the #1 retailer in the US. Of course they hadn't heard
of a guy in Arkansas named Sam Walton.

Tom

Bob Johnson said:
RE:
<< So what? Most programmers and a larger percentage of other computer
related professionals are barely competent. >>
<< We have to make do with what is available. >>

Yes - I guess I'm just trying to understand from others what your
perspective is on this issue. For a long time I thought that I was just
coincidentally running into a bunch of exceptionally bad systems as I
moved around as an independent consultant. Then at the .NET 2005
unveiling in San Francisco about a year ago, Steve Ballmer starts off his
presentation with a graphic showing that some ungodly percentage (35% + )
of software projects FAIL. Then I checked out his sources and - sure
enough.... Then I looked back at some of the oddball situations I have
been hired to fix or situations seemed to evolve while on long-term
contracts - and geeze - that 35% might be optimistic depending on one's
definition of "failure" of a software system. Then I found
http://thedailywtf.com/ and finally I'm concluding that my personal
observations are really *representative* of the bad state of affairs when
it comes to the "professional" software development world.

So now I'm on a new project for a new client and trying to get into the
heads of management to find out why/how their current abomination could
have evolved over such a long perod (5 years) - and why when some
management was practically begging for a "real" professional to come in
and help, others were banging the drum of "we can't afford someone that
good." (yes - they will actually make statements like that) So trying to
look at this from a strictly economics perspective (my attempt to get
into the management mind), I guess much of it boils down to the
perception of competence and therefore value. If one cannot differentiate
between the competence of Michael Jordan as compared to [insert any
no-namer here], then I guess that person would prefer to hire 8 no-namers
rather than one Michael Jordan. After all, you get 8 for the price of
one. Value my friend!

This thread, I hope, isn't about ranting. Rather I'm trying to understand
how non technical management perceives value when it comes to software
and technology related purchasing decisions - including hiring
developers. That would be valuable information to have - if it can be
used to improve the current state of affairs; even if on a
client-by-client basis.

Bob
 
J

JR

Bob Johnson said:
RE:
<< So what? Most programmers and a larger percentage of other computer
related professionals are barely competent. >>
<< We have to make do with what is available. >>

Yes - I guess I'm just trying to understand from others what your
perspective is on this issue. For a long time I thought that I was just
coincidentally running into a bunch of exceptionally bad systems as I
moved around as an independent consultant. Then at the .NET 2005 unveiling
in San Francisco about a year ago, Steve Ballmer starts off his
presentation with a graphic showing that some ungodly percentage (35% + )
of software projects FAIL. Then I checked out his sources and - sure
enough....

That is 35% fail completely and admit it. An additional 65% fail only
partly, or just don't admit it. The rest are OK.

JR
Then I looked back at some of the oddball situations I have been hired to
fix or situations seemed to evolve while on long-term contracts - and
geeze - that 35% might be optimistic depending on one's definition of
"failure" of a software system. Then I found http://thedailywtf.com/ and
finally I'm concluding that my personal observations are really
*representative* of the bad state of affairs when it comes to the
"professional" software development world.

So now I'm on a new project for a new client and trying to get into the
heads of management to find out why/how their current abomination could
have evolved over such a long perod (5 years) - and why when some
management was practically begging for a "real" professional to come in
and help, others were banging the drum of "we can't afford someone that
good." (yes - they will actually make statements like that) So trying to
look at this from a strictly economics perspective (my attempt to get into
the management mind), I guess much of it boils down to the perception of
competence and therefore value. If one cannot differentiate between the
competence of Michael Jordan as compared to [insert any no-namer here],
then I guess that person would prefer to hire 8 no-namers rather than one
Michael Jordan. After all, you get 8 for the price of one. Value my
friend!

This thread, I hope, isn't about ranting. Rather I'm trying to understand
how non technical management perceives value when it comes to software and
technology related purchasing decisions - including hiring developers.
That would be valuable information to have - if it can be used to improve
the current state of affairs; even if on a client-by-client basis.

Bob
 
R

RobinS

Wow, you're right, I hadn't thought of it that way. I've never
held it against anybody, because there *are* some companies
that just won't give any kind of recommendation whether they
like you or not, but it's always nice when you work for someone
who will.

You got royally, um, screwed (not to put too fine a point on it).
That must have been incredibly stressful.

The other thing I guess that has to be accounted for (like in
this case) is when something fails and it's not the fault of the
programmer. You can be a star, but there are some things you
just can't overcome.

For example, I worked for a huge telecommunications company
and their intercompany network speed was very poor
(I think it's the case of the cobbler's children). I had
to connect to an Oracle database on the other side of the
country, and it was *SO* slow. It wasn't my code, because
I sent it to a programmer out there and when he ran it,
it took 15 seconds. When I ran it, it took 40 minutes.
There was nothing *I* could do about it, and I certainly
couldn't impact the Oracle side. It was very frustrating.

Interesting discussion; thanks for sharing your perspective.

Robin S.
-------------------------------------------
 
S

Steve Covert

Bob,

I believe the old saying applies: "you get what you pay for."
And, hiring managers, (who have never coded), need to understand that the
skill to author quality software takes years of experience to master.

Unless, of course, the developer has read "Learn Visual Basic in 21 Days."

Regards,
Steve Covert
 
T

Tom Leylan

Hi Steve:

I think you will find that overall that doesn't apply. If money alone is
the measure then the $85/hr guy is lame in comparison to the guy who charges
$125 who could (by extension) write the report in 5 minutes.

Faster, cheaper and other things can be measured but "better" is subjective.
I always ask people during these conversations what kind of car they
drive... well wouldn't a top-of-the line Mercedes, BMW or Porsche be better?
Don't they accelerate faster, stop in shorter distance and ride more
comfortably than the car you currently drive? They are simply put, better.

But seriously if the $15/hr guy is not worth the money how does an $85/hr
guy get the experience? Did he at no point charge less when he knew less?
He was (according to the computation) a waste of money when he was a novice
so the company should have replaced him right?

There is no simple formula...
 
R

RobinS

You're right that better is subjecttive, but there's a
difference between buying a car that goes, and buying
a car that goes expensively (you know what I mean). But what
about the difference between buying a car that goes expensively,
and buying a car that tries to go, and sort of goes part of the
way, but never gets you to your destination? Would that be worth
spending any money on?

Also, money isn't always an indicator. Jaguars used to be
known for their unreliability, and cost 2 or 3 times as much
as a Toyota Camry which is known for its reliability. It's
just that the Jaguar looked good and talked well and you bought
the spiel. It wasn't until you took it home that you found
out it wasn't quite as effective as you thought.

Robin S.
------------------------------------
 
T

Tom Leylan

Hi Robin:

You are absolutely correct in that there is a difference. But who could
have guessed that the $35/hr programmer couldn't "go" and that the $85/hr
one wasn't just going expensively? Could a $50/hr programmer go? Could the
$85/hr programmer have a reliability quotient of a Jaguar?

I know it's going to sound like I'm picking nits but at what point did
Jaguar owners not know about the cost of maintenance? How could people who
opted for the Toyota be aware of it (and decide on the Camry) while the guy
buying the Jaguar didn't? Do you see it's about choices, not about stupid
and smart? Is the guy with the Jaguar the $125/hr programmer and the the
guy with the Camry the $15/hr guy or vice-versa?

From the movie _Citizen Kane_. "I did lose a million dollars last year. I
expect to lose a million dollars this year. I expect to lose a million
dollars next year. You know, Mr. Thatcher, at the rate of a million dollars
a year, I'll have to close this place in...sixty years."

So is Kane incompetent?
 
C

Cor Ligthert [MVP]

Hi Tom and Robin,

Keep in mind that everything has to be seen in its environment.

I can assure you that in Germany most often a good Jaguar is a much nicer
choose to drive, there on some roads it can be dangerous to drive less than
80 miles an hour and 110 miles is the avarage.

Cor
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top