Fog Creek Software
Discussion Board

For you independant types out there

I was laid off last summer, and have had 3-4 small consulting jobs since then that were better than unemployment, but not as good as a job.  I took a job 6 weeks ago for a startup headed by a former  boss.  It was a 2 month contract  for an embedded Linux job. By far the biggest job I've done.  The situation is a big company, call them A, subcontracted with this company, call them B.  Company A specified the hardware and software to be used in the job, company B sub-subcontracted me.

I found a bug in a Linux device driver.  Actually, it's a silicon bug that was discovered almost 2 years ago, so all I had to do was patch the kernel and life was good.  Except the time it took me to find the bug.

I'm looking at almost $2,000 in billable hours.  Company B doesn't want to be on the hook for this, and I don't blame them.  Company A is saying "hey, you signed a fixed price contract".  Can't say I blame them either.

The issue is that company A does classified work, so I don't know much about the actual dataflow.  I had a spec, the code worked.  During stress testing I found the bug.  Company A's position is basically "Hey, the bug won't show up in our situation.  And we never spec'd it".  Well, they didn't spec it in writing.  The requirements I got are amazingly vague about what the data I deal with is.  On the other hand, during verbal conversation with my contact I was told some of the data could, in fact, trigger the bug.  And lastly, I had a graceful degradation under stress requirement, it's why I did a nasty ass stress test that exposed the bug.

My dilemma is I don't want to burn this bridge.  There is a good chance of more contracts with company B in the near future.  But no guarantees.  Company B is waiting for contracts to be signed before they hire me again.  I'm on good relations with my boss, I think.

So, what would you do?  In a hot economy I'd say the hell with you, pay me.  In this economy, it may be better to eat the $2k and increase my chances of some followon work.

Is there a plan C for me?  Is there an option I can present to company B that results in me being paid, and them not losing money?  Or should I not even go down that road?

Unemployed coward
Tuesday, February 17, 2004

Been there done that. You did the work for them on an hourly basis. The fact they had a fixed bid has nothing to do with you. Send them a bill. If they don't pay it, supoena them, show up in court and get a judgement. And if they make you go to this trouble, report the 'flaw' to the government agency that is contracting with A.

if you let them get away with not paying you for work doen, I *assure* you that it will only get worse next time.

Dennis Atkins
Tuesday, February 17, 2004

I wouldn't charge it.
Although technically Company A's relationship with company B is none of your business. ie you don't even need to know that Company A exists, except that you are being given specs handed down directly from Company A.
In reality you knew it existed and are aware that it is a fixed price contract, and that company B (love these names!) is not going to be able to pass the costs on to Company A.

It was really the job of Company B to review the specs from Company A, decide if the specs were clear and thorough. They took responsibility for the specs, and thereby any costs involved.

In a way it was partly your fault, you should have made Company B aware of potential problems, insisted that the specs were badly written and this could cause an esculation in costs.

If company B had no intention of taking care of the job themselves, and did not have the technical skill to estimate for these costs, then they should have called you in from the word go.

But still, $2,000 is not much money. Not if you are potentially burning lucrative bridges.

I would however make them very aware of the additional time and costs, so that they understand how things are going to be in the future....

Aussie Chick
Tuesday, February 17, 2004

My prediction is that most wage slaves will tell you :

"Dont burn bridges"
"Think of the future"
  "There is nothing you can do"
  "Its too hard"
Most business owners / successful people will say :

"They owe you 2000 for work you did.. EOF.  Get the money"


You are worried about burning bridges with a company that just stole $2000 dollars from you, let you do the work and now uses some unstream contract story to avoid giving you the money you earned.

You should be helping them pour the gasoline on the bridge. 

They dont give a SH*T about burning bridges with you.

Tuesday, February 17, 2004

I'm with Dennis A. on this one.  If you don't command the respect that your time deserves, then they won't respect your time in the future.

Tuesday, February 17, 2004

[this is not legal advice]

Contract law gets wonderfully funny sometimes.

*Even though* you had an hourly-rate contract, both sides had a rough idea of roughly how many hours were entailed (or had even tossed around numbers). For example, I doubt you could've vanished for two years, then come back and charged them for 5,000 hours work, right?

So - rough idea of how many hours. And I'll wager that absent fixing the bug, you were pretty close to that estimate.

So here's the key...
When you identified the bug, DID YOU TELL COMPANY B?

Fixing the bug was essentially outside the specification (yes, the specification was to "make it work", but let's be adults here). When you identified the bug, the burden was on you to identify potentially out-of-scope work to B and let them make the call on it. If they had said "don't fix the bug, we'll worry about it" then you get them to sign a waiver, put appropriate comments in the source code, and collect your check.

An analogy - you hire a contractor to put an addition on your house. You talk to him about the estimate ("about five people for one week") then sign an hourly contract and go out of town for a month.

When you come home, he tells you that when he was doing the work, he discovered a structural flaw in your house, so he rebuilt the kitchen and the master bedroom, and here's your bill for five times the original estimate.

Would you pay? Or would you argue that you never asked him to fix the existing structure and he needed to get your permission first, even though he couldn't complete the addition without the fix?


Tuesday, February 17, 2004

Yup.  What philo said.  Very well put. 

Tuesday, February 17, 2004

[posted too fast]

The bottom line - *you* made the mistake when you fixed the bug without getting authorization for the additional work from Company B. That is where the loss occurred.

Now, as usual, there are exceptions...
- if Company B specified that "time is of the essence" on the contract then that could be read as tacit permission to do what's necessary (but you could still be on the hook if you didn't even try to contact B)
- if the contract can be read to imply that "any necessary actions to deliver functioning code are authorized" you could be home free (but who would sign a contract like *that*?)

But the bottom line, and the lesson learned - even on hourly contracts, no, *especially* on hourly contracts, when you get stuck, you call the client.


Tuesday, February 17, 2004

What I would do is talk to the boss at Company B, and try to negotiate partial payment. There seems to be a bit of fault on everyone's part

Big Fan of Fortran
Tuesday, February 17, 2004

I'd do the following:

o  Eat the money.  At 25% + 15.7% SE tax, you're
talking about $1300 post-tax income.  A nontrivial
chunk of change, but not worth burning bridges over,
particularly one that's already paying off.

o  Thump your chest loudly to both companies, so
it is well-known that you went above and beyond
the call of duty to fix the bug.

Tuesday, February 17, 2004

The solution is very simple. If they argue they didn't authorise fixing of the bug, withdraw the fix and tell them everyone's happy. Let them then pay you for the fix.

Except this is Linux and you have no hold because you gave your work away.

However on the principle of not burning your bridges, it actually works the other way. If you don't charge for your work, they're not aware of its value and they will exploit you again and again.

Next time you try to charge for something like that, they will say:" You fixed a similar in February and didn't charge for it. Why are you charging now?"

Do the work. Demand the payment. Or withhold your code.

Tuesday, February 17, 2004

Next time you try to charge for something like that, they will say:" You fixed a similar in February and didn't charge for it. Why are you charging now?"

At which point you never accept work from this client again.

I'm starting to think you simply have two types to deal with - those who respect the value of your work, and those who don't. Identifying the latter and dumping them quickly may be part of the key to success.


Tuesday, February 17, 2004

A lot depends on your relationship with the contracting company.  I'd agree with everything that Philo says but add this; guilt.

Make them feel guilty, I don't mean plead or whine or even whinge, but simply say 'it's a good job I found that bug otherwise nothing would have worked'. 

You can't push too much though because if you didn't notify them of the bug and that you could do a workaround.  You haven't got anything to bill against.

That guilt may not seem to make much difference but favours do mount up and occasionally karma pays off.

Simon Lucy
Tuesday, February 17, 2004

I'd delete my fix.  Problem solved.

Everyoe repeat after me:

