Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Question for developers:How do you charge when you have to work on someone elses project?

Discussion in 'General Discussion' started by mark-007, Jun 13, 2019.

  1. mark-007

    mark-007

    Joined:
    Mar 4, 2015
    Posts:
    27
    More and more we're being asked to work on Unity (and other) projects that have been developed by external developers unrelated to us... mostly teams that we've never met and unlikely to meet (mostly they're no longer in the frame or key people they've left the company) . Mostly there is very little documentation to go on so it all involves reverse engineering how it's all put together. Mostly the customers simply don't appreciate how much work is involved in the whole discovery process "it's Unity right and you guys know Unity". Well not quite like that but kind of that.

    We keep making the mistake of underestimating how much work this is which means that we're often really not really getting paid for quite a bit of work we're doing.

    So it got me wondering how everyone else deals with this..? Do you simply charge a daily rate to look into it? say you'll add it to the project if you get the go ahead? Sometimes for example we're asked to add something new to an existing working app so we need to do the whole discovery thing before we've even got the job.. which is just sunk costs. Do you build that in if you get the job or not take it on unless there is something there to start with?

    Thanks in advance
     
  2. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Build a strong portfolio so potential customers will have confidence in paying you a reasonable hourly rate to do the initial evaluation. Or, if it's a big potential contract, consider the sunk cost an investment, sign an NDA, and offer to evaluate the project on spec so you can determine a quote. From there it's a matter of communicating the scope of work with the customer, which is just careful writing and patience.

    Code visualization and auto-documentation tools may help shorten the discovery process. Even something as simple as running the project through doxygen with graphviz will make the worst spaghetti code at least a little more understandable.

    Good luck!
     
    angrypenguin, Joe-Censored and Ryiah like this.
  3. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    This is a common problem in all project estimations with lots of unknown unknowns, not just when dealing with contract customers. I learned the hard way to just pad an additional 50-100% extra work than you estimate when dealing with such unknowns.

    So if you think your discovery will likely take 2 days, you quote the customer 3-4 days. If you like to just flat price quote the entire project, you do that based on a time estimate internally of course, and you bump up your time estimate the same way before generating your quoted price.
     
    Martin_H and Ryiah like this.
  4. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    6,009
    I've run into horrible situations with this when freelancing. If you're not going to charge explicitly for evaluating things, I think if the project seems worth it, spend an hour or two looking for signs of a bad codebase and getting a rough idea of the quality of things, and pad accordingly.

    In the end though, as TonyLi said, the more of an impression you make, and the more a customer wants to give you the job, the better frame you have for running things your way - so that's probably a better focus.
     
    Ryiah likes this.
  5. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Iirc I've seen a unity freelancer say on a panel discussion he just charges a fixed hourly rate and only takes on clients who are Ok with that. Seems like a sensible choice if you're established enough to still have clients if you do it.


    I think that's pretty good, the average is it takes 3 times as long, iirc.
     
  6. mark-007

    mark-007

    Joined:
    Mar 4, 2015
    Posts:
    27
    All fantastic replies, thank you ever so much. I think we've ended up just doubling estimations in the past and then found them to still be tight after finding the usual amount of unknowns when you come to do the actual project.

    Half the battle is that every project is so different from the last (and I personally always seem get the most difficult ones that no one else has a clue how to tackle) - but of course that's also what keeps it being so interesting.

    Thank you for the pointer towards doxygen with graphviz @ToniLi will take a look at those :)
     
    TonyLi likes this.
  7. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    5,358
    Work by the hour instead of fixed price, problem solved :D
     
    ClaudiaTheDev likes this.
  8. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    I sympathize with freelancers here. I know that you don't wanna risk scaring away a client with talk of charging for prep work and discovery.

    But you really got two choices: charge for discovery, eat the extra work for free.

    Both approaches have costs and benefits. You gotta just evaluate things for yourself and make the call.

    Reality is that if work is slim and competition is tight, sometimes you're gonna have to eat the extra work. Hopefully, you can get yourself into a position where more and more often you can charge fully.
     
  9. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,816
    I agree on working by the hour. You can always give a projected estimate. But I've been burnt badly in the past charging a fixed rate. Once I quoted 60 hours and ended up on about 100.
     
    ClaudiaTheDev likes this.
  10. ClaudiaTheDev

    ClaudiaTheDev

    Joined:
    Jan 28, 2018
    Posts:
    331
    Working by hour is a MUST.
    You should also charge every hour of work also sunk costs like thinking about a concept. Document everything and write the results of your brain storming down so that the customer can always understand what he is paying for.

    Also never sign a contract where bug fixing is free. It is even better to spend a bit more time (with testing) at the beginning than trying to be cheap by rushing and fixing a lot of bugs later. The customer wont book you again.
    Fixing bugs is a normal process and no code is without so charging for that is also a MUST. Just try to do the project as conscientious as possible and avoid all bugs you can find yourself. When a customer hires two freelancers and they see one needs longer but his work has much better quality and less maintenance costs and the other is very fast but has to fix the project later by spending hours(money!) the customer always will hire the first one because it is less risk.
     
    AndersMalmgren and Meltdown like this.
  11. mark-007

    mark-007

    Joined:
    Mar 4, 2015
    Posts:
    27
    Thanks again for the replies everyone.

    Hopefully this thread will be a decent guide and resource to others with similar issues :)