SitePoint Sponsor

User Tag List

Page 1 of 3 123 LastLast
Results 1 to 25 of 68
  1. #1
    SitePoint Evangelist old_expat's Avatar
    Join Date
    Dec 2005
    Location
    Thailand
    Posts
    460
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Avoiding Open Ended "Contracts"

    I'm in the middle of trying to figure out how to approach contract coders for one of my projects.

    The problem is, I don't know enough about PHP to know the time required, or I would do the coding myself.

    A couple of coders who I approached want a deposit (which I understand and agree with). Then they gave me an hourly rate and an estimated range .. number of hours .. to do the project. That's okay as well.

    The kicker is their "however" .. which is, "However, the project may take longer and I get xx per hour, so I will invoice you for .."

    I can't see my way clear to get involved in an open-ended contractual situation. My position is, that if a coder is good enough to do the project well, he should be good enough to know how many hours are required .. and to state a "not to exceed" price.

    I realize that I have walked into the lion's den, so to speak, but I'm wondering what the PHP coders here think.

    By way of reference:
    When I was doing my brick and mortar business (I'm an old retired guy) I had a precision metal job shop. I had to quote fixed prices on everything, including parts that had never been fabricated previously. I was supposed to know how to anticipate problems and deal with changes or pricing before I ever made a quote.

  2. #2
    Theoretical Physics Student bronze trophy Jake Arkinstall's Avatar
    Join Date
    May 2006
    Location
    Lancaster University, UK
    Posts
    7,062
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Im on the coders side on this one.
    You can never tell how long a project is going to take. I made a website for a client, and found that i finished it two weeks later than i planned, which would give me a dominoe effect on my other clients. However, i did manage to finish the later client's site before the deadline.
    Hence, if you do a project, you can NEVER say how long it's going to take.

    Anyway, i would be happy to do your project, depending on it's size, for you. Don't know about money, but thinking of doing it for free.
    What kind of project are you doing?
    Jake Arkinstall
    "Sometimes you don't need to reinvent the wheel;
    Sometimes its enough to make that wheel more rounded"-Molona

  3. #3
    SitePoint Wizard TheRedDevil's Avatar
    Join Date
    Sep 2004
    Location
    Norway
    Posts
    1,196
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Did you ask specific after a quote?

    If I agree, that the developer/company should have been able to give you a "set" price on the project.

    We do that all the time, keep in mind though that on a "set" price people always charge a set of buffer hours on top of how long they think it should take. Just as a protection incase something go wrong, I assume you did the same.

    As most companies we prefer working on a hour basis, which in most cases would be the cheapest for the client, but when someone requests a quote we provide it. I guess in somecases it is always nice to know exactly what you are paying, if your on a budget etc.

    Another kicker regarding quotes, is that you need to be very through in your description of the project and what features you require. After we have signed a "set" price contract, we would setup a new contract for any changes.
    This means that any changes would have been easier "solved" on a hour basis, as we would not require another contract before we did them.

  4. #4
    King of Paralysis by Analysis bronze trophy
    Join Date
    Jul 2004
    Location
    Ottawa, Canada
    Posts
    5,840
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you can't tell how long a project will take (within 25%) then you shouldn't be bidding on contracts.

    Now, with that said, it's your responsibility as the buyer to ensure that you provide the coder with detailed and complete specs on what you want the system to do.

    If you decide to change/add to those specs the coder has every right to ask for more money/time to complete the project.

  5. #5
    SitePoint Evangelist dev_cw's Avatar
    Join Date
    Dec 2005
    Posts
    454
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I find it easier to close deeals on a 'per project' billing approach, mainly due to the problem above. It is highly recomended that you add a buffer zone as well as having a very detailed description of services. We do add a "however" clause stating that if something is added to the project that is not covered in the service descriptions that we will bill extra for that on an hourly basis.

    What makes it difficult to close on a fixed price is that soooo often the clients will start wanting you to add every feature available as well as ask for constant modifications after the project has been started being developed. For this reason the hourly rate way makes it easy to force the client into doing their homework before the project starts or else it will cost them more $$$.

  6. #6
    SitePoint Wizard cranial-bore's Avatar
    Join Date
    Jan 2002
    Location
    Australia
    Posts
    2,634
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I think the best approach is for the developer to give a flat quoted fee to a specification and any changes or additions beyond that will require adjustment to the price. Probably an hourly rate for smaller changes. It does mean the developer assumes a degree of risk (accurately estimating can be difficult), but IMO it's better customer service to give a fixed fee for a fixed amount of work.

  7. #7
    SitePoint Evangelist old_expat's Avatar
    Join Date
    Dec 2005
    Location
    Thailand
    Posts
    460
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by arkinstall
    Anyway, i would be happy to do your project, depending on it's size, for you. Don't know about money, but thinking of doing it for free.
    What kind of project are you doing?
    I'm not sure you would if you know what's involved.

    It is one of those "good news" and "bad news" projects.

    The architecture is completely defined, the database is design and the code is somewhere around 80% complete.

    The code is well commented and supposed to not be spaghetti code.

    It is a project that a coder abandoned ibecause he had more important work to do.


    It is a rather unique application so I won't talk too much about it publicly.

  8. #8
    SitePoint Evangelist old_expat's Avatar
    Join Date
    Dec 2005
    Location
    Thailand
    Posts
    460
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by TheRedDevil
    Did you ask specific after a quote?
    Yes, very definately. The coder told me his hourly rate then estimated 10-20 hours to finish the project (see above post about the partially completed code). I agreed to that, then he said, "However ..." And that's when he wanted to be able to invoice me for how ever many hours were required to finish it.

  9. #9
    SitePoint Evangelist old_expat's Avatar
    Join Date
    Dec 2005
    Location
    Thailand
    Posts
    460
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by tke71709
    If you can't tell how long a project will take (within 25%) then you shouldn't be bidding on contracts.
    That's the way I see things. I realize a coder has to have some padding, but an open end project can lead to disaster for both parties.

    Quote Originally Posted by tke71709
    Now, with that said, it's your responsibility as the buyer to ensure that you provide the coder with detailed and complete specs on what you want the system to do.
    I have actually provided much more than that. The database is designed, architecture , etc, etc. I wrote out a complete "how this thing needs to work and what it has to do" document in addition to giving him all the existing code.

    The pages, errors and all, are on a server; as is an empty database.

    Quote Originally Posted by tke71709
    If you decide to change/add to those specs the coder has every right to ask for more money/time to complete the project.
    Absolutely. In this case, I will need a billing module after the rest of the application is working .. and expect to pay separately for it. It is a pretty simple one, but it needs to write to the db .. so I explained all the functions so the coder could make provisions for it.

  10. #10
    SitePoint Evangelist old_expat's Avatar
    Join Date
    Dec 2005
    Location
    Thailand
    Posts
    460
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by dev_cw
    We do add a "however" clause stating that if something is added to the project that is not covered in the service descriptions that we will bill extra for that on an hourly basis.
    We always called that a "change order". If my customer wanted some extra and it was within a range I could cover with my profit .. and especially if it was one of our OEMs, then I would usually just verbally make a big deal about how I was doing them this serious favor.

    If it was going to cost too much, we got the buyer to cut a C.O.

  11. #11
    SitePoint Guru
    Join Date
    Nov 2002
    Posts
    841
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    There is always a risk of error involved with estimation. The larger the project, the more risk. The more unfamiliar or unusual the project, the more risk.

    Borrowing the XP estimation model, you have the four project variables of time, cost, quality, and scope (features). If you insist on a fixed cost, then one of the other variables has to move. If you insist on a fixed scope with a specification, then that leaves quality and time.

    If the estimate was too low that leaves the programmer with two choices: donate time or skimp on quality.

    The programmer certainly doesn't want to donate their time, so they can try to pad the fixed price to cover their uncertainty. However, bidding is somewhat competitive. So the client shops around until they find a programmer who may simply have underestimated or may be too inexperienced or too desperate to correctly pad their estimate.

    Then if the estimate was too low, the programmer realizes the time they are going to have to "donate." They disappear or deliver garbage, or deliver very late as nobody likes to donate time with alacrity. Bad for the client. The irate client posts on SitePoint about how they got ripped off.

    Now what happens if the estimate was too high? The client overpays and the programmer cashes the check in glee. Bad for the client.

    While fixed price may be re-assuring for the client, it has hidden drawbacks especially when combined with low bid shopping.

  12. #12
    SitePoint Guru
    Join Date
    Nov 2002
    Posts
    841
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Oh, a word on metal shop project estimation versus software project estimation. The specification of a physical part is probably significantly more precise and obvious than the specification of an intangible good such as software, hence less risk of error in the estimate.

  13. #13
    SitePoint Addict
    Join Date
    Apr 2005
    Posts
    274
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by old_expat
    I'm in the middle of trying to figure out how to approach contract coders for one of my projects.

    The problem is, I don't know enough about PHP to know the time required, or I would do the coding myself.

    A couple of coders who I approached want a deposit (which I understand and agree with). Then they gave me an hourly rate and an estimated range .. number of hours .. to do the project. That's okay as well.

    The kicker is their "however" .. which is, "However, the project may take longer and I get xx per hour, so I will invoice you for .."

    I can't see my way clear to get involved in an open-ended contractual situation. My position is, that if a coder is good enough to do the project well, he should be good enough to know how many hours are required .. and to state a "not to exceed" price.

    I realize that I have walked into the lion's den, so to speak, but I'm wondering what the PHP coders here think.

    By way of reference:
    When I was doing my brick and mortar business (I'm an old retired guy) I had a precision metal job shop. I had to quote fixed prices on everything, including parts that had never been fabricated previously. I was supposed to know how to anticipate problems and deal with changes or pricing before I ever made a quote.
    Now this depends on the project, BUT, if you are talking about hiring real professionals, if I were you, I would go with the hourly rate. Because a "fixed" price is calculated like this:

    (hours this is gonna take + uncertainity) * hourly rate

    A professional is going to have a good estimate of how long something will take, so you will simply lose a bit of money for the uncertainity. If you are working with novices, go for the fixed rate as they are more likely to underestimate the number of hours it will take.

    The other disadvantage of havinga fixed price is that your specification is now fixed. As in, you can't change anything in your project mid-way, because you would need to re-negotiate your contract or simply pay the programmer's hourly rate for the extra work done anyway. And I am yet to see a project that doesn't change mid-way.

    Also, please remember that web programming isn't like a metal job. The main difference between the two is that for the most part in web programming the client rarely has any clear idea of what he wants and after the initial work is done, extra bits and pieces that usually take endless hours of one's time are requested from the programmer, and if a fixed price has been quoted, it is very unlikely that a client will willingly agree to pay for the extra work that needed to be done.

  14. #14
    Non-Member QiSoftware's Avatar
    Join Date
    Oct 2004
    Location
    U.S.
    Posts
    366
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    An accurate estimate can be provided to a client if the client has a specific task in mind and allows the programmer to review the current environment and resources before providing the estimate.

    I have found that a lot of people want fixes to free php plugins that are used with blogs and forums. The problem is these free plugins are developed by underpaid programmers. Free plugins are sometimes harder to fix-- because of deliberate bugs inserted by angry programmers. It is almost eaiser for a programmer to write a plugin from scratch-- and have him/her provide the estimate up front.

    Q...

  15. #15
    SitePoint Member
    Join Date
    Aug 2006
    Posts
    8
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You could use a two-tiered contract: X$ for the first 20 hours, or whatever the initial estimate was, and X-Y$ for every hour after those. This would share the risk evenly and thus provide the programmer with the reassurance needed to lower his uncertainty buffer. The programmer would know that his back is covered even in the worst case scenario and he would not be as loth to implement any minor extra requirements that might emerge. However, he would still have a strong incentive to try to finish the job on schedule. You can also use more than two tiers if needed, or require an absolute maximum at say 50 hours.

  16. #16
    SitePoint Enthusiast
    Join Date
    Jun 2005
    Posts
    43
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You have every right to demand a quote that is a flat rate. If your coder can't handle that then get another coder who can. I have a clause in my contracts that says "It's an estimate." That's is just to cover me for strange situations.

    In general you should be dealing with a person who has done this type of work before and they should be able to give you a fixed flat rate.

    If they can't, that's a sign that something is wrong to start.

  17. #17
    Cha, Cha, Cha!!! Gamermk's Avatar
    Join Date
    Aug 2005
    Posts
    604
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Mark R
    You have every right to demand a quote that is a flat rate. If your coder can't handle that then get another coder who can. I have a clause in my contracts that says "It's an estimate." That's is just to cover me for strange situations.
    People actually sign that?

    Quote Originally Posted by arkinstall
    Im on the coders side on this one.
    You can never tell how long a project is going to take. I made a website for a client, and found that i finished it two weeks later than i planned, which would give me a dominoe effect on my other clients. However, i did manage to finish the later client's site before the deadline.
    Hence, if you do a project, you can NEVER say how long it's going to take.
    He of course means hours of work done, not time frame of completion.

    In regards to your dilemna, I agree the programmer should be able to give you a range. I must warn you though that scope is the toughest part for us. You have to be very specific with what you need and realize that if you change the rules, even slightly, it can have dramatic repercussions in terms of time to complete a project. Scope Creep is basically the reason that you are running into programmers saying "Well it might be even more". Clients ask for things above and beyond the contract very often.
    People don't read ads. They read what interests them,
    and sometimes that happens to be an ad.
    TrulyBored.com | TankingTips.com

  18. #18
    SitePoint Zealot Wynnefield's Avatar
    Join Date
    Sep 2005
    Location
    North Texas
    Posts
    137
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    i try not to code any more unless I have too (with the exception of Actionscript), as i used to be a programmer years ago and just don't like it any more ...

    however, when i provide a bid for a web site, my contract is stated as an estimate within 10%. if i find an expense may take me over the 10% range (a special rights-managed photo or a unique typeface), i ask the client if it's ok. if no, we find an alternative...if yes, we continue along the path.

    i can only hope my initial estimate is close enough, based on my experience with previous web sites with similar requirements.

    i was just contacted this week by a client who paid in full for a web site; however, he neglected to deliver the content, photos and other information identified as his responsibility in the contract. as this was two years ago, the contract has expired; however, the language is such that he must offer me first option at any redesign or rework.

    he knows this and has asked me to provide another bid to complete the site we started ... now i am in a quandry as the bulk of what is left are the time-consuming tasks of photo alteration/cropping and creating an image map with links to a new page for each lot on his property. i am considering charging T&E, but need to sit down with him and confirm his expectations.

    if i am fair to myself and my time at present, he may end up paying one and two-thirds times the original price because he allowed the original contract to expire ... ??

  19. #19
    Non-Member
    Join Date
    Apr 2006
    Posts
    337
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    A coder should know approximately how long it should take to write a program. You should stay away from open-ended commitments.
    Instead of paying an hourly fee, you should go with a quote for the total cost of the project.
    Best of luck.

  20. #20
    Non-Member Ihtesham's Avatar
    Join Date
    Aug 2006
    Posts
    41
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    "The superior man, when resting in safety, does not forget that danger may come. When in a state of security he does not forget the possibility of ruin. When all is orderly, he does not forget that disorder may come. Thus his person is not endangered, and his States and all their clans are preserved." - Confucius

    That "however" is just to make provision for exceptions which are always there.

    Custom applications development is not like making bricks. There could be different approach each time.

    That is why usually medium and large size projects have a lump sum cost. Only small tasks should be done on hourly basis. That is what I think is wise and good for both buyer and provider.

    A very important thing is that buyer must make sure at first place that what exactly he wants and stick with it down the road. If not adding more, must also not remove a feature in his software. That can effect the whole application and can cause changes to be made on others parts of the program. Which of course is not what the developer had in mind.

    So basically a buyer can play vital role in meeting the deadline.

  21. #21
    SitePoint Enthusiast newdaynewdawn's Avatar
    Join Date
    Aug 2003
    Location
    Central KY
    Posts
    76
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by ablaye
    A coder should know approximately how long it should take to write a program. You should stay away from open-ended commitments.
    Instead of paying an hourly fee, you should go with a quote for the total cost of the project.
    Best of luck.
    Quote Originally Posted by tke71709
    If you can't tell how long a project will take (within 25%) then you shouldn't be bidding on contracts.
    Indeed there must be a boundary of some sort or you could potentially (not saying they've got any evil intent) get milked like a cow. I wouldn't give ANYONE an open-ended run on any thing! Get as many bids as you can and then weigh it all out from there. Sometimes you can win and sometimes you'll inevitably loose with a bid... you live and learn and make adjustments with each thing you do.

  22. #22
    I hate Spammers mobyme's Avatar
    Join Date
    Apr 2004
    Location
    Sunny Snowdonia
    Posts
    662
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I think we have to live in the real world, most of us will not even put our car into a garage unless we have a pretty good idea of what it is going to cost and get pretty wound up if the actual cost exceeds the original estimate. This is because we expect a certain amount of professionalism from the garage in as much as they should know their work inside out and how long it's going to take. Most professional people who have under estimated the cost of what they are doing feel honour bound to deliver at the price stated. I personally would not deal with anybody who could not give me a firm quotation. I guess I resent paying for somebody else to learn something at my expense. Why for Gods sake should coders or anybody else for that matter regard themselves as immune from having to put out
    There are three kinds of men:
    The ones that learn by reading.
    The few who learn by observation.
    The rest of us have to pee on the electric fence.

  23. #23
    SitePoint Evangelist old_expat's Avatar
    Join Date
    Dec 2005
    Location
    Thailand
    Posts
    460
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Smile Woo Hoo .. made the home page!

    Quote Originally Posted by Selkirk
    Oh, a word on metal shop project estimation versus software project estimation. The specification of a physical part is probably significantly more precise and obvious than the specification of an intangible good such as software, hence less risk of error in the estimate.
    For simple parts that is true .. just as it is probably easy to quote a fixed price on a simple PHP script.

    But on a complex fabricated metal part, some issue that might need to be decided are certainly not on the print, nor are they obvious to a casual observation.

    *Are the threaded 3 mm holes too close to the bend?
    *Will I have to make a special fixture to insert the PEM nuts or to spot-weld this bracket?
    *These bends are too tight (for this alloy aluminum) for the way I have to run the grain because of the shear size.
    *Am I going to have problems with slugs "pulling" on the CNC?

    While I am supposed to be able to foresee those problems .. because I am a pro .. shouldn't a professional PHP coder be able to foresee the problems in his/her area of expertise?

  24. #24
    SitePoint Evangelist old_expat's Avatar
    Join Date
    Dec 2005
    Location
    Thailand
    Posts
    460
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Edman
    Now this depends on the project, BUT, if you are talking about hiring real professionals, if I were you, I would go with the hourly rate. Because a "fixed" price is calculated like this:

    (hours this is gonna take + uncertainity) * hourly rate


    A professional is going to have a good estimate of how long something will take, so you will simply lose a bit of money for the uncertainity.
    Correct, IF the coder is ethical. A coder with an open end contract can still pad the hours.

    Quote Originally Posted by Edman
    Also, please remember that web programming isn't like a metal job. The main difference between the two is that for the most part in web programming the client rarely has any clear idea of what he wants and after the initial work is done, extra bits and pieces that usually take endless hours of one's time are requested from the programmer, and if a fixed price has been quoted, it is very unlikely that a client will willingly agree to pay for the extra work that needed to be done.
    LOL!!! If you believe that, you need to go hang around a metal/machine shop, tool and die shop for awhile. No disrespect intended, but you can't know the "main difference" related to a metal shop if you haven't been intimately involved in one.

    I had a major player in the computer industry as a customer for awhile. One time they let their EE design a chassis.

    One conversation went something like, "It's discolored. I want it silver."

    "Zinc looks that way. It is not discolored, zinc has coloration."

    "But I want it silver."

    "You said you wanted zinc."

    "I do, but I want silver zinc"


    A QC guy, "This part is corroded. I used to work on aircraft. I know when aluminum is corroded just by running my hand across it."

    "That's steel."

  25. #25
    SitePoint Evangelist old_expat's Avatar
    Join Date
    Dec 2005
    Location
    Thailand
    Posts
    460
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Wynnefield
    however, when i provide a bid for a web site, my contract is stated as an estimate within 10%. if i find an expense may take me over the 10% range (a special rights-managed photo or a unique typeface), i ask the client if it's ok. if no, we find an alternative...if yes, we continue along the path.
    That is perfectly acceptable, IMO. Pretty much the same as a "not to exceed" price.


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •