Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

So, I was tasked by client to help him convert his wp menu to javascript dropdown. I did on my development server. He did see the change and I was paid. I deliver the code he deploy it. But, no change on his server. So, I have to spent hours debugging it on his server. It turns out, his other plugin is not compatible with my change. That plugin is really custom. I have to change my code to make sure it's compatible with that plugin.

My question is, is it fair for me to charge him for the hours I spent on debugging it AND actually fixing it? or is it still my responsibility, to make sure my code deployed properly?

share|improve this question
11  
sounds like he paid you to convert his menu, but your work only converted your menu. –  Alb Apr 4 '11 at 23:38
6  
He shouldn't have accepted it until it worked on his server, and you should have checked his plugins before beginning work. –  Josh K Apr 5 '11 at 2:26
    
yeah, let it be a lesson to me. –  ariefbayu Apr 5 '11 at 2:46
    
I agree with Josh K. You should have told him you need access to his files to make sure your code wasn't broken by existing plugins. If he refused, then put in the contract that if it is found that existing plugins did break the code you will have to charge him for debugging and time modifying. –  The Muffin Man Apr 6 '11 at 20:59

5 Answers 5

up vote 6 down vote accepted

There is a third option here where you could charge him for the fix (ie, finishing the job), but not charge him for the debug time which only occurred because you did not do your BEST possible job as a programmer.

Don't get me wrong; you did what most developers would do with a contract job. However, as developers we also know that minor differences between servers can be the difference between working plugin and a worthless plugin. Had you of created a mirror of the clients setup (as close as reasonably possible), this likely could have been avoided.

I would ask him for payment (keyword 'ask'; do not REQUIRE payment) regarding the fix, but leave the debug time out of it. Make a point of bringing this to his attention; perhaps include the debug time on the invoice with a deduction.

share|improve this answer

I can understand why you feel miffed at the situation. You had everything working at your end, and it fell over at the customer site, because of something at their end.

Now, from the customers perspective, they paid you for a change, and you had failed to deliver that change, until you did the extra debugging, and patch...

Personally, (and I have been in that kind of situation) I would not send in an additional invoice, and take the loss on the chin, however, I would factor in the deployment risk into future quotes for this customer, (and similar work else where). If the customer queries the new higher pricing for future work, use this as an example of the time scale risks you are facing, and that you do have rent to pay and need to eat, but that you have already demonstrated that you do stand by the quality of your work and will make sure that they are happy, even after they have paid you.

share|improve this answer

I could be convinced either way on this one; but if there's more work on the line, I'd probably just end up eating it.

These are the precious life lessons that no amount of school can teach you. You're lucky that this one only cost you a couple of hours of your time :)

share|improve this answer
    
Every time I read a response like this I secretly think it's some HR/Admin type trying to pass along the same perpetual ideologies so people will work for less. It's all in good fun but don't fall for it. –  bobby Apr 5 '11 at 2:21
    
Believe me, I'm pretty much the opposite of HR :) My point is, he already has more work lined up; it's not like he's going to eat it for the promise of more work. If he's got nothing else lined up, to me it personally makes sense to not risk the relationship (and the next job) over something that he arguably shouldn't have charged for anyway. –  Giovanni Galbo Apr 5 '11 at 3:32

On one hand, I think you're within your rights. If he didn't give you all the information you needed to do the job successfully (ie. the other plugin), how could you be expected to?

On the other hand, is there likely to be more work from this source, or through his friends? If so then you might want to seriously consider whether within your rights is enough. Maybe doing him a favour will more than pay off in the end.

share|improve this answer
1  
He does have more project and I didn't intend to charge more for looking the cause why my fix doesn't work on his server. I just want to know is it fair to ask more. –  ariefbayu Apr 5 '11 at 1:33

It kinda depends on the contract you had with him. If your agreement was that he would pay you by the hour then you would have more room to say you need to charge him more than if you made a bid on the project. If you made a bid on the project and he didn't provide you all the information (but it would still be true that you didn't research the setup properly) then you could potentially bill for the difference of what you did bid compared to the amount you would have bid if you had known all the details. Ethically I would say you have a responsibility to get the code working on his equipment/setup as that's what he was paying for. He wasn't paying for code he couldn't use. There are always times when things like this happen as it's easy to overlook things like this.

share|improve this answer
    
well, he don't give me the server setting. He just sent me wp theme files, I fixed in on my server and I sent them back. As for the contract, it's pay by the task, not hourly. –  ariefbayu Apr 4 '11 at 23:25
2  
@silent: Go look at the contract in detail and decide what you think is in your rights. I would personally lean towards eating it, but informing him that going forward you're either going to need to raise your rate for the basic work, or else add a rate for debugging on his systems, because of the time it takes figuring out hidden dependencies. Because if it was an issue once, it will likely be an issue again in the future. –  btilly Apr 4 '11 at 23:42
2  
@silent One thing that is important to learn about many clients is that they're not technology savvy most of the time. They don't know what things are important and what are not. We must dig and find out what we need to know. I would highly recommend always requesting direct access to the deployment system before beginning a project. If they reject your request then you have more grounds to charge additional costs than if you don't request this at all. –  Kenneth Apr 5 '11 at 0:29
    
@silent - if this is a flat fee, you have no right to charge him for the fix. He contracted you for a job, and the contract was not fulfilled until the code was proven to work on his server. –  Craige Apr 5 '11 at 1:41
    
@Craige, OK, I get it. You make a fair point of view. –  ariefbayu Apr 5 '11 at 1:42

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.