Lets say I finished an app recently - was hired to develop it. By the end the client tested features, paid me and the development was over.

The question: what to do with the bugs which can appear further? Should I fix my bugs for free in the future, or it is common practice to have a separate maintenance contract?

These are my bugs and if I wouldn't make them I would not have to fix them, on the other hand, bugs are inevitable in pretty much any more or less complex project.

  • 3
    I use to announce free bug fixing for a given warranty period because it's my duty to release bug-free. But after a while it is understandable that reopening the project has a cost. Whatever you do, agree on it beforehand.
    – user4521
    Aug 16, 2016 at 13:58

2 Answers 2


For projects with big budgets, fixing the bugs and the maintenance can be included in the price since you can add more time for you and your team for the "testing phase."

But often you can get stuck doing smaller budget projects, or get rushed finishing the project, or the client asked for so many revisions that there is actually no time left for this; that testing phase cannot be done properly.

One thing that can be done when this happens (or before in fact) is to give that responsibility to your client; if you are rushed to finish a project or cannot be paid to put the time required to test your code properly, he should do the tests, and then tell you what's wrong. You can give your client a certain period of time to do this; then everything after this period will be charged at hourly rate. Of course if it's a minor bug or something created by obvious negligence, you should probably simply fix it.

That's a fair option you can offer to your client and you can offer this when signing the contract. Think of it as an extended guarantee; as you said software often have bugs but they are also built over a long period of time before being released, and with a team reviewing each others' work. There's also many version of it; your client bought a 1.1 version in a way if he had a small budget or little time to give you to develop the app.

You can include some maintenance for an extra fee, and there's probably other benefits or extra services you can add to that maintenance other than fixing bugs. Another option is to guarantee them a lower hourly rate for 6-12 months to fix bugs or for maintenance if they decide to simply go with the "1.1" version low budget option. This way they won't be scared to be stuck with an app that doesn't work properly and will probably prefer to test it themselves to save a few dollars. The way you can also present it is to tell them "if they ever want to tweak something or add new features, it will be at a lower rate." Otherwise, you can offer as second option a certain amount of hours included in the price for these things and lower that hourly rate a little bit.

Eg. Your first option without maintenance should have a hourly rate a bit higher than the second option with the maintenance included.

The benefit for you: by doing this, you already introduced honestly the option of fixing bugs and gave them the freedom to choose, you offered maintenance and you also welcomed the client to come back to you for more work.

With these info, you can think of a system that could work for you and that lets you client freely choose what he wants. Next time "bugs" will happen, it will be less difficult for you to decide what to do; you'll also know what's fair for YOU and for your client too. And you'll always get paid one way or another.

Note: I'm not a dev, but I do projects management and that's how I deal with that kind of issue. Maybe you will get better answers from entrepreneurs working directly in software or website development.


It depends on your contract, you warranty period and your own professional conduct.

It's my mistake and I should fix it? We all make mistakes. The development process is not only the coding. It's coding + testing (QA) + bugfixing. This is what your hourly rate or fixed price is consisted of. So when you said $1k for the project, it included all 3 phases.

Did you skip any phase and took the money anyway? If yes, fix it for free if you want.

I usually NOT charge bugfix if it consists of 1-2 hours and I knew they would appear. If this is a larger work with more work hours, then I do charge it. Why? Because I implemented all 3 steps mentioned above and bugs still appeared. Since I think that I do not code spaghetti code, I find these bugs as additional work.

Let me explain more in my own expertise - mobile apps. If a client returns an app to me that has ugly fonts on tablets or misaligned images on the mobile device, I fix this for free. Why? Because I should have seen that in 3 steps I mentioned. This is my oversight.

If the client returning the app for crashing on a specific device with a bug that I could not test, then I charge it because this is an extra work.

All of this counts if you two do not have contract. If you have, see what it says.

For the warranty period, I fix all bugs inside it because I charged client for my availability during the warranty period. Yes, warranty period is counted in my price and I treat it like a Retainer agreement between myself and the client for X months.

There is also an option that you two worked via freelancing sites like odesk and he did not rate you. In such case, test him to see if he is willing to pay more. If not, do it for free as you have no other option if you want 5-star rating. And be smarter in the future by disclosing your rules before the projects starts.

There is also a case when this is your old and good client and for such clients, I would fix it for free unless the work would take more than 10 hours.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.