Fog Creek Software
Discussion Board

Should programmers carry "their own weight"?

To all you managers who hire programmers, do you expect that the product produced by the programmer to at least cover his/her yearly salary?

I'm in the position of having just completed a software product for my company, and there's just no way we're going to recoup the cost (ie. my salary) anytime soon, if ever.  Yes, the project did take longer than expected.

Perhaps the better question to ask is: how do you determine whether it's worth it to develop a new product, or upgrade the existing version?  I think the obvious answer is the simple ROI argument.  But is there more to it than that, such as simply trying to keep up with the competition?

Monday, April 12, 2004

Not knowing the specifics, it sounds to me like this analysis should have been done before undertaking the project.  If a company starts a project with no idea whether they will recoup the costs, that is just poor operating practice.  Unless maybe you're in some sort of "pure r&d" role.

Monday, April 12, 2004

It's not your problem. That's what managers are for.

Monday, April 12, 2004

If the product works, you did your job well. It's the marketing people who failed selling it. Unless of course it's so bug-ridden that noone wants it. Or it's a useless product with no value and it's the managers' fault that they started the project.

Monday, April 12, 2004

That's the management's responsibility, to estimate in advance the resouces required to develop a product and then the potential income from that effort. One will generally allow a first year loss on an investment if by year 3 you are breaking even and by year 5 you are profitable.

Sometimes a product can be used as a loss leader if that has such vast appeal that it draws in orders for other more profitable business. (give away the razor, sell the blades) Suppose 80% of your business is consulting and not software sales. Wouldn't it be wise to practically give away the software if it pulls in more consulting contracts?

Suppose this software does some sort of analysis of a clients business that tells them they really need to buy your more "sophisticated" software/hardware product? IBM has made countless billions doing exactly that.

Monday, April 12, 2004

If you are just costing the company money overall, why should they keep you? It makes absolutely no business sense.

Monday, April 12, 2004

I agree completely with the remark that this is the manager's job.  This is really something that a developer in a FT job should not be concerned with.

However, your stature at a company and your career can turn on the success of a product you developed, even though market research really isn't your job. You can be (unfairly) blamed for something really stupid you were tasked with developing. You can also be raised on a pedestal for having your fingerprints on something you were simply told to do. It's pretty random.

A company can readily hire you and ask you to develop something that is abundantly clear is a waste of everyone's time and effort. Many companies are completely delusional about the viability of products they fall in love with. In fact, I have made 100% of my income in some years from this kind of thinking. It hasn't advanced my career much but it's paid the bills.

AND, as a developer, your opinion on market viability as a product is generally not welcomed anyway.  In some environments sticking your neck out like this is viewed as presumptuous or insubordinate. You may have to leave a company in order to satisfy your internal sense of order. Most people will not do this.

Sometimes companies develop a money-losing product, one that makes no sense standing on its own, simply to diversify their product base or to present a "complete" approach to an industry. There may be ulterior motives or "synergies" (laugh now) behind some products.

If the programmer is *supposed* to somehow develop code that sells in numbers great enough to support him, then why doesn't that programmer simply write shareware and market it? Why don't all developers work for themselves? Answer: it generally makes no sense to try to justify an application product by short term thinking.

Bored Bystander
Monday, April 12, 2004

You're understating your case (in my opinion).

"You can be (unfairly) blamed for something really stupid".

Change that to "You will be blamed for something really stupid..."  As a developer, I consider my job to be more than just writing code.  I also make sure that what I'm doing passes the "dumb ass" test.  That is, I try to avoid doing something stupid even if I'm told to.

"AND, as a developer, your opinion on market viability as a product is generally not welcomed anyway."

Often too true.  But don't be daunted, tell your boss and his boss what is a lameass idea anyway.  If they persist, find a different project that DOES make sense and go work on that.  Don't be a whiner; state your case briefly, with appropriate tact, and factually.

Your career depends on your ability to attach yourself to projects that:
1. Will succeed because they are well planned and executed.
2. Help you grow professionally.  You should be learning something with each project that extends outside the mere benefit of your company's immediate need.
3. Is of strategic value to your company.  That is, your company intends to keep putting new development dollars into this area years after you ship version 1.0, and/or version 1.0 will be a spring board for you into other forward looking new technology.

