I'm doing a freelance project which has a fixed price. First I gave them a time estimation and finalize budget for the app. They don't like to pay for hourly rates. After wireframes were finalized they have added few features as well and changed few times colour themes and UIs. Each time I would be flexible, and make the changes for them.

Once the first release was done they again said that they needed to change UI and said that this is the normal way of doing software development. They said that change comes continuously and that these are small changes.

They don't have any intention to pay any dime of money for extra work. I tried to explain to the situation to the client.

I asked them to finalize app (mobile app) wireframe for me, but they are saying that it cannot be done, as it not what agile iterative process even means. It should keep changing.

The App needed to be completed in 2.5 months (the time estimation I gave) and I was ok to go for 3 months (they needed me to stay), but 1.5 months gone its only completed sign in/up screens. There is no way to finish the app within 3 months.

The reason why I asked this question is to show to get what other experts would say about this.( I might show this to her ). Plus this might behelpful to anyone who facing the same problem with clients.

What would be a better approach that I should follow when dealing with this kind of client?

  • 4
    a) It seems neither you nor the client truly understand what agile means. b) This is why fixed prices without fixed specs are bad. EIther you have fixed specs, the just ignore anything else unless it is paid. Or you have not, then accepting this contract is completely your own fault. – deviantfan Mar 16 '16 at 9:20
  • Your question is too broad to be answered here. Rather than asking us what you should do, what do you want to do? Terminate the contract? Extend the deadline? Renegotiate price? – Lilienthal Mar 16 '16 at 9:31
  • If they say agile means keep changing and ask for a fixed bid that is inconsistent. Not finalizing wireframe on a fixed bid is not fair. I don't have a good answer but agree this is a difficult situation. – paparazzo Mar 16 '16 at 11:01
  • Just curious... Did you have anyone else look over your contract before you accepted it? A lawyer, or at least an experienced freelancer? – Kent A. Mar 16 '16 at 13:48

Your client is right that "agile" means you can keep changing forever. You just have to make it clear to him that "keep changing" requires the developers to be paid, like in money changing hands, and even in "agile" development, payment of the developers is a prerequisite for any change.

Clearly you are inexperienced in running a business, and the client is trying to take full advantage of your inexperience. You either convince them to pay up, or you take your contract to a lawyer who will advice you how to get rid of that client without any risk. Worst case I hope you have a limited company, because that's what limited companies are there for.

  • Hi gnasher729, thank you very much for your answer. Although I mentioned about you need to pay for extra work, client don't seems to understand the point. I needed some experts advice so I can show it to her. Thanks alot. – happycoder Mar 17 '16 at 4:37
  • @happycoder I'm pretty sure he does understand the point! He is just intentionally not paying you. But it's quite possible that he is not fully aware of the fact that what he does is clearly unacceptable from the ethical point of view. Could be that he thinks he adheres to the contract, and may feel he's pushing it pretty far. So do not assume he intends to cheat you. On the other hand, I would say he is on the way to practically cheat you. (Also, he may have no other option, because he can not afford to pay you - do not assume malice without clear evidence. It makes negotiation much easier.) – Volker Siegel Jul 29 '16 at 17:21

I wouldn't take a contract like that these days, you should always have an agreement to charge for extra work. You need to be careful as a freelancer.

But since you already have, you need to look at mitigating the problem. In my case I would put a hold on the work until I had negotiated a resolution which included me getting recompensed, but I can afford to get rid of clients if I have to. You are starting out so might not have that ability.

In your case I would email (so it's in writing) that such and such change has been made to the UI as requested. I do this anyway as a matter of course. I always have a paper trail. If they then wanted another change to it I'd send them a quote and see what they do. Then move forwards from that, at the very least it opens a dialogue on the subject, and it also makes them think twice before requesting you to change things for little reason.

This is best done early on, but it's never too late. I still get clients who try this sort of stuff on from time to time, sometimes they get the quote and that's the last I hear of that change being made, other times they authorise the payment. Either way I don't lift a finger to action it unless I'm being paid to. I still continue on the other work that was agreed upon, just not that portion.

My stock response is pretty simple.

"Hello XXXX, this is outside the scope of our original agreement so would incur an extra charge, please let me know if you want a quote on it.

Regards Me"

It's a judgement call on your part as to whether it is or isn't in the scope. I tend to give the client a break if it is a small easily made change that makes sense. But if it starts costing me, then no.

  • Thank you Kilisi, your input is really valuable and every comments in this thread will be very useful in my freelance career. Thanks a lot. – happycoder Mar 17 '16 at 4:43

You should definitely write a software requirements specificiation. This defines the scope of work you have to do and that your client expects. Put in a clause which states, that only requirements written in that document are part of your contract and that any changes require and new contract (and thus new payment) This specification has to be signed by you and your client. If they approved it and you delivered all required features you are no longer legally require to do any bonus work.

Regarding the agile development, I do not agree with gnasher729 it does not mean that you keep the project running forever. It means that you have more collaboration and less formal software development process. Still the software should be developed and reach a mature state at some point. It does not mean that your client can change requirements as they wish.


When negotiating the terms of a contract, the eventuality of scope creep should be addressed within the terms of the contract. What you've done is put yourself in the unenviable position of being in what amounts to an open-ended contract where the client can put in any amount of change request without having to pay a dime more.

In the future, have a clear contract where change requests must be submitted and additional time and costs are addressed.

  • The very first company I worked for actually sold "developer hours" to clients. Consultation, scoping etc. was all free (obviously included in the price of the "developer hour"), but the client purchased say 160 hours and that's what they got. "Feature creep" was no problem. Once the hours were gone the customer just had to buy more hours and got free consultation, design etc. for all the new features they wanted. Never seen this method used anywhere else, but it solved the problem very nicely. – gnasher729 Mar 16 '16 at 9:52
  • @gnasher729 I'm working under an arrangement like this now. They can have anything they care to pay for. – Richard Says Reinstate Monica Mar 16 '16 at 11:24
  • @gnasher729 I have one doubt, what if client need to change same functionality over and over again, Ex: App has login feature, after 1st release client need to change UI, remove components and then add some components? etc, Should I charged them too? – happycoder Mar 17 '16 at 8:58

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