Slashdot Mirror


Ask Slashdot: How Long Should Devs Support Software Written For Clients?

lucky4udanny writes "My client says any software/website we develop for them should be supported with bug fixes forever, with no further compensation. We have generally supported our work for two months, to give the client adequate time for real-world testing, after which we charge by the hour for all support. How long should a company fix bugs without compensation in software they developed? What is the industry convention?"

18 of 384 comments (clear)

  1. Too late to be asking.... by jmorris42 · · Score: 5, Insightful

    Dude! The support details are something that you should have had in writing before you even started working on detailed requirements.

    Both sides agree in writing on the scope of work, acceptance procedure, support, training, documentation, code disposition (work for hire, GPL, third party libraries, possibly even escrow), all of that stuff. Anything else just shows a total lack of professionalism.

    If you are now in a position of being asked to support it forever without anything in writing you have to decide which will be worse, cutting your losses now and writing off that client and everyone they will bad mouth (with some justification but they are equally guilty of not insisting on getting anything in writing) you to or digging yourself into a hole providing free support until they eventually toss that codebase. Which one you choose depends on far too many factors you haven't provided.

    --
    Democrat delenda est
    1. Re:Too late to be asking.... by Anonymous Coward · · Score: 5, Informative

      It's probably a good idea to check with a lawyer if there is a legally required support duration and what is covered under it. In this case, he should be happy if there is, because then he tells the client that he'll provide support as legally required and any additional support would have to be negotiated. Don't leave the client hanging if he needs support now and is willing to negotiate a support contract. Be prepared to write off that support in case no contract materializes though and be firm if the client tries to drag this out.

    2. Re:Too late to be asking.... by SomePgmr · · Score: 5, Informative

      Probably a good idea.

      And if there isn't I imagine the only answer would be, "We've met the design goals as conveyed to me, and you haven't contracted me to provide infinite support. But you're welcome to make an offer and I'll be happy to work with you from there."

      Without being a dick about it, of course. Next time, figure it out ahead of time and everyone signs on the line provided.

    3. Re:Too late to be asking.... by networkBoy · · Score: 5, Interesting

      I don't know what his app is, but I look at it this way (and is how I handle something I write):
      Is this a bug?
      Assuming it is then:
      is this something that is obvious code error (i.e. buffer overflow, null pointer, etc.)? I fix it.
      Is this something that is behavior not as expected, but is not a code error (logic error), and should have been seen as part of acceptance testing? I charge for the fix.

      really simple, and so far I've not had any customers balk.
      -nB

      --
      whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
    4. Re:Too late to be asking.... by pclminion · · Score: 5, Insightful

      How long the software should be supported for defects? Forever. Since the software doesn't wear out, any defect was developed there from origin, it's a reasonable expectation that when someone asks for something, it is asking for something without defects, so covering for bugs forever is the only sensible way to respect the contract.

      If you have a contract that actually makes you provide free bug fixes forever, then you signed a shitty contract. Software always has defects, this is simply a fact of life. Extremely rare defects, by definition, do not make themselves visible very often. The reason rare defects are not found during testing is precisely because of this. More comprehensive testing does not ensure zero defects -- it only ensures that whatever defects do remain happen exceedingly rarely, or under exceedingly improbable circumstances.

      It is quite reasonable, as a client, to expect a software maker to provide bug fixes for software they provide. It is equally reasonable for the software maker to request ongoing payment (commonly called "maintenance") to continue providing these bug fixes indefinitely. Both parties to the contract are making a risk tradeoff when they sign. The client is risking that they will pay a certain amount of money for the software (including the initial development costs and any ongoing maintenance costs) and never actually recoup this expense by using the software. The software maker is risking that they will charge a certain amount for development and maintenance and some defect will arise that will cost more to fix than they are getting paid to fix it.

      The two parties hopefully meet in the middle with a price and contract that seems optimal for both.

      Just because it's software, doesn't mean you let your eyes glaze over and throw basic economics out the window. Or, for that matter, the basic observation that humans are fundamentally fallible and you can't expect people to magically do things perfectly just because they work in a technical field.

      (Another factor in this is that it is actually not risk-free to fix bugs. Fixing bugs necessarily involves changing code. Changing code may introduce yet another defect, or expose a latent one.)

  2. Programming is like having sex without a condom... by Anonymous Coward · · Score: 5, Funny

    ...one slip-up and you're gonna be supporting it for the rest of your life.

    Prolly end up having to raise your own grandkids too.

  3. Never. by LWATCDR · · Score: 5, Insightful

    " after which we charge by the hour for all support. How long should a company fix bugs without compensation in software they developed?"
    You have your answer. You charge by the hour for support including bug fixes. Only slaves work for free.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  4. 3 Months by Anonymous Coward · · Score: 5, Informative

    We do 3 months for custom / work-for-hire products, and hourly after that.

    You have to be careful, because I've had companies that start making changes to their infrastructure, and then told us our software didn't work when in fact their environment changed. So be very specific.

    1. Re:3 Months by NoNonAlphaCharsHere · · Score: 5, Interesting

      Too right. Been on the receiving end of that "but our processes have changed" phone call. The analogy I use is "Let's say I'm a tailor who makes a suit for you. Now you gain weight and expect me to fix it for free?".

  5. Re:Your bugs.. your problem by Anonymous Coward · · Score: 5, Insightful

    >>They didnt code it, you did.

    You didn't sign off on the acceptance testing, they did.

  6. Be careful... by billster0808 · · Score: 5, Insightful

    Clients have a funny way of making everything into a bug. Customer changed their minds about something after they've already signed off on it? Bug! Your code doesn't run on an OS that didn't even exist when you wrote the software? Bug! Customer wants a new feature? Bug!

  7. Re:Your bugs.. your problem by jdastrup · · Score: 5, Insightful

    Why should they pay to fix your mistakes?

    Once the client signs-off on it, they accept the bugs as well as the features.

  8. After accpetance, it's pay-as-you-go by dbc · · Score: 5, Insightful

    A 60-day acceptance period sounds generous to me. Have them sign off on an acceptance letter. After that, it could be hourly, or they could pay monthly support that covers things like pro-active security patching and the right to call you with questions.

    Major software packages are sold with support. Oracle, for instance, gives their salesfolk lots of discretion to negotiate price, but *not* to discount the monthly support contract. That should tell you something about how the big boys think.

  9. Re:Your bugs.. your problem by radiumsoup · · Score: 5, Funny

    sorry, I forgot to use the "tongue in cheek" font.

  10. Re:Too late to be asking. (maybe not) by icebike · · Score: 5, Interesting

    On the other hand....
    Forever is a long time. There is no reasonable expectation of forever in any legal contract for goods or services in any
    industry I'm aware of. Even contracts for burial plots do not last much more than 200 years.

    Sure, a wise contractor will have a warranty duration mentioned in the contract, and specify an acceptance testing phase, after which
    all bugs belong to the purchaser. Any bug fixes offered after that are likely to require additional payment.

    Without such a Ts Crossed and Is Dotted contract, there are only reasonable expectations to fall back on:

    Both sides know that there is no such thing as bug free software. Never has been. Never will be.
    Expectations to the contrary are not reasonable, and never have been.
    Expectations of indentured servitude went out with the 13th amendment, and no contract can bring that back.

    Further, rare is the software that enters service and remains unchanged for its useful life. Any warranties or assurances
    are lost once the code is modified, even if modified by the same developer, but especially when another developer
    steps in, or the purchaser themselves make changes. Even without a contract that states this, one need only
    point a finger at the changes made by others to divert ALL blame.

    The two month time period mentioned in the story and "adequate time for testing" seem a little thin if you ask me.
    I would never sign a contract for custom software that was so tightly limited, and it does not sound reasonable for any project of any reasonable scope.

    So without something in writing, the contractor deserves a little pain and suffering (as a stupidity penalty), but they are STILL not up the creek without a paddle, because "forever" is not reasonable, and reasonable expectations become the deciding factor. But in this case "reasonable" is no longer strictly the contractor's call, and courts may well have a say.

    --
    Sig Battery depleted. Reverting to safe mode.
  11. Yeah, But That's Not Really True by Greyfox · · Score: 5, Interesting
    Back in the 90's (and still to an extent these days) if you were a really bad programmer you'd just screw around for 3-6 months and then change contracting companies, usually getting a $10-$15K raise in the process. Then the next guy would get stuck supporting your crappy job. Case in point, in the late 90's I got picked up on an inventory project that was already late and over-budget. My predecessor had left in a hurry. Upon reviewing her code, I found that, among other things, she had not realized that in C you have to null-terminate your strings. No accountability must have been nice. It's still pretty damn hard to fire a programmer just for sucking, and it's still pretty damn hard to find good programmers even with the economy as bad as it is. Pretty easy to find bad programmers, though.

    As for this client, you're probably not obligated to anything that's not in writing (IANAL, talk to one.) The "Get it in writing" sword cuts both ways. Tell him you're going to review the support terms in the original contract. Whoops, couldn't find any. Then offer to negotiate some.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  12. Re:Too late to be asking For the client too! by Smallpond · · Score: 5, Funny

    I'm surprised you don't know these. I learned the standards when I first started programming. For example:

    • Every line must fit on an 80-column card.
    • Continuation character goes in column 6.

    Have these changed?

  13. Re:Too late to be asking. (maybe not) by Registered+Coward+v2 · · Score: 5, Insightful

    Both sides know that there is no such thing as bug free software. Never has been. Never will be. Expectations to the contrary are not reasonable, and never have been. Expectations of indentured servitude went out with the 13th amendment, and no contract can bring that back.

    Expectations of being sued into indentured servitude, however, did not go out with the 13th (nor did indentured, only involuntary, servitude)

    --
    I'm a consultant - I convert gibberish into cash-flow.