Someone will say "hey, not everyone can work on the new inventive thing.  Someone has to maintain the server, clean the viruses off the bosses' machine, write the install script, read JoS. ...".  True, but it doesn't have to be you.

At the end of the day (or I should say perhaps 2 year time frame), you have to be worth several multiples of your salary for your job to make sense.  If it costs $50K to employ you (don't forget capital costs, benefits, rent, and time spent taking a crap), then you should be generating at least $50K worth of value (which might not be actual revenue - it might be cost savings) but it better be quantifiable.  You should be able to say "without me, essential modules X,Y,Z would not have been done and that thing would not have shipped and made us all gazillions of dollars."  Or something like that.

If you don't think this way, you're going to be layoff fodder.

Monday, April 12, 2004

Hoser, I agree with every detail and particular you described.

However, a few counter points:

What if the job and the company are excellent, but you get tasked to work on a loser of a project? In many environments, it will be understood that you had no choice. In others, lack of profitability will cause blame or at least assumptions of stupidity and talentlessness to be cast on everyone whose fingerprints are on the turkey.

Anyone remember the scenes in the made for TV movie "The Pirates of Silicon Valley", where Steve Jobs supposedly sponsored a party at a bar whose sole point was to label the Macintosh team "great" and the 6502 based Apple crew "losers." It's overacted but I've worked in technical departments that had exactly that flavor of negative rivalry going.

I think the ultimate determinant of one's actions is how fair minded and intelligent your employer is. If they are stupid wankers, then you need to be like teflon and have nothing negative stick to you. That means sliming out of bad positions when necessary. If your employer is good and is a benign meritocracy, then you are best off "trusting the system."

There is no one size fits all answer.

Bored Bystander
Monday, April 12, 2004

"What if the job and the company are excellent, but you get tasked to work on a loser of a project? In many environments, it will be understood that you had no choice."

That's true.  Sometimes you just do what you're told, and the fact that you dutifully fulfill your responsibilities cleanly and without whining says alot.  Especially in a good company.  You pay your dues.

Monday, April 12, 2004

Software is a business with very high overhead, if you have to ask whether a given programmer is making you money your margin is way too low. Typically a company spends 5-20% of revenue on R&D. So a programmer's code should bring in about 20 times his salary(R&D includes VP's of engineering, product managers, QA and various other parasites).

the artist formerly known as prince
Monday, April 12, 2004

That answer from Prince was at the tip of my tongue! Of course.

A company that guilts you over your lack of profitability as a SW developer is ultra small-time.

Bored Bystander
Tuesday, April 13, 2004


If your company sells software, the value that you add needs to cover:
* your salary
* your manager's salary (;¬])
* his/her manager's salary (loop till end....)
* the salesperson's salary
* the accountant's salary
* office costs, etc.

If you aren't recouping those costs your company is bankrupt.

Tuesday, April 13, 2004

"What if the job and the company are excellent, but you get tasked to work on a loser of a project? In many environments, it will be understood that you had no choice."

Either that or you've been put into my favorite job - the "Grenade Guy."  Management sees a live explosive laying around just waiting to go off.  The first thing they do is grab a body and throw it on the grenade.  If time permits (or the explosive is large enough to really hurt them) then they'll grab the body that has shown the most ability to dampen the explosion.  The ideal result is that the manger feels no effects.  The only consideration as to the effects on the body relate to how much explosive containment remains for the next bomb.

Unfortunately this can happen in the best of companies.  Actually more likely to happen in the better companies - developers aren't as nervous about assignments and it only takes one manager that thinks that way. 

Unfocused Focused
Tuesday, April 13, 2004

We had one multi-million dollar disaster here a few years back (not software related). There were many people to blame, but most of the blame went to an American training manager who was a walking advertisement for the vegetative nervous system.

Instead of firing hm, they doubled his salary to keep him! The reason! If the shit hit the fan they knew there had to be a fall guy, and if that guy wasn't going to be in the company to sack the axe would fall on somebody else.

So they increased his salary and gave him three months vacation and four flights home a year (as  they did not even trust him to make the tea they could have given him eleven months vacation but that was too obvious).

Stephen Jones
Friday, April 16, 2004

If an employee is not earning much more than his or her salary for the company, then that employee is already unemployed and just doesn't know it yet.

(N/A for goverment employees)

Jim Howard
Sunday, April 18, 2004

*  Recent Topics

*  Fog Creek Home