"We do not give our work away for free."
"We do not give our work away for free."
"We do not give our work away for free."
"We do not give our work away for free."
"We do not give our work away for free."

Tuesday, February 17, 2004

"We do not give our work away for free."

Tuesday, February 17, 2004

Ok - it's this simple.

Next time you overcharge by exactly $2000. Maybe a little bit less, because they taught you a lesson.

Tuesday, February 17, 2004

I was in a simmilar situation once. I gave an estimate that the an application would cost about $6000 to develop which was accurate. New features were requested during development and I assumed the client understood that this would increase the development time, and the price.
The real bill ended up at about $7500

Come billing day the client informs me that they have made up their budget based on my estimate and can not pay more.
I laid all my cards on the table and said that I can give them a 15% discount on the price if they give me a promise that there is more work comming. They did, so we agreed on that.
There is a lot of psychology involved here.. you have to make the clinet feel that he owes you.

Eric Debois
Tuesday, February 17, 2004

So what /exactly/ did B do for you in all this? Approach A and tell them that it was C that did the work and would they like to put work your way in the future.

Tuesday, February 17, 2004

I would follow the advice given by Dennis Atkins et al and bill them for the work. 

Philo is wrong because he assumes you spent all that time fixing a bug, when in reality you spent all that time FINDING a bug.

Big difference. 

There was no way to tell what was causing the crash.  It could've been your code.  You didn't know until you found that it was the driver. 

You're not asking them to pay for patching the driver, which took maybe an hour tops.  You're asking them to pay for _testing_ the code.

Big huge hairy difference there.

Act like a company here, demand what is owed you.

If you don't value your time, other companies won't either.

Dan Brown
Tuesday, February 17, 2004

And I think it would be possible to get your money without burning bridges.

Dan Brown
Tuesday, February 17, 2004

Leave the bug tracking as a line item, but give B a "first contract" discount of 2/3'rds the price of the item (around 6% of total contract?).
In that way they acknowledge the value of the work without incurring all the cost.
Also make explicit that in future, if you encounter similar situations where it is unclear wether some substantial item would be inside the scope of the work, you will get clearance first.

Just me (Sir to you)
Tuesday, February 17, 2004

"Act like a company here, demand what is owed you."

Dan, this is the essence of the question. What exactly is owed to him??

Contract law is interesting and full of holes, but one thing it does protect people from is the situation where someone sends you a bill, and says that if they do not hear from you in x days, you owe them ££xx

It would be easy for me to walk around, see gardens with unmowed grass, mow the said grass, and present the owners with a bill. I did the work right?? They owe me for my time right?? True, I did, but they did not ask for it to be done.

This is one extreme, but as Philo suggested, it is not always clear cut.

Tuesday, February 17, 2004

Then there is also the small question of who owes him the money.

Is company A liable for the cost overruns of their subcontractors? (who knows what contracts they have)

You ding your car. You take it to your local garage. They quote you £x to have it back on the road. They subcontract they panel beating to PanelBeater. PB discovers that the chassis is bust and the car is unstable at high speeds unless he fixes it. You get the car back in great condition.

The total cost including the chassis repair is now £2x. Do you pay??

On the one hand, you did agree a fixed price with your local garage.

On the other hand, you have to admit that repair work was carried out on the chassis.

Still though, you purport to never travel above 30mph so the instability problems would never show.

Someone help me. Is PanelBeater owed money? Who owes him?

Tuesday, February 17, 2004

Well, we don't really know enough other than to make wild-assed guesses.

But tapiwa, your analogies are weak:

This would be like him taking 4 hours to mow the lawn instead of the assumed 2.  Not just walking around mowing random yards (or writing code randomly & demanding payment).

As for panelbeater, under US law you are only required to pay the fixed price that you agreed on.  The garage will have to eat the difference.  I just had my car repaired, they put on a subpanel that had an improperly prepared surface that caused my paint to bubble.  The garage had to eat it.  They may try to get money from the panel supplier, but I doubt it.  The garage owner actually told me they would have to eat it.

