I am working on a huge, multifaceted application/service for a client which never seems to stop growing in size. For various reasons the client has decided they don't want anyone else to work on the project; so although I was originally hired only to develop a portion of the entire system, I am now stuck doing everything by myself.

Getting paid isn't an issue because I am billing the client hourly and they seem happy with the flexibility this gives them. However, they are adding new features to the requirements on a weekly basis, much faster than I can develop them, and there doesn't seem to be any end in sight. I have done my best to lock down the requirements but the client keeps thinking of new features they want as they develop the content that will go on the service.

Months ago they mentioned several times that budget was an issue when considering hiring a second freelancer, but it hasn't come up since. We've already spent much more money than I assumed they had left, so I have no idea whether there is a danger that they'll run out of funding before everything is ready to go live.

My main concern is that the service will never get finished, or that by the time it gets finished it will be ready to blow over in the slightest breeze like a skyscraper of cards. I am finding myself increasingly unable to keep up with the scope - accidentally breaking features or even duplicating existing code that I forgot I wrote months ago.

Recently the client has been asking for endless analytics and views for their content. I can't imagine they will ever find any practical use for some of the data they are requesting or sorting features they want implemented. They've been changing the requirements for the content management interface so much I haven't been able to implement any of it, so it's not like they're using an existing system and realizing they need features that aren't there. They're just tacking on new features they think will be useful.

  • I've tried recommending they wait until the service is live and has a good deal of users before worrying about in-depth analytics (gently suggesting that all of the analytics in world are useless if the service isn't popular).
  • I've told them I do not specialize in some of the work they are having me do and am not the best person to do all of it; I've even told them this project is much too large for one person and they should hire a firm (they may not have the budget for a firm).
  • I've suggested we hold off on some less-important features until the service goes live so we get something out the door faster
  • I've told them that if budget is a concern, it might be a good idea to prune some less-important features entirely

The client is very friendly and likes me a good deal; they normally take what I have to say seriously, but I can't seem to get them to ease off on new features.

  • "hold off on some less-important features until the service goes live" Does this indicate that you have already completed the original scope of the project and it is technically ready, or the original scope is unattainable due to the barrage of extras? – UhlBelk Sep 19 '15 at 0:30
  • The original scope no longer exists, the scope is changing faster than I complete it. Again, this isn't inherently a problem since I'm getting paid hourly, but I'm concerned we'll never reach a point where we can launch, and eventually they'll run out of money or I'll go crazy. I like the release-early-release-often approach seen on the mobile market, where you put the product out ASAP and update regularly. – user45623 Sep 21 '15 at 3:36
  • Will it help if you tell them gross estimates of work hours for a new feature request ? (And to put these on a calendar to show them the end of the tunnel moving back ?) – Harry Cover Sep 23 '15 at 10:39

It seems you have done everything expected from an honest Freelancer.

If your client has been informed of the limitations regarding this project and still ignores your professional advice you can either...

Try harder to comply by prioritizing the project and, as you mentioned, at least complete the original scope as directed from the beginning, then redefine anything above those main functions an extra.

If you are unable to complete portions of the project hire a subcontractor to assist You. Although your client may not like the idea of hiring someone else you should have no issues with hiring / outsourcing those parts you are unfamiliar with (unless you signed an NDA). This may cut into your personal earnings unless you are able to negotiate payment terms with the client (with or without their knowledge of the assistance you hired)

Otherwise politely apologize for having to leave the project. If you are able, get the original scope finished and providing you are paid in full refuse to do additional work unless you receive the necessary "tools" to do the job expected of your company.

It is important from the beginning of all projects that you and the client document the scope and estimated costs of the project before starting. If the project has already started without a contract you should definitely consider documenting and finishing the original scope setting an end point, then renegotiate part two of the project adding the bells and whistles.

I would recommend drawing up a detailed document listing the attainable goals as well as those you are not able to currently accomplish with the resources given. Do offer suggestions however on how to accomplish those goals that are out of reach. (IE hiring specialists, or other methods achieve a desired effect).

Naturally you want to keep good relations with your client but they must understand that they hired you on to do a specific job and once that job is complete they can hire you for further growth if the application is successful.

If after all the warnings your client still insists you continue to work on the unnecessary functions and growing scope, Keep on keeping on, so long as they are paying, you should have nothing bad on your conscience if the project is successful or not. (providing your not in breech of a legal contract).

  • I did sign a comprehensive NDA and can't hire any additional staff to work under me without their approval. It's not at the point (at least yet) that I want to walk away from the project, but I don't want to feel like I'm taking advantage of them. I guess for now I'll keep on keeping on, with the idea in mind of insisting that we lock down a final scope if I decide I can no longer provide the services they need. Thanks for your input! – user45623 Sep 21 '15 at 3:49

You can't, you shouldn't and you don't have right to tell him that. He's paying your work hourly and he can add zillion features if he likes.

Now, you probably got angry at me thinking that I want to turn you into mindless slave. Not at all. As I see, you probably do not have proper project management.

For example, if you run project per Sprint Agile, you would have all features on one pile and the client would pick those which will appear in the next sprint. And once you close the sprint and make it active, no additional features can be added to it. If they add new features, simply place them on features pile (backlog). This way, you will work on your sprint without interruptions and be happy, and the client will be able to add zillions of features into his app.

  • While you say I "don't have a right", there is also the ethical issue of whether to advise the client that I think they're going to waste money or crash-and-burn their project. I've tried suggesting an Agile-like approach where we break the project into sprints and lock the features for each sprint down, but it doesn't work out so neatly, partially because they don't seem very concerned about what order we complete features in and thus never confirm a sprint structure, and partially because sometimes the requirements change enough that the sprints I have planned stop making sense. – user45623 Sep 21 '15 at 3:39
  • Then it's time talk to them professionally in a manner "either we do it properly or I quit". If you tell this in a polite manner, this will make them realize that you are in charge of the project, but they need to take active part. So if they don't confirm sprint, you don't start it. If this happens often, you quit. And for Sprint, Sprint can finish sooner, but don't expand it. So if they cancel a few tasks, just shorten the sprint. – Peter MV Sep 21 '15 at 8:12
  • And when I say quit, I mean tell a professional reminder that they are not acting as you agreed on, you are waiting for their confirmation and lose money. Or you can simply charge wait time as many other guys do. – Peter MV Sep 21 '15 at 8:13

Your Answer