Simple fact is that this guy has an hourly contract with company b.  It's not his problem that company b entered into a fixed bid contract with company a. 

$2000 is roughly 20 hours of work.  Get the money.

Dan Brown
Tuesday, February 17, 2004

Unemployed coward wrote, "Is there an option I can present to company B that results in me being paid, and them not losing money?"

How can we give you are opinion when we don't  have all of the facts? Philo and other posters brought up important questions that you need to provide answers to.

If you don't have an attorney, then you better find one if you plan on doing a lot of contracting work in the future. Your best bet is to contact an attorney who understands contract law.

One Programmer's Opinion
Tuesday, February 17, 2004

Everyone telling you to get all your money is wrong.

We need more information such as how long you said it would take, how much money you were paid for the initial work, and how much profit company B is making.

If you and company B initially agreed that you would do the work in X hours and then you overran by $2000 that could be a large chunk that they did not agree to.

On the other hand, if you just agreed to a 2 month contract and didn't specify the hours it would take I think you would be justified in asking for all time spent. $2000 might be chump change.

Tuesday, February 17, 2004

Dan, I think you misunderstood me.

What I was driving at with the grass cutting example was to emphasise that it is not enough merely to say that the work was done. If the OP did work that not explicitly requested, then there is no difference between that and me cutting some neighbours grass because I think it needs mowing.

He might argue that he was doing a thorough job, but if it was not part of his remit, then he should not have done the work, or at least not expected payment for it.

$2k @ $50ph is almost a weeks worth of work. In the original post, he himself does not seem sure whether anyone is on the hook for the amount... (or at least he does not blame either party for not wanting to pay).

That statement alone suggests that he knew that the work was extraneous. Which takes me to the example about the car. You are employed to panel beat a car. You fix something else while you are at it. Should you be paid extra? Even if I did not ask to fix it??

The OP is not clear in what exactly he was asked to do. All I am suggesting is that while he can be impashioned about having done the work, if he was not explicitly asked to fix something (despite said thing being broke or indeed unmowed) then he can't reasonably expect to present the client with a bill and expect to be paid (see example on mowing grass).

At the same time, Company A has a contract with Company B to deliver something for a price £x. His deal is with B. Despite possibly dealing with reps from A, he can't suddenly charge A. He can only charge the folk he has a contract with.... B. They can slug it out with A or decide to bite the loss.

(very simplified contracts law, but you get the picture??)

Tuesday, February 17, 2004

Yeah, I don't think we disagree about anything really.

Dan Brown
Tuesday, February 17, 2004

Returning back up the thread a bit, Philo is wrong. His lack of experience in consulting shows.

If you don't charge for something, the other side thinks it's not important AND will use it to set future rates.

Tuesday, February 17, 2004

Tapiwa, as I understand it, his task was to see that certain data would be processed correctly. He carried out that task correctly.

Tuesday, February 17, 2004

In that case, he should be paid his pound of flesh, and not a drop more.

That it cost him $2k more to do the job becomes his problem.

Food for thought when he prices his next contract.

Tuesday, February 17, 2004


Company B had a fixed price contract with company A.

But his contract was HOURLY. 

Dan Brown
Tuesday, February 17, 2004

Philo is not wrong.

Philo opined on the legal recourse available.

Philo then followed up with a musing about dealing with clients who don't value your work.

Personally, the best approach is probably to present them with a bill for $2000 (or however much) and mark it as "payment waived." Let them know specifically that they have received a gift and what it's worth.

Because I doubt it would be worth the time or money to actually file suit, and I have reservations as to whether or not you could win.


Tuesday, February 17, 2004

I had a similar situation once, in which I gave the client a rough estimate, then the actual time took an additional 10%. I talked to the client about it, and suggested we split the difference (a few hundred bucks), so I just billed him for 1/2 of the additional time. I think we both felt like we got an ok deal, and he called me back for more work later.

Just a suggestion.

Thursday, February 19, 2004

*  Recent Topics

*  Fog Creek Home