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?"

384 comments

  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 Anonymous Coward · · Score: 0

      Agreed - this should have all been in the original contract, especially since it sounds like you're doing contract to meet a design specified by them as opposed to simply being a software vendor selling a product.

      Other than that, I don't know that there is really an "industry standard" that can be applied to all software companies - I guess the OP would really be looking for the standard for the "website for hire" industry

      For comparison, I work for a fairly large software/database company with a couple hundred customers and our software contracts are for millions of dollars. All version upgrades and fixes are included as part of their standard costs, with a new version released ~ every 15 months. Some fixes and enhancements may be retrofit to some prior versions, depending on scope, how safe we think those code changes would be, and need (i.e. fix is critical or needed for regulatory compliance). Any new development that has to be done to meet special needs for a particular customer (such as to interface with a third party system only they have) is billed by the hour.

    3. Re:Too late to be asking.... by Anonymous Coward · · Score: 0
    4. Re:Too late to be asking.... by cpu6502 · · Score: 2

      Microsoft has supported XP for seemingly forever. At no charge (3 major updates and also minor bugfixes - all free). But you're right this Questioner should have a contract somewhere to specify exactly how long the software will be supported. One could argue that "no time specified" means the customer should get no support at all. They should not have signed the contract, if they did not like those terms.

      --
      My AC stalker: " I personally agree with your posts most of the time, but that won't keep me from modding you troll"
    5. Re:Too late to be asking.... by Jane+Q.+Public · · Score: 2

      That's not the same thing at all. Stuff is specifically written to be compatible with Windows, not the other way around.

      His situation is reversed. He puts a web app out there, and browsers / technology / other software will constantly be changing around it.

    6. 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.

    7. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      Although parent is right in principle in reality there is always room for negotiation.

      If you don't have a contract in place for support then just say you need one or you'll stop fixing things for them. Remember that it's also expensive for your customer to switch software solution.

    8. Re:Too late to be asking.... by Intrepid+imaginaut · · Score: 1

      Yep. As long as you have contracted for, or as long as you're getting paid.

    9. 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
    10. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      I'm a consultant, and regardless of legal agreements, we have this problem all the time.

      Even so, I agree that trite but fixes should be provided for free - unless they contracted you to write buggy software, of course.

    11. Re:Too late to be asking.... by KingMotley · · Score: 1

      It's up until the day you've delivered the final product and they signed off on the work being completed. I'm always willing to do maintenance work at my regular hourly billing rate after the fact however. Oddly, my software hasn't ever broken and needed support after I've delivered it, but I've been called back for more (different) work at every client that I've done work for, so it all evens out in the end.

    12. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      The discussions here illustrate lots of good reasons why warranties are usually addressed explicitly. You'll find the Uniform Commercial Code (UCC) addresses implied warranties. Look up "implied warranty of fitness" and "latent defects" for some relevant information.

      Depending on the circumstances, the OP may well be on the hook to fix bugs in perpetuity. Hope the code was better than the contract...

      And, yes, be clear about the warranty terms on all future contracts.

      --B.

    13. Re:Too late to be asking.... by Zaelath · · Score: 4, Funny

      As a small company you simply agree that your company will support the software in perpetuity, then disband that company when the support costs hit a pre-determined point, and start a new one with the same people. The liability for the support dies with the old company.

      Hey, don't blame me for corporations law.

    14. Re:Too late to be asking.... by multicoregeneral · · Score: 2

      One mistake I made in a contract awhile back was not defining the lifetime of an app as 2 years. 4 years later, I'm holding the thing together with Elmers and prayer.

      --
      This signature intentionally left blank.
    15. Re:Too late to be asking.... by Bastardchyld · · Score: 1

      Also it is important to note, that they will most likely never toss that codebase as their support costs are non-existent.

      --
      $diff terrorists hippies
      $
      $rm -rf *terrorists *hippies
    16. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      The answer is never. Charge by the hour for everything you do. Then this won't come up.

    17. Re:Too late to be asking.... by JoeMerchant · · Score: 2

      When I've got $30B in the bank and a firehose of an income stream, I'll support all my past customers gratis too...

    18. Re:Too late to be asking.... by MightyYar · · Score: 1

      Microsoft has supported XP for seemingly forever.

      Well, they "support" it. Heaven knows how bugs get prioritized at MS, but suffice to say they haven't fixed all the bugs that I've encountered in the last 11 years :)

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    19. Re:Too late to be asking.... by turbidostato · · Score: 2

      "And if there isn't I imagine the only answer would be"

      Well, there were two questions, and two potential answerers so go figure.

      My position:
      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.

      Of course, there's the grey area in real world about something being or not a bug.

      "We've met the design goals as conveyed to me, and you haven't contracted me to provide infinite support"

      See what I mean? A bug (a real one, I mean) is something against the design goals by its very definition, no matter if it takes a hundred years to arise, but it seems SomePgmr is only glad to find a hole in the contract not to convey to its terms.

      The other question is What is the industry convention? The answer to this is, as most answers here demonstrates, for as short a time as possible; if we can extract money on our own inability to deliver from day one, much the better.

      And the reality? For a taylor-made, probably easy: whatever the contract says.

    20. Re:Too late to be asking.... by JWSmythe · · Score: 4, Funny

          Give MS a call, and tell them you found a critical security bug in Windows that you need fixed. Then tell them it's a DEC Alpha with WinNT 4.0 Server. Make sure you record it, I want to hear the laughter. :)

      --
      Serious? Seriousness is well above my pay grade.
    21. Re:Too late to be asking.... by Dan+B. · · Score: 1

      Totally agree with you there.

      You write the terms in the statement/scope of work (SOW) regarding ongoing support.
      We basically give 30 days for user acceptance testing (UAT) in which time we will change or fix anything that is not being met as per the terms of reference in the SOW, then roll in to an annual support contract once the UAT is signed-off or exceeds 30 days. Most people call this an annual software maintenance fee, and provide access to patches, hot-fixes and other bug related support, but not feature enhancements or customer specific changes; that stuff is chargeable.

      If you haven't got that stuff in writing before you start you are asking for a world of butt hurt.

      In your current dilemma, as said above, weigh up the cost of support vs the cost of walking away, or...
      Argue that there is no support contract and if they want one then it costs $X per annum (X is usually 20% of purchase price)

      --
      Dan. -- So what if it's spelt wrong, nobody's perfect
    22. 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.)

    23. Re:Too late to be asking.... by thegarbz · · Score: 2

      That leaves you open to one problem, the bounds of the system. If you promise unconditional support will you need to re-write your app when Windows 10 breaks it even though the customer isn't asking for any different behaviour.

      If you offer support like this, bind it to the system it was designed for. That naturally limits the life of the support contract to the life of the system which may only be a few years.

    24. Re:Too late to be asking.... by tlhIngan · · Score: 1

      If you want to keep the client and they want support, you can give them support, just very low priority - paying projects get developer effort first, and paid support contracts are top priority.

      This is after the mandatory support period (warranty after acceptance - usually 30 to 90 days).

      It's how other people do "free" support - very limited. As it's bespoke software, you can't do the "community forum" thing, but you can always say it's email support only, and phone calls will be transcribed into email by the receptionist (which means there'll be errors and request for clarifications, wasting time).

      As it's also low priority, it's up to whoever has free time to do it. If they're on paid work, the support gets deferred for later. And if clients are paying for support via support contracts, they get priority support.

      So a simple fix may take a few weeks to even be attended to or even just a followup - if they want priority support, they can pay for it. If they want indefinite support, well, they also have to be prepared to wait indefinitely.

      And be honest - if they ask the status of their request, say it's in the support queue - they can pay to have it resolved quicker if they want, or wait.

    25. Re:Too late to be asking.... by chthon · · Score: 4, Informative

      Please read "Foundations of Software Testing" to understand that what you are saying is wrong on so many levels.

      You should indeed do your best to write the best software you can, but there are enough factors influencing you that you never can be sure your software is bug free.

    26. Re:Too late to be asking.... by chrismcb · · Score: 1

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

      Did you read a different summary than I did? I got the impression he is working on a new contract. He stated normally he does support for 2 months. But this new client wants it fixed forever. He is asking what do other people do?
      Personally I think it depends on the product. How long is the project going to take. A longer project may have a longer tail end to fix issues. A shorter project has a shorter fix time.

    27. Re:Too late to be asking.... by neyla · · Score: 3, Insightful

      No you can't. And if you think you can, you're deluded. No non-trivial real-world program has ever been bug-free. Especially not programs large enough to have more than one developer.

      Even programs which are *very* carefully specified and written, and tested thoroughly, end up having bugs. These programs cost atleast one order of magnitude more than normal programs, and *still* have bugs.

      When the first pentiums had bugs that caused them to do floating-point-division wrong, it wasn't because they where sloppy, or because they where untested. They where tested 3 orders of magnitude more than most comercial software will ever be - and *still* launched buggy.

      Given that guaranteed bug-free is unattainable, the right question is what amount of quality-control and testing is worth it. Sometimes it's worth it to spend 10 times the amount in order to get rid of half of the most serious bugs, but often it's not.

    28. Re:Too late to be asking.... by UnknownSoldier · · Score: 2

      >> Software always has defects, this is simply a fact of life.
      > You absolutely can and should write fully functional, properly-tested, bug-free software.
      Maybe in the perfect fantasy world you live in, sure.

      Back in reality, some of us devs *do* try to write as-much-as-humanly-possible bug-free software. Unfortunately, specs change, and to guarantee 100% code coverage of ALL possible paths would mean you never shipped.

      Don't toss the baby out with the bath water just because we *grudgingly* accept the fact, that yes, all software unfortunately has bugs. ;-(

    29. Re:Too late to be asking.... by SuperDre · · Score: 1

      Well, you can also say as a customer, as long there was no time specified it means bugfix support is 'forever'.. If it's not put correctly in a contract and both sides disagree, it's up to a judge to decide, and I guess he will decide for something in between.. For me, 2 months support on a website is much too short, it's good enough to catch the big bugs, but it's certainly not long enough for the smaller bugs. Also let's not forget a customer orders a website and he can expect the website to be 'bugfree' and if it isn't, the product isn't shipped accordingly to the order.. (You and I know it's ridiculous to think that way, but on the otherhand it shouldn't be ridiculous as it could also be a means for developers to add bugs so they can fix them for money later (yes that actually happens too sadly))..

    30. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      I am pretty sure that if you pay them enough money they will actually do it ;)

    31. Re:Too late to be asking.... by dkf · · Score: 1

      No non-trivial real-world program has ever been bug-free.

      That's not strictly true. Some of the real safety-critical and mission-critical stuff really is that good off the bat (well, once it's reached deployment). You don't really want to think about how much it costs to develop to that standard though; it's usually reserved for things like signaling systems, interplanetary space probes, that sort of thing where bugs can have awful consequences or where fixes are potentially very difficult to deploy. Everyone else develops software the way they do, with the risk of bugs that it entails, because it's a gamble that usually pays off.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    32. Re:Too late to be asking.... by DrXym · · Score: 1

      Even the most rigorously tested code that has been used in production for decades has bugs in it. It's virtually impossible to write bug free code let alone prove that it's bug free. Even stable software like TeX has bugs and it would certainly have many more if it was in active development.

    33. Re:Too late to be asking.... by Just+Brew+It! · · Score: 2

      If the parties involved didn't even bother to nail down something as basic as how much support is included in the contract, do you really think anyone bothered to ensure that there were reasonable and unambiguous specifications up front? Who pays to determine what's a bug in the application code (developer's fault), what's a bug in the requirements or user error (customer's fault), or what's a bug in the OS or any third party libraries (someone else's fault)? And once that determination is made, who pays to fix it?

      What if the application needs to be moved to a new OS a couple of years down the road because the existing OS gets EOLed and stops receiving security updates? What if the new OS breaks the application, necessitating rework?

      I agree that software doesn't "wear out". But that doesn't mean every malfunction is automatically the developer's responsibility to fix gratis. Malfunctions can arise from things that aren't under the developer's control, and which aren't the developer's fault. The developer should not be expected to bear the full burden for things which are A) unanticipated; or B) not their fault, unless this level of support was written into the original contract.

    34. Re:Too late to be asking.... by Joce640k · · Score: 1

      digging yourself into a hole providing free support until they eventually toss that codebase.

      Bug fixes aren't new features. If bug fixes are a huge burden then it's because the code's crap. They deserve to have to fix it no matter what the cost.

      The car analogy would be like buying a car then having to pay extra to fix any manufacturing defects. Would you be happy with that? Manufacturers earn more for making shoddy cars than for making good ones...?

      --
      No sig today...
    35. Re:Too late to be asking.... by SplatMan_DK · · Score: 1

      Give MS a call, and tell them you found a critical security bug in Windows that you need fixed. Then tell them it's a DEC Alpha with WinNT 4.0 Server. Make sure you record it, I want to hear the laughter. :)

      I am still on NT 3.5.1 you insensitive clod!

      --
      My security clearance is so high I have to kill myself if I remember I have it...
    36. Re:Too late to be asking.... by neyla · · Score: 1

      Even when you do develop "to that standard", bugs creep in. Most of the times the bugs are non-critical, but once in a while you get critical bugs even in software developed to these insanely strict quality-standards.

      Mariner 1 was destructed 300 seconds after launch because a bug in the navigation-software caused it to veer dangerously off course, and it was thought it might crash in populated areas so the self-destruct command was sent.

      The mistake ? A missing overbar when transcribing a mathemathical formula. https://en.wikipedia.org/wiki/Mariner_1#Overbar_transcription_error

      The Deep Space folks at NASA lost a probe. Why ? The command-sequence sent to the probe on one occasion was lacking one crucial last command: "when done maneuvering, turn receiving-antenna back towards earth"

      These things happen more *seldom* when you use insane amounts of quality-control, however they still happen.

    37. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      seems like you're not even trying.

    38. Re:Too late to be asking.... by allo · · Score: 1

      but you should not accept this. Both are examples, where the testing was not enough.

    39. Re:Too late to be asking.... by T-Bone-T · · Score: 1

      I could interpret your response a couple of ways:
      1. How much testing is enough? They obviously felt that the testing they performed was enough and further testing was a waste of time and money.
      2. Sometimes testing doesn't cover everything. It takes real-world application to find some bugs and sometimes with disastrous consequences.

    40. Re:Too late to be asking.... by asdf7890 · · Score: 1

      This of course is why many organisations run IE6 internally: they have software guaranteed to work on IE6 and don't have a support contract that would include free changes if needed for compatibility with other browsers.

      If the client is not expecting this sort of limitation in your support agreements, they are deluded and/or being unreasonable.

    41. Re:Too late to be asking.... by Joce640k · · Score: 1

      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.

      That assumes good code with relatively few bugs.

      What if the code is a steaming pile of crap, barely functional? A customer has a right to a certain level of bug fixing without paying extra.

      --
      No sig today...
    42. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      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

      Lol .. I believe we used to call an indefinite claim to the products of someone's labor 'slavery'. The only "reasonable" hours you can "reasonably" claim from a programmer, are those that you can be "reasonably" said to have paid for. Otherwise there is no limit ... I mean, say an issue arises when the software is run on the upcoming Windows 8, does that fall under 'forever'?

      Bottom line, programmer hours need to be paid for. This kind of stuff should go into the contract beforehand. You get clients that pay peanuts and then expect "forever" - they're what we've learned to call "bad customers", and as more experienced consultants we generally have learned to prefer to work for "good customers" who are actually willing to pay for the programming hours required to do good work. You, on the other hand, will keep getting what you pay for.

    43. Re:Too late to be asking.... by K.+S.+Kyosuke · · Score: 1

      Stuff is specifically written to be compatible with Windows, not the other way around.

      You're correct, except when you're not. There's a lot of code in Windows for Windows to be compatible with stuff.

      --
      Ezekiel 23:20
    44. Re:Too late to be asking.... by BeanThere · · Score: 1

      Oh you can get that --- airline manufacturers, for example, do more or less get that --- but you "absolutely should" expect to pay a damn premium for it. Because programmers aren't slaves, awaiting your bidding to do work for you for free.

    45. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      Show me "bug free software" that's more complicated than "Hello World" and Hangman. You can write fully functional, properly tested software... but you are an idiot - with a capital stupid asshole - if you think you can write bug-free software.

    46. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      Microsoft didn't support XP to simply support XP... they supported XP to continue generating sales of Windows Server and Microsoft Office... and sales of NEW copies of XP. Throw in other things like IE, Bing, Visual Studio, etc and you have a lot of money they've made off of XP. XP updates "for free"? Hardly...

    47. Re:Too late to be asking.... by nedlohs · · Score: 1

      No you can't. Well, with the normal way of doing things anyway.

      Sure if you find a customer willing to pay orders of magnitude more than usual, to agree to a mathematical definition of the working software, and you manage to convince all the hardware makers whose hardware it will run on, all the other software writers whose OS and libraries and compilers it will use to do the same. Then you could produce bug-free software.

      However, no one wants to spend billions of dollars when they could pay someone else thousands for something that mostly works but has a few bugs.

      Especially since it's perfectly possible for your proof that your sotware is correct has a bug in it.

    48. Re:Too late to be asking.... by Ed+Bugg · · Score: 1

      The only way you can write bug-free software is to reduce it to a mathematical proof, all the way down to the OS. Yes down to the OS level, after all it's not like APIs don't have undocumented side effects. Unfortunately I haven't seen many Comp Sci classes being taught lately in algorithm analysis.

      You can always test for what you know, but you can't properly test for what you don't know.

      --
      -- Ed Bugg --You have freedom of choice, but not of consequences.--
    49. Re:Too late to be asking.... by sys_mast · · Score: 1

      Quote"One mistake I made in a contract awhile back was not defining the lifetime of an app as 2 years. 4 years later...."

      But did you outline how much notice time you'll give after announcing the EOL of the app? What I mean is, many software companies don't announce the EOL of a product at initial sale, they might not know. But after some time they put out an announcement that EOL is in 12 months(giving an exact date)

      I'm not a laywer, this isn't legal advice. But perhaps documenting a future EOL date, sending that out, maybe giving them enough time to upgrade/migrate, pay you to develope a 2.0, or some other solution.

      I'm just guessing you said "for the lifetime of the software." So now make a document saying when that end is. I've dealt with several of those notices, and you just deal with them, upgrade or retire the product. And no, we didn't know about pending EOL's at purchase time.

      --
      Those who can, do.
    50. Re:Too late to be asking.... by LifesABeach · · Score: 1

      I'm reminded of a great Greek Programmer some 3,500 years saying, "before the Gods make you fail, they first give you the gift of pride." If you're not in a cold sweat right now, why?

    51. Re:Too late to be asking.... by LifesABeach · · Score: 1

      No! don't tell the parent that! It's more fun watching the human drama that's going to happen next. Especially when it's much to do about nothing.

    52. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      But Microsoft has an agreement to do this. It is in the end-user agreement (you read it right?). They also provide for a warranty for the OS. This isn't "FREE" It is built into the price of the OS.

    53. Re:Too late to be asking.... by bwcbwc · · Score: 1

      Depending on what your lawyer says about your existing obligations, this could be an opportunity to sell the client an annual support contract with monthly billing, rather than paying by the hour. 2 months of "warranty period" support seems a tad low -- if the application is of any size or complexity. It could take that long just to train the users. Which means no one on the client side has actually spent any time uncovering the bugs before the free support expires. Also, socking the client with hourly rates right after a free support period can induce sticker-shock. That can be alleviated by a support contract, too.

      The other advantage of offering standardized support contracts is that it makes it VERY clear that there is no such thing as eternal free support in your offering.

      --
      We are the 198 proof..
    54. Re:Too late to be asking.... by DavidTC · · Score: 1

      No. That would not work. You are still risking unexpected interactions with hardware. I.e., the Pentium math bug or F00F.

      --
      If corporations are people, aren't stockholders guilty of slavery?
    55. Re:Too late to be asking.... by sexconker · · Score: 1

      If the OS changes, or some library changes, or they have bugs, that's not your fault.

      If your software is:
      Do this
      Do that
      Call OSThingy
      Do this

      And everything is bug free, then OSThingy breaks at some point, YOUR code is still bug free.

    56. Re:Too late to be asking.... by Shagg · · Score: 2

      You absolutely can and should write fully functional, properly-tested, bug-free software.

      Let me guess, you're in management.

      --
      Unix is user friendly, it's just selective about who its friends are.
    57. Re:Too late to be asking.... by randomencounter · · Score: 1

      Actually, due to changes in the underlying system even a perfectly flawless piece of software can fail over time.

      There are broad swaths of hardware failures that look like software bugs, just for starters.

      --
      Forget diamonds, copyright is forever.
    58. Re:Too late to be asking.... by tlhIngan · · Score: 1

      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.

      However, if the contract doesn't state that, it probably also doesn't state any sort of response time for fixes.

      Even in shitty contracts where the client expects fixes "forever", as long as there's on timeframe for fixes maintenance contracts can still be entered into.

      Without - it's basically "your fix will be done when we have spare time to look into it or if your fix was done for someone else". No definite timeframe and something like changing a misspelling can take months assuming people are on other (paying) projects.

      Depending on what they pay, they can easily get faster response times - either pay-per-incident or via a timed contract.

      So it's possible to support the software "forever", just the "free support" queue has an indefinite wait. The only time fixes jump the queue would be if they got rolled in as part of something else (e.g., a bug fix done on a paid project also happens to fix an issue reported - so someone else paid). Of course, even then it'll be done only because someone perusing the queue noticed the issue was the same and fixed, so it's not like the fix was expedited - someone still had to notice the fix was identical and work already done so it can be closed.

      Ditto other forms of support - if they want phone - they can pay - or just use email. If they insist on phone, have the receptionist take it down in an e-mail (hilarity will ensue and even more time wasted on clarifications!).

    59. Re:Too late to be asking.... by sexconker · · Score: 1

      No, NOT down to the OS, because I don't control the OS. And I don't control the CPU they run on, the memory, the disk, the network, the effects of time dilation, etc.

      You are responsible for the code you ship.
      It is NOT unreasonable to reduce your own code to a logical/mathematical model and prove correctness.

      If you treat all external calls and operations as 100% correct (after you handle the bugs that you find in regular testing / know about already), the amount of shit you have to model/test/prove is suddenly manageable.
      There is no POINT rigorously proving something you don't control because it can change at any time. You only need to take ownership of that if you include a copy in your shipping product, at which point open source shit becomes your best friend because it's easier to test, fix, and prove correctness of source code than compiled code.

    60. Re:Too late to be asking.... by HornWumpus · · Score: 1

      Steaming piles are caught in acceptance. If you've accepted it and paid then you are now in maintenance. Most effort and money is spent on software maintenance, which is not only bug fixes.

      Forensic accountants could catch many cheating businessmen. Look for the ones who capitalize all their software costs past initial start up. They are all cheats.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    61. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      Absolute rubbish - even NASA with billions of dollars at their disposal cannot reduce software defect rate below 0.1 bugs to 1000 lines of code, and they recognise that this isn't feasible for real world projects.

      http://en.wikipedia.org/wiki/Software_bug

      All software contains bugs, and software testing merely reduces them to an acceptable level/chance of them occurring.

    62. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      I think you'll find this enlightening. It sums up what all of us are saying, but better

      http://engineering.stanford.edu/research/ate/aiken

    63. Re:Too late to be asking.... by j00r0m4nc3r · · Score: 1

      How do you test your test-set? How do you test your test-set tester? How do you test your test-set tester tester? And so on...

    64. Re:Too late to be asking.... by thegarbz · · Score: 1

      As long as you're happy to argue this with representing then by all means go for it. Personally I'd rather just spend the 5 minutes to write a single line into a contract explicitly stating where my support will end.

      No doubt you'll win if it went to court. But no you won't win because time spent in court over meaningless bullshit because of a poorly worded contract is a waste of a useful few days of your life.

    65. Re:Too late to be asking.... by hazah · · Score: 1

      I've had a boss like this. His only issue? Didn't know what software is. A good analogy is probably that it is a creature. Like all creatures, software is susseptible to health problems for one reason or another. A shitty doctor could mean the life and death of a patient. A good doctor, at best, can improve your quality of life. Software is not a product. No matter how much one wishes it was. It is a process, a realization of a system. It has no concrete definition. Not unlike life.

    66. Re:Too late to be asking.... by asdf7890 · · Score: 1

      I wasn't meaning that you shouldn't have those limits in your contracts, both covering how much time is covered by support as well as what environments.

      These things should be in the contract - leaving it to potentially argue out in court later could well be commercial suicide.

      If the client refuses the support limitations, there is often some room for negotiation. Beyond that always remember that until a contract is signed you can say no to them as easily as they can say no to you - if their demands are unreasonable you generally don't want them as a client anyway (let them waste your competition's time instead).

    67. Re:Too late to be asking.... by hazah · · Score: 1

      This is rediculous! You are implying something along the lines of the following: that details about structures of rocket engines, described in terms of their molecules, can be stored in human brain matter. That is insane! On the other hand, you will have the disconnect of two or more minds trying to come to terms with one (the very same) detailed reality, again, insane! Sure, _mathematically_ software has no reason to be mathemtically imperfect. You would be a fool to assume that the human experience is inline with this notion.

      If you have an army of super-humans, I mean the kind that have that photographic memory you seem to think is within reason, then by all means, use them. Fact is, buildings, bridges, space shuttles, just about anything, are NOT "bug free," else we souldn't have incidences like this.

    68. Re:Too late to be asking.... by hazah · · Score: 1

      Both of the replies miss one crucial point. Human lifespans aren't infinite. We still have to make due within that framework. The alternative is not at all, make your choice!

    69. Re:Too late to be asking.... by hazah · · Score: 1

      The test you are proposing will be several generations long. How do you propose to solve the problem of convaying that information _properly_ before nature cuts you off?

    70. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      > You absolutely can and should write fully functional, properly-tested, bug-free software.

      How?

    71. Re:Too late to be asking.... by hazah · · Score: 1

      Doesn't look like anyone was debating that particular point. Once you've reduced the scope of what the programmer can control, then obviously _their_ code should reflect a proper provable model. But the software is still not (and will not be) 100% bug free, which is the proposed standard of success/failure that seems to propgate this thread.

    72. Re:Too late to be asking.... by hazah · · Score: 1

      LOL!

    73. Re:Too late to be asking.... by pclminion · · Score: 1

      You absolutely can test every single state and input set for every finite state machine (every computer that has ever existed).

      The idea of using software to test other software is obviously a good one. However, it doesn't guarantee freedom from bugs. There could be bugs in your test software. To prevent that, you try to rigorously test the test software. But that might not catch everything, so you'll need to write test-test-tests to make sure the test-tests aren't giving you the mistaken impression that your tests are passing when in fact, they only pass because the test-test-tester had a bug when it tested the test-test.

      If you ever sit down and actually try to do anything you just suggested, this will all start to become clearer to you.

    74. Re:Too late to be asking.... by pclminion · · Score: 1

      You can "not accept" it if you want, but it doesn't change anything.

    75. Re:Too late to be asking.... by Sir_Sri · · Score: 1

      MS has different types of lifecycle support, which will eventually come to an end. When you buy windows part of that is making a contract with microsoft for their support as laid out in their policies.

      It's something like 5 years for general updates and so on, and then another 5 years for major fixes from the date of release of the software (not the date you signed the contract). With Xp specifically, they basically restarted the clock with I think SP1 and SP2 but not SP3.

    76. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      'If you have a contract that actually makes you provide free bug fixes forever, then you signed a shitty contract.'

      Except they can get out of it via a legal thing called 'Unfair Contract', where they can prove that the expectation to support it forever is not only impossible, but unfair to their party. So the contract can be either renegotiated, or nullified.

    77. Re:Too late to be asking.... by HArchH · · Score: 1

      From the customer's perspective, it doesn't hurt to ask. Likely he knows he's putting you in a box and making a ridiculous request to see what the vendor will say. The vendor should reply with a price for limited support to the customer's original requirements (not new requests) for a limited period of time, with some agreeable payment terms. The vendor doesn't have to refuse or get a lawyer. Just negotiate.

    78. Re:Too late to be asking.... by multicoregeneral · · Score: 1

      That's actually not a bad idea. She's still paying me to maintain and gradually upgrade the thing though. Biggest problem with the thing is that it pre-dates PDO, and it's big enough that we end up spending a lot more time on securing the thing than we should. Suppose there are worse things to complain about.

      --
      This signature intentionally left blank.
    79. Re:Too late to be asking.... by cavebison · · Score: 1

      True. Another thing that's often overlooked is defining "capacity", particularly with web apps. The customer needs to know that their web app was written as an intranet app, for example, supporting a small number of users in a small business.

      Say one day they're bought out, and the software suddenly has to support 1000 users instead of 20. They might have reason to complain if it falls down - because your queries/processes made for hundreds of records choke when there are a few million. Some idea of capacity and scalability should be part of the spec.

    80. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      You clearly have no clue about software development then, and comments like this merely prove your stupidity and inexperience.

    81. Re:Too late to be asking.... by macs4all · · Score: 1

      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.

      Although I certainly agree that a consult with a lawyer is a good idea, just to make sure their isn't a support period required by statute or caselaw, I completely reject the idea that a contract that is "silent" on the issue of support automatically transmogrifies into a tacit agreement by you to support your "work for hire" indefinitely.

      Think about it; the client signed that contract, too! The onus was ACTUALLY on the OTHER party to make sure that "support" was covered; otherwise, I contend that your duty to support (if there was any, and absent any specific statutory/caselaw provisions) ENDED when the client put the software into his "live" system, and started to use it on a regular basis.

      Even if you didn't put a "merchantability or fitness of purpose" disclaimer into your contract, every single day he uses your software without complaint is further evidence in your favor against any "nonperformance" claim he might have.

      Remember, courts are bound by the four-corners of the contract, as extended and modified by statute/caselaw.

      But THAT IS ALL! If "Support" isn't mentioned in the contract (and there isn't a statute/case decision to the contrary), then your support term is ZERO.

      That's why "Lifetime Guarantees" are ALWAYS in WRITING.

      A Court would NEVER "infer" that there was a "meeting of the minds" that you agreed to support your work forever! That would be like you CONTRACTING a WORK FOR HIRE to paint your house, then expecting the contractor to come back and touch up any chips or defects forever. Even if you discovered the contractor missed an entire wall in his painting, if you came back even a month later, you would unlikely be able to get the contractor to fix the "defect"; because it is YOU that has a DUTY to INSPECT a craftsman's work, and PROMPTLY (and a month later isn't "promptly") report any defects/nonperformance.

      Similarly, you don't have to do free development on any "improvements" to your software, above and beyond what is expressly written into the contract.

      This client thinks (and maybe rightly) that he has a vendor that doesn't understand his own rights, and so is just seeing how far he can push...

    82. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      Another thing to consider is scalability in the future or the client using the software in a way or on a dataset that was not considered during it's development. The definition of "bug" should also be spelled out. If an application was designed to process a particular set of data and the client tries to process a slightly different set of data with undesirable results they may consider this a bug but unless that use was in the original specifications the developer would consider it a feature request or enhancement.

    83. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      It is always fun to listen to children talk. Does your mother tell you you are perfect, just like your software?

    84. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      If you want us to think you are an adult, you should stop speaking. Not only did your momma tell you you're perfect, apparently, she told you all your faults are some other persons responsibility.

    85. Re:Too late to be asking.... by Anonymous Coward · · Score: 0
      1. Believe it or not, MS won't laugh at you. They're professionals, unlike you.
      2. And they'll fix it. They'll charge you a lot, but if you pay, they'll fix it.
      3. Now try the same stunt with Red Hat. Go on. I'll wait. You want to hear laughter? Yeah, RH will laugh at you.
      4. I know, theoretically you can fix it yourself. Good luck with all the regression testing and so forth.

      And if you want to start chattering about "MS will laugh, and of course Red Hat would do this", then please tell me when you've done this. We have gone through this process with both companies (MS and RH), and, okay, I admit Red Hat didn't laugh out loud at us, but they did say "you're joking", and when they realized we weren't, squirmed and said they didn't really do that kind of thing for old versions.

      I don't know how old our RH version was that we did this for, because I wasn't on the phone for that call - just heard about it later - but nowhere near as old as NT 4.0 is. However, I was on the conference call with Microsoft. MS said "sure, we can do that, obviously it's not cheap, it'll cost about this much (insert fairly hefty figure), so if you want to go ahead we'll send out the contract for you to sign and get started on the coding".

      No, I'm not making this up.

    86. Re:Too late to be asking.... by Anonymous Coward · · Score: 0

      No you can't. And if you think you can, you're deluded. No non-trivial real-world program has ever been bug-free. Especially not programs large enough to have more than one developer.

      Even programs which are *very* carefully specified and written, and tested thoroughly, end up having bugs. These programs cost atleast one order of magnitude more than normal programs, and *still* have bugs.

      When the first pentiums had bugs that caused them to do floating-point-division wrong, it wasn't because they where sloppy, or because they where untested. They where tested 3 orders of magnitude more than most comercial software will ever be - and *still* launched buggy.

      Given that guaranteed bug-free is unattainable, the right question is what amount of quality-control and testing is worth it. Sometimes it's worth it to spend 10 times the amount in order to get rid of half of the most serious bugs, but often it's not.

      Hooray for software developers, who are convinced that "Shitty Enough." is a working motto. Good software developers are embarrassed when code they wrote generates bugs. Good software developers obsess over writing software, which means writing bug-free software (because the version with bugs isn't what you were trying to make). Understandable if you made your comments in defense of developers against laymen who think bug-free is simple or easy.

    87. Re:Too late to be asking.... by neyla · · Score: 1

      So what's your alternative ? Never launch ? Wait another decade with Mariner 1, and have the Russians own space ? Quality-control until you're broken and -never- -ever- ship anything ?

      What you don't get is that *everything* is a trade-off, there are no absolutes. It's always possible to do more testing, but that's only worth it if the benefits outweigh the drawbacks. The primary drawbacks is a) that it takes time and b) that it costs money.

      Both are very real and very much relevant.

      Being on the market at the right *time* and at the right *price* is critical in the real world. Your insistence on "they could test more" completely ignores this reality.

  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. Forever is a long time... by Anonymous Coward · · Score: 1

    Are they providing infinite amounts of cash in return for your infinite amounts of labor?

    1. Re:Forever is a long time... by xpax666 · · Score: 1

      Exactly. While I understand the analogies to things like the brakes on your car, it doesn't really stand up to much scrutiny. The car manufacturer gives you a warranty, and even brakes aren't covered under that unless it's a manufacturing defect. After the warranty is over, unless there was a recall notice, it's up to you. In the case of software, the simple fact of the matter is that NO software is bug-free. Even if it somehow magically were bug-free when delivered, changes to OS, configuration, etc can cause new bugs to be created simply by introducing situations that could not have been anticipated during the initial development. In the end, it would be financial suicide to fix bugs forever for free. A short period (a couple of months) after delivery should be good enough, or in a case where user acceptance testing is required, I'd go with no time at all. If they have these sort of onerous requirements, then it's up to them to figure it out during that process.

    2. Re:Forever is a long time... by Anonymous Coward · · Score: 0

      Exactly. While I understand the analogies to things like the brakes on your car, it doesn't really stand up to much scrutiny. The car manufacturer gives you a warranty, and even brakes aren't covered under that unless it's a manufacturing defect. After the warranty is over, unless there was a recall notice, it's up to you.

      car brakes suffer from wear&tear, in contrast any software bug is a manufacturing defect

  4. Depends on your business model... by Anonymous Coward · · Score: 0

    ..and if you want to make a profit. Supporting a life cycle of software that has no terminating date can get you into some trouble because you are spending man hours at a cost supporting it.

  5. 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.
    1. Re:Never. by Anonymous Coward · · Score: 1

      IANAL.

      Have a clear deliverable. Deliver it. After that, it is up to you.
      Making clear and explicit what encompasses the deliverable is a not insignificant amount of work, but it is almost always a good idea.

      After you've delivered you can work for goodwill if you believe that the goodwill will compensate you for the opportunity cost of spending your time on this.
      This really *can* work, but won't always work.

      If this is not encoded in your contract, time for a new contract for the new scope of work.

      As far as I can tell, the current industry convention is to charge more than the work should cost, to offer shit for support, and possibly to take the money and run.
      It sounds like you're doing better than that.

    2. Re:Never. by Kjella · · Score: 2

      You have your answer. You charge by the hour for support including bug fixes. Only slaves work for free.

      If there is nothing else in the contract then I would say yes, once the client has signed off on it any remaining bugs are billable. Of course then it's easy to dump a bug-ridden piece of shit on the customer, hope they do poor testing and cash in big both on finishing early and getting extra bug fixes. So I wouldn't say "never" is that common, most contracts I've seen have a guarantee period of 1-6 months where bugs are fixed free of charge. But they always make it clear this is a service and obviously it's baked into the price of the contract, it's just incentive to deliver a good product the first time and have as few bugs in the guarantee period as possible rather than have all the skeletons tumble out as the customer uses the product. Most business software requires you to have a support contract to get support too, COTS with free support is really an exception.

      --
      Live today, because you never know what tomorrow brings
    3. Re:Never. by Mr.+Underbridge · · Score: 2

      You have your answer. You charge by the hour for support including bug fixes. Only slaves work for free.

      It depends. Are you selling the product, or your work? If you're selling the product, you should support it, because if it's buggy, then the client didn't get what they paid for. If you're selling your work, you always charge by the hour no matter what.

      In reality, most arrangements of this type are sort of in between, which is why a service agreement is so important. Also, it may depend on how much the client is worth, and how egregious the bug was, as to whether you go above your legal liability.

    4. Re:Never. by Anonymous Coward · · Score: 1

      Strongly disagree, at least if you want to prosper.

      Best dev company I ever hired agreed to support bug fixes forever for free with a couple KEY caveats:
      1- You had to follow their development process (which tightly integrated the customer into a very detailed requirements process
      2- Bugs had to be bugs as documented in the approved requirements document
      3- The 'warranty' only covered tested configurations... so this was the realistic limit... if you tested on Windows 2000 Server, you warranty expired if/when you upgraded to 2003

      They spent 1/3 time building requirements, 1/3 time coding, and 1/3 time testing.

      Because they were willing to put their money where their mouth is, they got repeat business. The reason they still made a profit from that repeat business is because they had their process down pat, put their smartest coders on the toughest jobs, and were closely engaged (tried to put the coders with the client).
      Yes, our product had some bugs, but not enough to cripple them, and we were happy to hire them again.

      If you want to charge by the hour to fix your own crappy code, then why the hell would I hire you?

    5. Re:Never. by Anonymous Coward · · Score: 0

      Ahhhh, I see you know the Amdocs model.

    6. Re:Never. by sjames · · Score: 1

      Only slaves work for free.

      A slave at least gets minimal room and board.

    7. Re:Never. by Anonymous Coward · · Score: 0

      It depends upon the details of the type of software work. Each company can make their own policy. Few seem to be talkign about industry norms, though. Here they are:

      Traditionally, a one-year support package is built into the acquisition cost which includes documentation, Phone/Email (during business hours, next day) responses to questions on proper use/configuration/installation, and bug fixes. Some people do little less, some people do a little more.

      Most outfits offer some kind of mechanism for extended support (in-person, 24x7, 4-hour response time, 3-year support, etc).

  6. 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?".

    2. Re:3 Months by Jane+Q.+Public · · Score: 3, Interesting

      "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."

      You should have a specified "scope of work", describing the deliverable. If the situation changes to the extent that anything lies outside the original scope of work, it costs extra.

      I used to work for an engineering company, and that worked for them. Just be sure to specify your scope of work. Then actual bugs that lie inside the scope of work are your responsibility. Anything else is not.

    3. Re:3 Months by Anonymous Coward · · Score: 1

      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?".

      Spend some time on a tailoring forum, and you will hear **precisely** that complaint. Often. Especially if the client has availability issues such that months have passed between fittings.

    4. Re:3 Months by Anonymous Coward · · Score: 0

      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?".

      Have you ever bought a custom suit? Most well regarded tailors *will* provide free alterations for years after they deliver the suit.

    5. Re:3 Months by Anonymous Coward · · Score: 0

      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?".

      I would simply say "You should have given me this new process when we began work, if you wanted me to develop for it." No crystal ball? I don't have one either, pony up.

    6. Re:3 Months by MrAngryForNoReason · · Score: 1

      Spend some time on a tailoring forum, and you will hear **precisely** that complaint. Often. Especially if the client has availability issues such that months have passed between fittings.

      I'd be surprised if their terms don't specifically cover that. I know if you are ordering a made to measure wedding dress it is clearly specified what the agreed measurements are. It normally also includes specific language to cover situations where someone is having the dress made to a different size, so if the bride is planning on losing weight before the wedding measurements are agreed and set in writing. If they don't manage to lose the weight then the dressmaker is protected and can charge for a new dress or alterations.

    7. Re:3 Months by Anonymous Coward · · Score: 0

      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?".

      Have you ever bought a custom suit? Most well regarded tailors *will* provide free alterations for years after they deliver the suit.

      This includes chain stores, not just expensive mom & pop tailors.

      "Remember: each seam our tailors work on and that you pay for once, is guaranteed for free re-alterations, within the limitations of the garment, if you gain a few pounds or lose weight!"

  7. your client by Anonymous Coward · · Score: 0

    has an ID-10-T problem

    1. Re:your client by Anonymous Coward · · Score: 0

      PICNIC problem.

      Problem in chair, not in computer.

    2. Re:your client by DarwinSurvivor · · Score: 2

      I prefer PEBKAC.
      Problem Exists Between Keyboard and Chair.

    3. Re:your client by radiumsoup · · Score: 1

      my favorite was always "ES(T)O"... where the Equipment is Smarter (T)han the Operator

    4. Re:your client by Anonymous Coward · · Score: 0

      PEBKAC problem

      Problem Exists Between Keyboard And Chair.

    5. Re:your client by Midnight+Thunder · · Score: 1

      Also: Code 18 - issue is 18" from the screen.

      --
      Jumpstart the tartan drive.
    6. Re:your client by Anonymous Coward · · Score: 1

      CKI problem - Chair Keyboard Interface

  8. The client is always right by Wonko+the+Sane · · Score: 4, Insightful

    If they want lifetime support then price your services accordingly and offer that as a option. Chances are if you give them two quotes, one with your typical policy and another one priced for what they are asking for, they'll choose the one that makes the most sense.

    1. Re:The client is always right by Anonymous Coward · · Score: 1

      So estimate the lifetime of the company, and the number of working hours that the company might operate, and assume that the remaining life of the company will be dedicated to supporting that product (?). That one time fee oughtta get them to reconsider :).

    2. Re:The client is always right by Sunshinerat · · Score: 2

      I would provide x amount of time for warranty (say two months) and provide the option to buy into service (monthly fee) that covers feature and security fixes.
      The best part of a service model is that you keep contact with the customer and you can up-sell them to the next feature release.
      This model does not work as well for all custom work.

      For custom x months of warranty plus $x per hour for changes and fixes. Providing them with a lifetime support option is very unpredictable and may scare the customer away. They may plan on using the solution for 3 years where you are covering your ass when you need to fix it 20 years from now (current year equivalent: you need to keep that prehistoric server running to make minor changes in COBOL...) and account for that somehow. Be specific what lifetime warranty is when you go that route, sometimes it is just educating the client on expectations.

      --
      Load New Commander (Y/N)?
    3. Re:The client is always right by Altrag · · Score: 2

      No, they'll choose the one that's cheapest and expect you to fulfill the one that makes the most sense.

      Clients are asshats. Well ok not ALL of them, but a lot of them certainly are. I can't count the number of times I've gotten a call asking me to fix something immediately as if all I had to do was flip the "fix this bug" switch and had really just been holding out on them for some unknown reason.

    4. Re:The client is always right by turbidostato · · Score: 1

      "If they want lifetime support"

      The question was not about support, but bug fixing.

      Of course it's only stupid to suggest supporting software forever for free (i.e.: yes, I know this was delivered to work on Windows 95 but now I want it to work on Linux). But bugs are a different thing: you and I conveyed the software should do X, but it does Y instead.

    5. Re:The client is always right by Dahamma · · Score: 2

      What they expect doesn't really matter (as long as you are willing to lose them as a customer going forward).

      If you both sign a contract for given work at a given price, they are obligated to pay the agreed price and you are obligated to do the agreed work, no more, no less. Unless they can prove in court that you didn't fulfill the contract they're pretty much SOL.

      Which is really the answer to the article question - there is no "industry convention", the industry convention is to negotiate a contract that is acceptable to both parties, and if they want unlimited support you make sure they *pay* for it.

    6. Re:The client is always right by butlerm · · Score: 1

      The question was not about support, but bug fixing.

      For most mid-range and custom business software, fixes to anything but the most serious bugs (and often not even then) only come with a support contract. A support contract is typically both how you get bug fix releases and reasonable attention to the bugs that you would like to have fixed.

    7. Re:The client is always right by dkf · · Score: 1

      So estimate the lifetime of the company, and the number of working hours that the company might operate, and assume that the remaining life of the company will be dedicated to supporting that product (?).

      No, use an hourly rate plus incident fee. Tie them both to some independent inflation measure so you don't get messed over by external factors too much.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    8. Re:The client is always right by BeanThere · · Score: 1

      I've found that some clients are cheapskate asshats who think you're their slave and are highly demanding and bullying, and other clients are more reasonable and understand that your skills come at an hourly rate. Fortunately if you're a good programmer, even in this economy you aren't forced to take on all the 'bad' customers - I prefer to work with more reasonable customers.

  9. Your bugs, still their problem by ElectricSpit · · Score: 0

    I still think that even if it was your fault the bug exists, they should still pay you to fix it. I mean, every bug can't be your fault it is impossible to test every possible case and it's just part of the life cycle of software. Don't stop providing support as long as they pay!

  10. Re:Your bugs.. your problem by John+Courtland · · Score: 1

    You're kidding right?

    --
    Slashdot is proof that Sturgeon's Law applies to mankind.
  11. Re:Your bugs.. your problem by radiumsoup · · Score: 3, Insightful

    it's not always mistakes that require support - a lot of times, it's feature creep or moving buttons around. Clearly, that's not something the dev should do for free. But yeah, support should be spelled out as part of the dev agreement.

  12. 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.

  13. Get it in writting by greywire · · Score: 2

    Really thats the issue.. whatever support you were willing to offer should have been put in writing and agreed on before work began.

    The same sorts of things can happen during a project too. Get it all in writing. Clients love to change things as you go, and they'll do it until they break you if you don't tell them before hand they can't. IE, you give them say 3 mockups to choose from.. then once approved they can't come back at you and say thats all wrong we need the design changed. Same thing with the support. We all know you probably cant support the code forever without compensation, you have to tell them that or they will expect free support forever!

    --
    -- Senior Software Engineer, Attorney appearance services, locallawyerapp.com.
    1. Re:Get it in writting by Anonymous Coward · · Score: 0

      ...love to change things as you go

      Like Oracle?

    2. Re:Get it in writting by Dahamma · · Score: 1

      Exactly! And of course it's possible to allow them to come back to you and demand a design change or get support forever, just make sure you put it in the contract and bill them for any hours spent. For many businesses, that's not a liability, it's their main source of continuing *revenue*.

  14. The key word here is "Support Contract" by I+kan+Spl · · Score: 3, Insightful

    If you have a good enough support contract then the initial fee for doing the work is usually peanuts compared to the support.

    All of this needs to be in writing, as part of the initial contract or else you will have no fun doing support.

    --
    My UID is prime and so is this number: 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0.
  15. Depends on the industry by Stargoat · · Score: 2

    There's so many different software industries, you cannot just ask "how long?"

    For example, ATMs need to be supported for about 15 to 20 years. But a web hosting app? Maybe 5 to 7.

    Basically, if your clients are paying you, you support them. If you no longer want to support them, you better be damn sure you have a robust, tested, and thoroughly vetted (and preferably heavily used) replacement product.

    --
    Hoist Number One and Number Six.
  16. Refer to your original contract by DragonWriter · · Score: 1, Informative

    How Long Should Devs Support Software Written For Clients?

    As long as the clients have paid for, as specified in the terms of the development contract (except insofar as the developer has an interest -- e.g., in developing goodwill -- that outweighs the cost of the support, or applicable law -- e.g., general provisions governing warranty obligations that the contract did not modify, either because the language didn't address them or because the law doesn't allow contracts to modify them -- imposes additional obligations.)

  17. Just bug fixes? by Anonymous Coward · · Score: 1

    If that's all they want is for your company's work to be guaranteed, then why not?

    Software has gotten an easy ride in regards to quality and vendors backing up their work. Might as well stand out from the crowd. I mean if another type of product had software's reputation, I would never buy it. Also, that company would be out of business.

    Speaking of which, this something that's really hindering the medical software business. Folks are so used to software being buggy that their reluctant to adopt anything that can affect patient health.

  18. 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!

    1. Re:Be careful... by Jane+Q.+Public · · Score: 2

      I've been caught on that one before... and it was my fault.

      Those things need to be spelled out ahead of time, for a project of any size. If the customer's needs change, that won't be in your written scope of work, and you can point to it as proof.

      For small projects, I've been able to point to emails and say, "You didn't specify that anywhere in your instructions." For anything larger, put it in writing more formally.

      It can be something as simple as a "Project Description", written by you and sent to the client. If they want something that isn't in the description as you wrote it, then it's their job to change it and send it back... before you agree on payment.

  19. Re:Your bugs.. your problem by MrEricSir · · Score: 4, Funny

    Why do you think people have/had problems with MS? Because they charge you to fix them.

    Protip: If someone is charging you to use Windows Update, you're getting ripped off.

    --
    There's no -1 for "I don't get it."
  20. Cry about it by Anonymous Coward · · Score: 0

    What are they going to do, cry about how unfair it is that you won't work for free?

    People who want to abuse you always feel entitled to abuse you. It's their deity-given right, and how dare you question their rights.

    Unless they have a written contract or something else legally compelling you to do it, they have nothing.

    All that having been said, I find there is value in learning from my own mistakes, which is why I often look into claims of bugs or problems with the work that I have done. I generally put the foot down after 90 days though. I want to do good quality work, and if there is something quick and easy that I can do to improve past work, I'll do it. I get the benefit of realizing my mistake and not doing it again. However, I don't work for free and I try to set reasonable expectations with the client BEFORE taking on work to try and prevent disagreements before they occur. That's what contracts are for.

    1. Re:Cry about it by omnichad · · Score: 1

      They can still take you to court and call it breach of contract. If you have an agreement that says you'll produce software x, then they'll argue that means you'll produce software x flawlessly. Any flaw or bug or unaccounted-for behavior is a breach of contract in their eyes. Even if you win the case, that will cost you.

  21. 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.

  22. Repellent by Anonymous Coward · · Score: 1

    Send them a can of mosquito repellent and be done with them.

  23. Hmmm... by fuzzyfuzzyfungus · · Score: 2

    If only there were some sort of body of legal precedent that allowed two parties to write down the salient details of an agreement in such a fashion as to make it reasonably binding...

    Snark aside, the only 'right' answer to this question is the one that was agreed upon when the price was named. Longer support contract = more expensive. Shorter = cheaper. Option to pay per-hour or per-incident thereafter, and for how long thereafter, also preferably specified.

    Some people make a business of charging crazy money, backed by the assurance that they'll still be there to hold your hand in 20 years. Some people sell you a box for $20 and tell you that they hope it doesn't break your computer. Certain consumer protection laws on the low end aside, any support term is a valid offering, supposing that it is priced properly.

  24. Ok no problem by Sycraft-fu · · Score: 1

    Tell me what it is you do for a living? Because whatever it is, any problem that occurs with your work, ever, for the rest of time, I am going to expect you to fix without being paid.

    Don't like that? Then perhaps reconsider your attitude towards this.

    1. Re:Ok no problem by Ichijo · · Score: 1

      Your analogy doesn't work because software doesn't wear out like most things do.

      --
      Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
    2. Re:Ok no problem by Tridus · · Score: 4, Insightful

      That's one theory. But when someone decides to keep using the program on a new version of Windows and stuff changes, who gets to support that? Hell, I've seen Windows patches break stuff.

      Software does in fact tend to require ongoing maintenance from time to time, just like anything else.

      --
      -- "So they told me that using the download page to download something was not something they anticipated." - Bill Gates
    3. Re:Ok no problem by malkavian · · Score: 1

      Of course it does. It's programmed to fit on a particular machine with a particular OS/tools. These wear out. The media the software sits on degrades, and can occasionally corrupt.
      The APIs eventually change. All sorts of things happen, which is the software analog of 'wearing out'.
      I'd treat support as a standard warranty deal if nothing was agreed (i.e. it depends on what you paid for it; If I charged you £50k for a wordprocessor, I'd expect to be supporting it for some time; if I charged you £2k for a reasonably complex bit of software, you'd be lucky to get 1 year out of it). It all depends on what could reasonably be considered the 'lifetime' of a product.
      But, after that, any support, and they pay.

    4. Re:Ok no problem by alexborges · · Score: 1

      You have never, ever written any kind of software, have you?

      --
      NO SIG
    5. Re:Ok no problem by Ichijo · · Score: 1

      If your software doesn't work on a new version of Windows, it's either because (1) there was always a bug in your software which didn't manifest itself in the old version of Windows, or (2) something changed in the OS that requires changes in the software to work (for example, for security reasons), or (3) a bug in Windows.

      The first case is a bug that always existed in your software, so it doesn't fall under "ongoing maintenance." The second case is a new requirement ("make it work under the new version of Windows"), and new features don't qualify as "ongoing maintenance." The third case is also outside of your control.

      --
      Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
    6. Re:Ok no problem by Ichijo · · Score: 1

      It's programmed to fit on a particular machine with a particular OS/tools. These wear out.

      But not the software.

      The media the software sits on degrades, and can occasionally corrupt.

      But not the software.

      The APIs eventually change.

      If your customer wants you to make your software work with new APIs, then that's a new feature which they can be expected to pay for. It's not a bug in your software.

      --
      Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
    7. Re:Ok no problem by overbaud · · Score: 1

      Tell me what it is you do for a living?

      Pshycologist

      --
      Users... the only thing keeping 1st level support from being the bottom feeders.
    8. Re:Ok no problem by sqlrob · · Score: 3

      Figuring out which of those cases hold takes work. Work that may or may not be maintenance. How do you bill?

    9. Re:Ok no problem by Anonymous Coward · · Score: 0

      The software doesn't but the hardware it runs on does.

    10. Re:Ok no problem by Ichijo · · Score: 1

      I used to work in a tech support call center for a consumer electronics company. We offered free unlimited tech support on any product we sold for one year. Outside of that year, we only provided free support for faulty hardware.

      The way we achieved this when we didn't know at the start of the call whether it was a real hardware problem or a usage issue was to immediately bill for the call, if it was outside of the support period. Then if the issue turned out to be the fault of the product, we would issue a refund for the call.

      --
      Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
    11. Re:Ok no problem by Anonymous Coward · · Score: 0

      I work for Sears, we make Craftsman hand tools. They have a lifetime guarantee. If you ever have a problem in workmanship with the tool, bring it to any Sears and they will give you a new one no questions asked.

    12. Re:Ok no problem by pclminion · · Score: 1

      Software does "wear out," it just happens differently. All software contains defects. Most of these defects are discovered early on and fixed. Some very rarely triggered defects always remain. Always. Suppose there is a defect which only manifests itself once every seven years, on average. If the software is only used for two years before being replaced by something else, chances are low that this defect will manifest. If the software is used for twelve years, chances are high the defect will manifest.

      Use the software for a shorter period of time == fewer failures. Use it longer == more failures. This is not exactly analogous to a physical part wearing out, but there are similarities. Software can only "never wear out" if it's absolutely perfect, and that never happens.

    13. Re:Ok no problem by thegarbz · · Score: 1

      The second case is a new requirement ("make it work under the new version of Windows"), and new features don't qualify as "ongoing maintenance."

      Oh is it now? Are you going to explain that to my lawyer?

      I think the general gist of most of the comments on here is that it doesn't matter what your support contract is providing it is explicitly stated in very clear terms with very clear bounds. I fully agree that Microsoft breaking something in your code with a full system upgrade should not be covered, but not everyone may see it that way so it needs to be made clear from the onset.

    14. Re:Ok no problem by sjames · · Score: 1

      Perhaps the software was working around a bug in Windows. Then the bug in Windows is fixed and the software stops working.

      Arguably, a bug that doesn't manifest isn't a bug. For example, I have a magic box with an endless supply of gold inside. Alas, the gold hasn't manifested yet.

    15. Re:Ok no problem by Targon · · Score: 1

      Software DOES wear out, when three OS versions later your old code no longer works without some sort of update. There are a fair number of custom apps out there that were written for Windows XP that will not work without modification under Windows Vista, and Windows XP mode is NOT a good long term solution in many situations. What happens when Windows 9 comes out, and Windows XP mode is no longer supported?

      Even under Linux, or another UNIX-like OS, there does come a point where kernel and library changes will make older binaries not run, and a re-compile would be needed, possibly with some code updates to handle changes. Even with a new Linux install, you need to be aware of what libraries are needed by your apps, and in five years, what libraries are "standard" vs. needed for your apps will potentially make setting up a new system that runs older programs more of a challenge. This is the sort of issue where support by application vendors is important. At that point, you start to wonder about the responsibility of the developer(s) to provide support.

    16. Re:Ok no problem by Anonymous Coward · · Score: 0

      Exactly. If an App I built for XP doesn't run under Windows 8, the client shouldn't expect a free fix anymore than if they wanted to run the app in OSX or Linux.

    17. Re:Ok no problem by Anonymous Coward · · Score: 0

      I work for Sears, we make Craftsman hand tools.

      You make fuck-all.

      Many companies have manufactured Craftsman-branded tools for Sears over the years. Sears is not one of those companies.

    18. Re:Ok no problem by Anonymous Coward · · Score: 0

      So you also work for Oracle...!

    19. Re:Ok no problem by Zontar+The+Mindless · · Score: 1

      s/make/sell/

      But the part about the free lifetime replacement is true. They don't even ask for a receipt.

      --
      Il n'y a pas de Planet B.
  25. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    Uh-huh.

    But they also ground you on price in the first place so much so that there was not enough room in the budget for proper testing / debugging. And don't forget that they changed the specs three times during development.

    If a client wants software to be "BugFree" there's plenty of companies offering that level of service - IBM, WindRiver, etc.

    Good, Quick, Cheap - Pick Two.

  26. Re:Your bugs.. your problem by sideslash · · Score: 4, Insightful

    Not necessarily.

    Bespoke software (written for hire) that is owned by the customer should typically NOT have an expectation that the developer(s) would come back and fix bugs for free, especially for a time and materials work arrangement. Fixed bids can be different, but typically the customer is responsible to certify that it's "acceptable" on delivery and final payment, and after that point they're on their own (i.e. have to pay for further changes).

    Software like Microsoft's that is licensed or purchased does typically have an expectation of free bug fixes from customers, but unless it's in writing the customer should be prepared for the possibility that the company will refuse to fix it, particularly if it's old.

  27. Re:Your bugs.. your problem by Anrego · · Score: 3, Interesting

    No one would pay the cost to write something that's 100% bug free from square one. Instead, you defer the cost and risks via a support contract. Standard practice and works out for everyone.

    Generally three things should be decided before work has even begun:

    - initial cost of development
    - a warranty period
    - ongoing support agreement

  28. Support as long as you are paid for it by gweihir · · Score: 1

    Of course, clients can pay up-front for, say, 10 years of support. But they only get what they pay for, no matter the details.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  29. Re:Your bugs.. your problem by radiumsoup · · Score: 3, Interesting

    I charge people to run Windows Update for them, so I'm getting a kick, etc. ;)

  30. Re:Your bugs.. your problem by DarwinSurvivor · · Score: 1

    If they want perfect, bug free code, then their developement time better be in the hundreds of years. If they want bugs to be fixed that you didn't have time to fix during developement, then they better be ready to PAY you to keep working on it.

  31. Re:duuuuuuuuuurr by Anonymous Coward · · Score: 0
    "supported with bug fixes "

    Bugs = defects

    Bugs != regular matinence.

  32. 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.

    1. Re:After accpetance, it's pay-as-you-go by thebeige · · Score: 0

      Fuck I hate third party developers. I wish they would all stop blaming me!

    2. Re:After accpetance, it's pay-as-you-go by Anonymous Coward · · Score: 0

      This is probably the best way to go. You've not had a written contract that sets the proper boundaries up until now; tell them you're clarifying your company policies and give them a review period to accept the product as delivered (or submit bug fixes which are limited to things that are actually bug fixes). At the end of the review period and bug fix process, have them sign a product acceptance letter that notes that future support is to be charged on your regular work basis.

    3. Re:After accpetance, it's pay-as-you-go by hey! · · Score: 4, Interesting

      This guy has it right. Deadlines go both ways.

      I once had a client where the project manager handling our contract often sat on deliveries for a month or more before looking at them -- and here I am with a three man development team dedicated to this project. Finally we fly down install the production software and train the users. A week later the project manager is fired and nobody looks at the system for over two years until a new manager starts to procure a system and realizes that his predecessor already paid for one. Word gets to the board of directors, and then we get letter threatening.to sue us for not delivering the system.We have no way of proving to them that we flew a team down there and actually did the installation and training, because everybody we trained had subsequently left the organization. But we had the bills we submitted that were paid by the client, which is at least prima facie evidence we did the work.

      Now we had the source in our source code control system, but so much time had gone by that just getting all the stuff together needed to build and package the system would have been a pain (this is why you should be using maven, folks, which we weren't at the time). And there is no doubt the system was probably so riddled with bugs that getting it working would have taken much, much more work, but the client made it impossible for us to deliver a quality product. The project manager accepted deliveries with only cursory examination, and so late that it forced us to work on this product intermittently, dropping it and picking it up weeks later.

      The lesson is build client responsibilities and support limitations into the contract.

      Standing behind your work doesn't mean delivering unlimited support. It means delivering more than you promised. That starts by setting clear limits and conditions on what you are promising.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    4. Re:After accpetance, it's pay-as-you-go by Urza9814 · · Score: 1

      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.

      But remember that in that case the software is already created and paid for. So if they're not going to pay $x, but they will pay $x/2, you make more profit selling for $x/2 than not selling at all. But if you're doing custom software, if it's going to take you 100 hours and they only want to pay $200 for it, it's not worth your time. Support isn't paid for yet, so it's the same as custom software.

    5. Re:After accpetance, it's pay-as-you-go by olau · · Score: 1

      Agreed. You can always fix something for free if it turns out to be major blunder where the blame is clearly with you. But it's important to try to force the customer to do a proper acceptance test in a reasonable period of time.

  33. Re:Your bugs.. your problem by thatseattleguy · · Score: 3, Insightful

    I sure would not want to program for you. In 25 years of independent development, I only saw the bizarre belief you express from a single one client. I gave them two alternatives:

    (a) "After the initial acceptance period, we'll fix all bugs for free...but of course you need to pay my team for 5-man-weeks of testing and QA time so that we can both be assured it's perfect first", OR
    (b) "You'll pay us time and materials to fix any significant bugs you find, but we'll only charge you for 5-man-days of testing and QA time beforehand and you'll work with us to discover any others we missed as you use the software."

    Needless to say, not being stupid, they took option (b) and we probably only ended up charging them for a few minor fixes.

    A software bug is not "a mistake". It's an inevitable part of the process, one that can be mitigated by good design, good coding, good management, and good testing. But all of those things take time and money. There's no magic zero-cost shortcut to perfection in any non-trivial project.

  34. Really, It Depends by rueger · · Score: 1

    I'd say if you've made some obviously boneheaded mistake, something that you should have seen and fixed, then yeah, bite the bullet and fix it for them.

    On the other hand, if it's the kind of day to day stuff that comes under the heading of "maintenance" then charge them.

    Car analogy: Recall and repair of a manufacturing defect (Manufacturer pays) vs an oil change and brake relining (You pay).

    1. Re:Really, It Depends by White+Flame · · Score: 1

      The question is what do you choose to lock yourself into promising? Underpromise and overdeliver, so have the contract specify charges for doing work, but waive it if it's one of those "Yeah, this is really my dumb fault" moments.

  35. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    They give you an unrealistic dead line.
    bugs are to be expected.

  36. Kernel Panic: Penguins on the bus... by ae1294 · · Score: 1

    The EU tends to think 2 years for bugs... I think you should have really thought about this before writing the first line of code but hey it's not like this could end in a lawsuit or a reputation problem or anything...

    1. Re:Kernel Panic: Penguins on the bus... by Anonymous Coward · · Score: 1

      Any source for this?

      I know they have 2 year product warranties for consumers, but I'm not aware of any requirements for commercial contracts. There would be an implied suitability for purpose in the contract, but equally any professional in the industry would argue that bugs are part of a software project and they're not all programming mistakes. They can also be caused by mistakes or omissions in the spec or testing process.

      Any sane developer should always get the client to sign off on acceptance of the software, in which case they've accepted that it meets the spec and they've tested it.

    2. Re:Kernel Panic: Penguins on the bus... by ae1294 · · Score: 1

      Any source for this?

      Yes I have several...

    3. Re:Kernel Panic: Penguins on the bus... by Anonymous Coward · · Score: 2, Insightful

      I'm not the original AC.

      I also crap rainbows and piss liquid gold.

      If you're going to take the time to say you have sources you should probably post them.

    4. Re:Kernel Panic: Penguins on the bus... by ae1294 · · Score: 0

      I'm not the original AC.

      I also crap rainbows and piss liquid gold.

      If you're going to take the time to say you have sources you should probably post them.

      No not really.. that's what goggle is for you stupid son of a bitch. Your mother is a whore and all that...

    5. Re:Kernel Panic: Penguins on the bus... by angel'o'sphere · · Score: 1

      Depends on what kind of software you write.

      E.g. if you write a control software for a nuclear plant you are liable for 30 years.

      And I don't really get why you ask for sources: the law can be downloaded and googled for sure.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    6. Re:Kernel Panic: Penguins on the bus... by Anonymous Coward · · Score: 0

      That's only for consumers sales.

      The EU directive in question is 1999/44/EC. The full wording is contained here (open the word documtent and scroll to page 7) but the important bit is this: 'A two-year guarantee applies for the sale of all consumer goods everywhere in the EU. In some countries, this may be more, and some manufacturers also choose to offer a longer warranty period.'

      Google that quote :-)

    7. Re:Kernel Panic: Penguins on the bus... by Dogtanian · · Score: 1

      If you're going to take the time to say you have sources you should probably post them.

      No not really.. that's what goggle is for

      "Goggle" [sic] is for searching. It's the person making the claims' job to back them up (particularly if their sources are as easy to find as implied), not the other person's. Goggle, er *Google* makes that easier- nice for the person whose job it is to back up what they're saying :-)

      --
      "Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).
    8. Re:Kernel Panic: Penguins on the bus... by ae1294 · · Score: 1

      This is slashdot... Making wild claims with no proof or citation is our god given right handed down by the Admins to the faithful. No one questions it until it goes against the groupthink that is so prevalent here. The point of my trolling was to highlight how fucking pathetic everyone is and how slashdot is no different from a bible study site. I see so many 5+ informative posts that are flat out wrong with -1 off-topic correct information being ignored. People on here think they are smarter than normal people but the truth is they are not. In fact people here are probably less intelligent overall than an average person on the street. Just because you are good at one thing does not make you special and smart. It just makes you 'special'.

  37. If they've got the source, they don't need you. by Medievalist · · Score: 1

    Give them a copy of the source code, and if they don't like what you charge for support, they can hire somebody else to do it.

    Of course if they come back later and want you to fix whatever their el cheapo programmer did to your code, they're going to have to pay extra. ;)

  38. Service Contract by mauriceh · · Score: 1

    Offer them a service contract.

    --
    Maurice W. Hilarius Voice: (778) 347-9907
  39. Staff vs. Contract by Shamanin · · Score: 1

    If you want support for any product you have to pay for it; either by contract agreement (low risk to business), pay as you go (low risk to contractor), or having someone on staff to maintain it.

    --
    come on fhqwhgads
  40. Short answer: until the contract expires. by Nadaka · · Score: 1

    Long answer: as long as they are willing to pay you at a competitive rate.

  41. Maintenance contract by Anonymous Coward · · Score: 0

    For websites, we offer a maintenance contract that covers a few hours each month, to be used for bug fixes or upgrades. Unused hours also "roll over" into the next months, and we use those for small feature upgrades.

  42. Project Management 101 by Anonymous Coward · · Score: 0

    Should have all been in the project charter.

  43. You sound reasonable by medv4380 · · Score: 1

    No one in their right mind should support "forever", and any client who is foolish enough to demand it can go elsewhere. Anyone who says "yes" to those terms will be bankrupt by the idiot clients who demand that service. The fools who want that service will find that they have software that the vendor no longer exists to torment.

  44. What Type of Software is important by Anonymous Coward · · Score: 0

    You should sell support contracts along with your software

  45. Two months is too short by Anonymous Coward · · Score: 0

    Having been a developer for over 30 years. Unless the application is downright trivial in nature, I believe that two months is much too short a time frame to provide bug fixes. It should be at least 6 months. Now to be clear: these are bugs (i.e. things that you didn't do correctly), not enhancements or improvements to the application. Some complex applications don't exhibit their underlying problems (bugs) until much later or when they are under significant load (which can take a while)

    As others have pointed out, you REALLY should have agreed on this up front and even provided a support contract that makes you money while providing the customer with support for the application for several years at least. You can't work for free, but you can't overtly charge for your mistakes either. A service contract protects both entities in the relationship.

  46. Define "bug" by JSBiff · · Score: 1

    So, what if the customer upgrades some piece of software in the environment that is a dependency of your software - a jvm, or .net runtime, or a library, or a database engine, or the operating system or webserver. Something breaks. It breaks not because of any mistake you made, but because something in the dependency changed. Maybe a bug was introduced into the dependency, or a deprecated function or feature was removed.

    Should you be expected to update the code to deal with the new version of the dependency, for free? A lot of "bugs" that show up after 2 or 3 months fall into this category.

    What if the "bug" exists because of a demand made by the client during development, and you even tried to warn them that this was a mistake and would lead to problems, but they insisted, so you gave them what they demanded, not what they really needed. Then, a year later, they finally come to their senses and want it "fixed" - should you be expected to do that work for free?

    1. Re:Define "bug" by ganjadude · · Score: 3, Interesting

      This happened for a company I once worked for. Microsoft released a windows update to .net back around 2010 that totally bricked our, DOD certified, mission critical systems. (mostly medical, not military) If a backup of the database was run after this .net update, the users would not be able to login to the system. This was accross the board, affected every single system that is out there (10s of thousands)

      nothing that we did was wrong, simply an update of an outside, yet needed (well, not really but you know what I mean) took our entire dev team 3 days to make a fix, thankfully only a few of our major clients were affected.

      point being, unless you code everything yourself from binary, you can not depend on no bug ever creeping into play

      --
      have you seen my sig? there are many others like it but none that are the same
    2. Re:Define "bug" by overbaud · · Score: 2

      So what your saying is the customer failed to roll out changes to a test environment before releasing to production and got burned. For mission critical systems no less, sound like someone needs to be fired, maybe even a whole team. It wasn't your bug and so your entitled to bill for fixing it, so in answer to the slashdot question - yes bill them for bugs.

      --
      Users... the only thing keeping 1st level support from being the bottom feeders.
    3. Re:Define "bug" by ganjadude · · Score: 2

      the major clients all have test environments, and there were only a few actually infected systems due to the fact that we tested it and sent a blast out, but the point is still that to the customers who do autoupdates (dentists, lawyers, other "low level" clients) they were hosed for a few days because of an issue that had nothing to do with us. I get your point, and you are correct, but the point I was making was that things outside of a company can cause issues for software, test envionment or not.

      --
      have you seen my sig? there are many others like it but none that are the same
    4. Re:Define "bug" by shutdown+-p+now · · Score: 1

      Out of curiosity, what caused the incompatibility? Was it some API change, or runtime change (I recall there was one in 3.5 SP1 that caused a lot of grief), or something else?

    5. Re:Define "bug" by ganjadude · · Score: 1

      to be honest I am not a developer so I dont recall the exact issue, But it was an issue that caused mysql to get hosed, which is one of the database options for our back end, if any other mysql admins can recall that period in time they might be able to shed a little more light on the situation

      --
      have you seen my sig? there are many others like it but none that are the same
  47. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0, Interesting

    Little bit different - YOU charge, microsoft isn't. They are paying you to read the manual so that you know what button to press, and to press it. They don't want to know about it.

    If you want a car analogy, this would be like paying a mechanic just to check your oil level, because you never could be bothered to find out how.

  48. Simplest formula EVER. by Anonymous Coward · · Score: 0

    Ditch idiot customers by charging them exorbitant rates REGARDLESS of the demands.
    You will never be able to educate the idiot to your benefit.
    And idiot does not mean ignorant - it's a fine line but idiots don't learn or listen.
    I stay very busy with good customers who respect me, listen to my advice and purchase my products.

  49. 6 months, out of courtesy by Bizzeh · · Score: 0

    6 months, out of courtesy. but really, your not required to give any sort of ongoing support unless its in some sort of written contract in place stating how much you will do for free, and for how long, and how much everything else will cost the client. its usually best to aim for a £100/hr for software dev and set your self a minimum amount that you would be willing to work for.

  50. Re:Your bugs.. your problem by Ichijo · · Score: 1

    A software bug is not "a mistake". It's an inevitable part of the process...

    Why can't it be both?

    --
    Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
  51. You can always... by Anonymous Coward · · Score: 0

    ...release your clients' velociraptors if they make you fix their bugs for free.

    1. Re:You can always... by philip.paradis · · Score: 1

      Apparently your client didn't say the magic word.

      --
      Write failed: Broken pipe
  52. Re:duuuuuuuuuurr by Nadaka · · Score: 1

    >90% of "bugs" are features, conditions and behaviors not covered by the systems design.

  53. Industry convention by countach · · Score: 1

    Industry convention, by which I mean what companies like IBM and their ilk do to customers, is they deliver crap to their customers then charge them an arm and a leg to fix it. I don't know that industry convention is particularly helpful when you're a small time guy trying to earn a living.

    Like others have said, you should agree to a sign off period, but if you want to make your customers happy, you might consider fixing the worst most serious cases of bugs for free for a lot longer. But you would restrict it to really blatant bugs.

  54. It's called a Service Contract. by Anonymous Coward · · Score: 0

    If maintenance and updates aren't clearly spelled out in the original contract, if the client wants work done outside the scope of that contract, then it's time for a new contract that specifies service provider responsibilities and client remuneration in exacting detail.

    On the one hand there's "if it's worth doing it's worth doing right," and on the other hand it's work for hire. If you're not getting paid - if you haven't already been paid - for the work in question, then negotiate. Don't do it gratis.

  55. Re:Your bugs.. your problem by thatseattleguy · · Score: 1

    For certain definitions of the the term, sure, it's both; for others, not.

    "Mistake" was put in quotes in what I wrote because of the original poster's implication was that all bugs were things completely avoidable, serious failures that were something the programmer should rectify for free and that not doing for a customer so was immoral/improper - like mis-assembled car that should have its manufacturing defect(s) covered under warranty. Custom-written software isn't in the same category, IMHO. If you want perfection, you have to pay for testing to perfection - not something most clients are willing (understandably) to do.

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

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

  57. Bugs must be fixed by Parker+Lewis · · Score: 1

    Well, if you have a proper Quality Assurance in parallel with your coding (but real QA, not only monkeys checking UI), the amount of bugs will be minimized. So, in the contract, I always specify: clear bugs will be fixed. Any issue that is more to feature request, will be cost estimated.

  58. Depends... by Nethemas+the+Great · · Score: 1

    There's no easy answer to what is "typical" because so many variables exist, especially with custom software. A common model for non-custom work is an annual maintenance/assurance contract. Client's buy the software, and get one year maintenance. After that they pay {x} amount each year to renew that contract. During the life of the contract the client is eligible for support and product updates.

    --
    Two of my imaginary friends reproduced once ... with negative results.
  59. mandatory car analogy by LinuxRulz · · Score: 1

    supporting software indefinitely is like buying a car and asking for infinite replacement of parts forever.

    But I do agree on a small "warranty" period, which may range from a few months to a year, just so that most bugs gets corrected but after that it's "mechanic billed by the hour".

  60. Windows Updates is free. Just like Windows by Anonymous Coward · · Score: 0

    In fact, I believe more than half of world population doesn't anything for all the software they use, no matter where it comes from. If you are among these software giants that can afford to have so many non-paying clients, and write it off as "marketing costs", good for you. But most of us aren't quite there, and we charge by the hour.

  61. Latent Defects by GumphMaster · · Score: 3

    For the large contracts I have been part of the contractual arrangements typically include a warranty period of 12 months for latent defects, that is things that are not functioning as agreed in the specification and could not reasonably have been expected to be found during the agreed customer acceptance testing (the equivalent of a pre-purchase inspection for a tangible good). For example; the software is specified to handle any Standard XYZ message, a wide range of messages were tested and the software accepted, but an unforeseen, legitimate real-world message breaks the live system. Everything else involves a fee to change the contract, which includes the specifications, and do the work. They hire people to be bloody-minded about what creeps into the "latent defect" category. For high risk projects they will take out insurance against the possibility of latent defects (and charge the customer indirectly).

    --
    Patent litigation: A doctrine of Mutually Assured Destruction... in which everyone seems willing to push the button
  62. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    Because they didn't pay enough to have it written correctly the first time.

  63. A useful car analogy by gstrickler · · Score: 1

    Some people have tried car analogies that don't work. Here's one that does.

    Car manufacturers cover certain SAFETY related defects indefinitely because the govt requires it (or maybe because they believe it's cheaper to fix than be sued). However, they generally only cover manufacturing defects for the duration of the warranty. They don't "fix" the car when environments and specifications change. e.g. Cars designed for leaded fuel weren't retrofitted to use unleaded fuel (although high octane unleaded fuel would usually work), and the manufacturer isn't going to update your car because a tire manufacturer stops making tires in the specified size. These things are the responsibility of the buyer.

    Same concept applies to most other products, why should software be any different?

    It shouldn't. First, have a contract the specifies the requirements, and specifies a length of time during which you'll offer free support for bug fixes or failure to meet the specifications (even if they signed off on it since sometimes it's not practical to test all specifications on delivery). Changes to specifications, including compatibility with other software/systems, and bug fixes after that term are chargeable items. For chargeable items, the developer (company, not necessarily the individual programmer) may at his discretion choose not to charge, but it's entirely up to the developer. For trivial fixes, it's often more trouble to create and handle an invoice so you might choose not to charge, and that fosters good customer relations. For larger issues, you have to consider more factors, just like a vendor of any other type of product.

    --
    make imaginary.friends COUNT=100 VISIBLE=false
  64. Re:Your bugs.. your problem by alexborges · · Score: 1

    It can. Usually isnt.

    The only software that has absolutely no bugs from the rollout is code more than 20 years old that hasnt been touched in the last 10 and does exactly what it did back then.... and even then, sometimes the unexpected can come up way in the future.

    You have no idea of how software is made, do you?

    --
    NO SIG
  65. Re:Your bugs.. your problem by CanHasDIY · · Score: 0

    If they want bugs to be fixed that you didn't have time to fix during developement, then they better be ready to PAY you to keep working on it.

    Read:

    "You want us to program some software for you? No problem. Oh, you wanted software that actually works? That costs extra."

    Seriously, if you're knowingly writing bad code just so you can charge people to fix what you should have done right in the first place, you won't stay in business long.

    --
    An enigma, wrapped in a riddle, shrouded in bacon and cheese
  66. NDA Required Here by theshowmecanuck · · Score: 1

    If the OP actually owns the code and he/she gives the client a copy of the source code, then they also need to have the client sign a Non Disclosure Agreement or the OP could end up in a worse situation. It should state the client can't disclose or sell the code and use it only for internal purposes, etc. etc. etc. Imagine a system where all the code you spent time and money to develop is given away and anyone who wants it can use it. You'd be out of business. And you wouldn't be able to pay off the bills you incurred while not making money while writing the initial code. But very, very often the code ends up being owned by the people who commissioned it to be written. This would then invalidate your point entirely.

    --
    -- I ignore anonymous replies to my comments and postings.
    1. Re:NDA Required Here by Medievalist · · Score: 1

      Imagine a system where all the code you spent time and money to develop is given away and anyone who wants it can use it. You'd be out of business.

      Linus Torvalds begs to differ!

      I've given source code away whenever possible for the last 40 years or so. It's never been a problem, ever. I get a fair wage for my work, just like a bricklayer or garbage man. I'm an artisan, not a bishop.

      Those of my employers who did not allow me to give away sources are all doing far worse in the marketplace than my employers who were willing to share.

  67. Re:Your bugs.. your problem by Midnight+Thunder · · Score: 1

    Indeed, though a service level agreement is always worth having. That way everyone knows ahead of time where they stand and whether to end the relationship early if the terms are unacceptable to either party.

    Always get the user to end user testing and to sign off on it. If they refuse to do so, then you should indicate that you aren't liable for bugs that could have been caught. Anything caught outside of the testing period is subject to the SLA.

    As to source, big companies sometimes insist on either having the source or keeping it in escrow, in case you disappear, but having infinite life-time support for free is excessive. Is there anything in life that comes with type of deal?

    Note, if a contractor fixes my roof then I have a guarantee against defects for 5 years. If it runs into problems that are due to their workmanship, then they have to take care of it.

    --
    Jumpstart the tartan drive.
  68. honda doesn't sell me a custom car by Chirs · · Score: 1

    So they can test to reasonable levels of assurance.

    For custom software work, that level of testing is generally too expensive to give unlimited guarantees.

  69. Re:Your bugs.. your problem by Midnight+Thunder · · Score: 1

    Uh-huh.

    But they also ground you on price in the first place so much so that there was not enough room in the budget for proper testing / debugging. And don't forget that they changed the specs three times during development.

    If a client wants software to be "BugFree" there's plenty of companies offering that level of service - IBM, WindRiver, etc.

    Good, Quick, Cheap - Pick Two.

    Even then there is no bug free software. What it is free from are bugs that testing would have discovered. Anything after is subject to the SLA (service level agreement)

    --
    Jumpstart the tartan drive.
  70. Why do you have bugs? by under_score · · Score: 1

    Seriously. If you aren't using ATDD (Acceptance Test Driven Development) and TDD (Test Driven Development), then you have no excuses. Support them forever. I consider it unprofessional to release software with any known bugs and I have been doing this successfully for 10+ years. ATDD proves to the client that you have built what they want and that it functions as they expect (this is your contract) and TDD proves to you yourself that the internal quality of the code will hold up as well (very low rates of unexpected problems). Defects are preventable.

    Think of this like surgery: if you are being rushed into the OR, you don't yell at the surgeons and nurses to NOT wash their hands and just dig into you. And even if you did, they would ignore you. ATDD and TDD are a lot like washing your hands before surgery. If you don't do it, don't be surprised at the consequences... it can be fatal.

    1. Re:Why do you have bugs? by Anonymous Coward · · Score: 0

      These things will help greatly (if done correctly, and that is a big IF) but they don't prevent any and all bugs. Not with any moderately complex program at least.

    2. Re:Why do you have bugs? by Anonymous Coward · · Score: 1

      Chill, man.

    3. Re:Why do you have bugs? by Frankie70 · · Score: 1

      I guess you write only trivial programs.

    4. Re:Why do you have bugs? by under_score · · Score: 1

      Hardly trivial. I've worked in large systems in finance with billions of dollars of transactions being processed daily. Numerous times I have made QA redundant for anything but a pro-forma checkbox: no defects found. Now, I will admit that for the last five years I haven't been actively coding as a profession, but I still consider it critical to let people know that zero defects is possible.

      Like I said; anything less than zero known defects is unprofessional. You deserve to support your crap if you can't build good software.

  71. Pull an Adobe by CanHasDIY · · Score: 1

    Make some minor/major tweaks, repackage it as Version 2.0 or whatever, and tell them that the old version is no longer supported. Then you can negotiate a service contract for the "new" software.


    Hey, it works for the big dogs...

    --
    An enigma, wrapped in a riddle, shrouded in bacon and cheese
  72. 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.
  73. If the contract doesn't specify.... by Anonymous Coward · · Score: 0

    Then there is no obligation to do so. Anything after initial testing is either out of the goodness of your heart or a change request outside the scope of the original contract. If you didn't specify an initial testing period during which defects would be fixed at no additional cost in the contract (or verbal negotiations which are nearly as good, for your purposes) then my understanding is the default would be your state's default under fitness for purpose, or similar. These tend to not be favorable to the buyer.

  74. support contract or fire the client by xpatch · · Score: 0

    Get a lawyer to do a support contract. Secondly fire the client they will never be happy.

  75. Re:Your bugs.. your problem by Ichijo · · Score: 2

    The effect of testing has diminishing returns on software quality. At some point it will become cheaper to fix bugs after the software is released than to test to perfection. Some customers demand perfection the first time, while others don't. For example, avionics software tends to be biased toward the "test to perfection" side, while general applications can usually be fixed after deployment at low cost.

    --
    Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
  76. Something I quickly came to realise... by Anonymous Coward · · Score: 0

    I started programming professionally when I was still at uni. My first two projects were defence support contracts for applications the company had supplied a number of years ago written in VBscript. Horrible architecture, but the things worked ok and they were reasonably well documented.

    Then came the horror of the client I will refer to only as SS (appropriate). Shifting goalposts (I'm talking daily, it made keeping a good SRS impossible), uncooperative people who had written the original application, lack of experience with C# and a lack of project management experience on my part meant it was an abject disaster. Client was miffed, I was disheartened, boss was on the warpath with the client for harassment, all because she expected something for nothing and that we insisted on upping the price when she changed her mind from wanting Joomla, back to wanting the original custom code (which was a mess, I found I could get into the admin panel without logging in and a glitch in the credit card gateway that meant a massive disclosure hole) and then adding a bunch of requirements that made no sense, back to wanting a Joomla plugin. Horrible, horrible mess.

    What I learned from that is that clients are stupid, and should be mostly removed from a fixed-term project except when signing off on it. Yes, bugs can be your fault, but, as has already been mentioned, clients can have the stupidest idea as to what constitutes a bug (much like the IT support arm I also worked in never let clients set their own priority, that was left to our dispatcher). A support contract that details exactly what your obligations to the client are, the channels through which they can raise requests and having a good paper trail are definitely your most important tools here. Process is a very useful tool for protecting yourself, learn how to use it properly

  77. Re:Your bugs.. your problem by TENTH+SHOW+JAM · · Score: 1

    Yes. Provided they are running it on the OS and version you specify. With the supporting software versions you specify. On the chipsets you specify.

    Any changes or if they fail to install appropriate security patches and all bets are off.

    By the way. Only support defects and not Requests for Change. (They can want a new feature enough to pay for it.)

    --
    A sig is placed here
    To display how futile
    English Haiku is
  78. Re:duuuuuuuuuurr by Midnight+Thunder · · Score: 1

    Even outside of code anything instruction that can be misinterpreted will probably be, due to assumption of the person interpreting the instructions. In writing software we do our best to avoid misinterpretation, but given the amount of instructions, there is bound to be things that don't work well together.

    Other domains where you run into similar issues and limitations: laws and medicine.

    --
    Jumpstart the tartan drive.
  79. Re:Your bugs.. your problem by niftymitch · · Score: 2

    They give you an unrealistic dead line.
    bugs are to be expected.

    But what is unreasonable?
    One metric for a largish task is documented in TeX.

    D. Knuth commented that the test code took ten times as much work as the code itself. Even so bugs were found.

    This tells me that most bids are 1/10 the cost of bug free code.

    --
    Truth is stranger than fiction, but it is because Fiction is obliged to stick to possibilities; Truth isn't. Mark Twain.
  80. Depends on the contract by Anonymous Coward · · Score: 0

    "My client says any software/website we develop for them should be supported with bug fixes forever, with no further compensation."

    If the client hired you as "work for hire", they get what they get once the contract is complete. If they want further support, they'll have to pay for it.

    Maybe you should ask the client to do all kinds of work for free.

  81. OhHo by Anonymous Coward · · Score: 0

    "Seriously, if you're knowingly writing bad code just so you can charge people to fix what you should have done right in the first place, you won't stay in business long"

    There is no way any non-trivial (i.e. real-world) software can be delivered completely bug-free. Maybe not even the specification is complete and bug-free. Operating systems and other interfaces change.
    So a developer of bespoke software should shoulder all that risk ? That is not reasonable. Even Microsoft, who make billions every quarter in profits will EOL their product. You are saying they should fix problems for ever. Nobody is doing that.

  82. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    I beg to differ. Microsoft always seems to be hiring.

  83. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

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

    Bugs? There are no bugs! only undocumented features.

  84. Maintenance by EmperorOfCanada · · Score: 4, Interesting

    This is what a maintenance contract is about. Generally there are three parts to a maintenance contract. One is that you will charge a set fee for any changes or new work (potentially with a yearly retainer to cover your costs in being ready to do this work) and the other part is that for every year that they pay a fee you will fix any bugs. Often this second part has a year or so included with the initial work.

    The first part of the contract might also cover preventative maintenance such as checking to see that the hardware is functioning, backups are being done, and that nobody is messing with the software.

    Where you really need to cover your ass is in two areas. One is their losses. You can't be responsible for them. If the system is down for 30 minutes during a critical sales pitch they could argue that you just cost them a billion dollars. The other is if they ruin things somehow. If they have someone else mess with the system or they don't do backups, or use sub standard hardware then you need to be able to wash your hands.

    The third critical part is the breakup clauses. If they become a pain in the ass or your company just morphs into something where the old clients are a distraction you need to be able to walk away. The best way (and something they should insist upon) is the source and documentation they would need for them to be able to hand the contract over to someone new in a second. Personally I would refuse to deal with a company that didn't provide this.

    But most of all I would never in a million years commit myself to a company like that. Not just because it would be stupid but also any company that would insist on something so douchey is going to be the biggest bunch of scum to deal with. I could see them insisting that new work and upgrades come under the purview of fixes. "Oh we have moved to a new OS and your software broke." I tried accessing it with an iPad 9 but they don't use HTML anymore so you need to fix that." Then knowing they have you over a barrel they would say, "If you just make it compatible with our new database, OS, and mobile devices we will let you out of the contract in 2 years."

    Lastly maintenance is where many companies make the big bucks. I witnessed where a letter was capitalized and the company billed $1,200. This was in a scripted environment and implemented by a single developer with no complicated QA process. He just logged in directly and VI'd the script.

  85. Raise the ultimatum immediately, involve your CEO by Anonymous Coward · · Score: 0

    Presumably since you ask that means one of two things: either a) you are still at the negotiation stage before any work is done, or b) the main work is finished and the issue just arose.

    If you are still at the negotiation stage, then take the hint from the other highly experienced people writing here: "lifetime support" will actually mean, literally, your lifetime. Do not agree to it. If they are concerned about bugs in the final product, then sit down and draft a "Working State Spec" that defines exactly when the software is 'working'. This must be TESTABLE.

    If b) is the case, then you are in a difficult situation. One that probably calls for top management in your company to know all about it. What you SHOULD imo do is: consult lawyers, then go to your customer (don't mention the lawyers yet) and say that you can offer X months for free and then hourly paid support, and if they are unhappy about that they will have to sue you.

    I'm pretty sure there's precedent about IT contract work that sets out exactly what it means when a product is "completed". You will basically need to bring it to that state (ask your lawyers what that is) and suck up the cost of it yourself. But at least you will not be stuck with a legally binding agreement saying that you will support it forever.

  86. Re:Your bugs.. your problem by jhoegl · · Score: 1

    I am going to go with option c...
    find a better software company.
    I understand that mistakes happen, I have seen it and done it.
    But what I dont understand is the inability for a software company to fix a functional bug.
    This means, an issue that is in the system, when certain things happen.
    As far as your testing analogy, that is on the software company, what they charge should reflect that. That is not the job of the consumer to consider

  87. Sales Opportunity, not a problem! by Midnight_Falcon · · Score: 3, Interesting

    I have to chime in here because I feel like many of the comments have missed what this is in .."real world" programming: A Sales Opportunity.

    It is inevitable that after a while, your client is going to want new features. If you offer a low rate for bug fixes, or offer a certain # of hours on bug fixes after the original term, you'll keep the channels of communications open with the client; rather than them forgetting about you.

    So, you can act altruistic and offer some amount of free bug fixes..but use the requests for those bug fixes as an opportunity to suggest new functionality/features, or make changes outside of that realm that translate to billable work.

    If you have a proper consulting agreement, any changes outside of bug fixes will already be in scope as a billable activity, so you should be able to bill for that time accordingly.

    I find that keeping lines of communications open with clients after projects has done causes new projects to happen and is a great rainmaker. I think what seems like their thick-headedness is actually an opportunity for you to get more business out of them.

    1. Re:Sales Opportunity, not a problem! by djKing · · Score: 1

      Bingo. Back in the day I did T&M at a reasonably high rate given I was just out of school, but once I was done bug fixes were free as long as I was working on another project there. We should have had a formal contract, but we didn't.

      --
      Free as in "the Truth shall set you..."
    2. Re:Sales Opportunity, not a problem! by the+eric+conspiracy · · Score: 1

      That's if you work for a sane company.

      The way it goes with the companies I've worked for is the salesmen are trying to ingratiate themselves with (and get hired by) their customers. To do this they promise new features for free along with the (obviously) free bug fixes. To the management the new features are presented as contractually owed work due to ambiguous wording in the contract, written by you guessed it the sales department. Since sales has no technical competence you could drive a truck through the loopholes in the statement of work.

      Eventually this causes my employer to go bankrupt because they are getting no compensation for the work they are doing.

    3. Re:Sales Opportunity, not a problem! by Anonymous Coward · · Score: 0

      This client already expects him to support one project for free, forever. I'm not sure that's the kind of client he wants to do more business with. You don't want clients who are willing to forgo any chance of a sustainable business relationship with you by sucking you dry, unless your strategy is to suck them dry first.

    4. Re:Sales Opportunity, not a problem! by Anonymous Coward · · Score: 0

      So, you can act altruistic and offer some amount of free bug fixes..but use the requests for those bug fixes as an opportunity to suggest new functionality/features, or make changes outside of that realm that translate to billable work.

      Very good point, BUT, you have to be very careful here. As another posted has mentioned, many clients have very inventive ways of turning a new "feature" into a "bug". If you're offering free (or nearly free) *bug* fixes, you can be assured that the client will try try some method of requesting that new "feature" under the guise of it being a "bug", and so should be implemented free of charge.

      Unless you have a *very* good relationship with your client, you can easily sour a relationship here when you stand up for yourself and get into an argument with the client over whether their newly requested change is in fact a bug or a feature.

    5. Re:Sales Opportunity, not a problem! by Anonymous Coward · · Score: 0

      This is exactly right. You now have the opportunity to create 2 (or more) contracts: maintenance/support & upgrades
      Be specific on what is included in maintenance (typically, bugs that cause the system not work as agreed in the specs). I would NOT agree to do this for free. If the client won't pay for this, walk. Create this contract immediately and give them a (short) deadline for when you'll stop working for free.
      Then, down the road, inevitably there will be changes needed for any of a 1000 reasons, and you can either do those time & materials or fixed bid whichever you and your client prefer.
      The key is to 1) see this as an opportunity, 2) be very clear and firm on what is included in maintenance/support. Again, I'd strongly suggest to not work for free. If the client won't pay for your time & expertise now, you can't expect much from them in the future.

  88. 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?

    1. Re:Yeah, But That's Not Really True by hawguy · · Score: 1

      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.

      Well you don't *have* to, but if you can be certain that your string fields hold only ASCII data, it makes things easier since then you don't need to keep track of how long each string is. I've written more than one app where a null could be a "normal" part of a database text field. Just don't try to use the str*() functions unless you're sure that you're dealing with null terminated strings (and maybe not even then for destructive functions like strcpy(), the strn*() functions are much safer)), that was a lesson quickly learned.

    2. Re:Yeah, But That's Not Really True by Anonymous Coward · · Score: 0

      Where'd you work? I'd kind of like to get in on that racket after making the mistake of taking a full time position for people that had contractors who screwed everything so badly it'll tentatively take three years longer to fix than to rewrite from scratch unless there are massive breakthroughs in refactoring and static javascript analysis...

    3. Re:Yeah, But That's Not Really True by Anonymous Coward · · Score: 0

      C strings, so called (since there isn't any native string data type in C) are by convention null terminated character arrays. It's not just the str* functions. It's also printf functions. Two problematic snippets:

      while (c = getchar() && i < ARRAYSIZE(s)) {
              s[i++] = c;
      }
      printf("%s\n", s);

      and something that doesn't require you to construct your own strings:

      char s[4];
      sprintf(s, "abcd");

  89. It all depends on your initial contract by brokeninside · · Score: 1

    My current employer writes its contracts so that clients who pay an annual support fee get bug fixes for free but they still have to pay for implementation costs for upgrading to the version with the bug fix. It's the software that's free, not the hours it takes us to get them upgraded. That's one way to do things.

    Another way is that software is delivered as is and the support contracts specifies the rate at which bugfixes will be delivered if bugs are reported.

    Another way is that some bug fixes will be free because of their magnitude but that others will be in future releases of the software that must be purchased.

    Basically there is more than one way to do it. But, like other commenters have noted, if you've already sold the software and are now negotiating how to handle bug fixes, it may be too late. These sorts of things should be negotiated up front as part of the initial contract. If you didn't, then you probably need a competent IP lawyer with experience in the IT sector to tell you the relevant case law and commercial code concerning liability for software with defects.

  90. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    In other words, it's the typical balance between speed (of development)/cost/quality. Pick two.

    You want it fast and cheap? You'll get bugs. You want quality and fast? It's gonna cost (to hire additional programmers). You willing to pay for quality? It's gonna take time to do right.

    That's really what it breaks down to.

  91. Industry standard in the Mainframe Business by 1c3mAn · · Score: 1

    I work in the mainframe software area and standard there is 1 year of support included in the price, then maintenance deals are also written are usually between 3 and 7 years for usually 15% of the price of the software. Though those deals are high convoluted now since you dont sell individual programs to customers any more but rather a packaged deal.

    In terms of legacy support, that isnt really done either. Usually 3 major versions of a software are supported, meaning fixes are created for them regularly. That usually means a 5 year life cycle for a release. Fixes for problems once a version leaves support are special maintenance deals that usually cost more.

    Though we have sold code as is. Meaning that the client is then responsible for maintaining the program because he has ownership of the code and a full license to do with it what he will. Though there is usually a 3 months period where we work out the bugs with them, but after that the code is theirs and they can fix it.

  92. Consider these terms ... by Tjp($)pjT · · Score: 1

    After the initial period of software problem support of months additional support is at our customary hourly rate of $$$ adjusted annually by no more than 10% from the acceptance date of the contracted work. A prepaid retainer of $$$2 may be paid for a yearly support contract. The $$$2 amount may be adjusted downwards annually to reflect past performance and upwards for inflation.

    Then make $$$2 be about 20% of the contracts value.

    I have been nickel and dime'd to death by major industry players who feel they are entitled to infinite support and even "small changes" for free. Sometimes a small enough matter (or occasionally a big one time one) is done as "good will", but don't get sucked into free support forever unless you build that into your contracts price. As in for contracts under a years duration quote a price at least 20 times your cost if you are so foolish as to include lifetime support for no additional cost.

    --
    - Tjp

    I am in wallow with my inner money grubbing capitalistic pig. ... Oink!

  93. Re:Too late to be asking For the client too! by Anonymous Coward · · Score: 0

    My first reaction was, depends on how crappy your coders are? Meaning are you coding to industry standards? if so then it should be spelled out in the contract. If not then you breached your implied warranty and should fix the problems forever.

  94. Re:Programming is like having sex without a condom by Tiger_Storms · · Score: 1

    not really, because if you get a kid you can always put it up for adoption, so no it's nothing like having sex with out a condom.

    --
    This is a Mac, what you have there is an embarrassment to your fellow computer users.
  95. there is no warranty for life by Anonymous Coward · · Score: 0

    People would be out of business if this was promised.

    Warrangy of 30-60 days is normal. This should all be written down in the SOW (statement of work) and/or T&C (terms & conditions).

    Including how things are reviewed and classified as a defect/bug. Changes to infrastructure including OS and DB are not included, even if that breaks your program/process.

    And here is the biggee... Once the client starts making changes, all bets are off. I don't fix anything under warranty once the client has their hands on it.

  96. Related issue.... by Anonymous Coward · · Score: 2, Insightful

    As as first time administrator on an AS/400-based system running RPG code long ago, I was briefly puzzled that our CFO was talking about putting the source code for the software we were to be running into an escrow-like setup. I learned many things from that CFO - in this case, how to protect your company in the case that another company - one that wrote your software for you - goes under. In our case, we were to be given the full source code if the development company tanked. At least that way, they kept their stuff private/proprietary, but we weren't fully shit out of luck if they went out of business.

    That same CFO had an incredible eye for liability issues, too, which are another area I always cringe at when I explore various businesses....

  97. Rate for service contract? by tFunc · · Score: 1

    I usually include bugfixes for 30 or 60 days. How do you price service contracts? Is it the usual dev rate * number-of-hours-covered-service-per-month? What is typical for a service contract on your dev work?

  98. Re:Your bugs.. your problem by lightknight · · Score: 1

    Because clients like to slip in feature requests as bug requests? And their setup is going to be different from yours?

    --
    I am John Hurt.
  99. Best Practice by symbolset · · Score: 3, Insightful

    This is why it's best practice for small software developers to do business with an attorney who offers bulk rates on Delaware corporations and has the reverse merger bit down. You just turn & burn. Several iterations down you can even buy your fully-laundered bankrupt corps back for their "goodwill". Don't they cover this in CS212 still?

    --
    Help stamp out iliturcy.
    1. Re:Best Practice by the_B0fh · · Score: 1

      Or hell, take it one step further, and have one of these companies write a web app that does this for you. Now you can sell it to the attorney and make money from him! And when he wants to add changes, welp, new contract with the new compan[y|ies] :)

    2. Re:Best Practice by symbolset · · Score: 1

      Now you're innovating new application strategies by leveraging professional / B2B synergies, driving delay and middlemen out of the development lifecycle! Have you by any chance started on your business process patent application?

      --
      Help stamp out iliturcy.
  100. Re:Your bugs.. your problem by lightknight · · Score: 1

    Because no piece of code, beyond that of 'Hello World,' is considered bug free?

    --
    I am John Hurt.
  101. XP Support, or lack thereof by Anonymous Coward · · Score: 2, Informative

    I disagree. Microsoft did not provide support as it is being discussed here. Where I worked in the early, relatively bug ridden days of XP, we had large numbers of XP licenses (tens of thousands) and Microsoft Premier support. I reported many bugs and so did many others in our organization. They never fixed a single one of them in response to our reports. They did continue to develop their product, including some bug fixes along the way but my experience was that the bug fixes were not motivated by their support agreements. If I had to hazard a guess, it would be that they were motivated only by the possibility of future sales, but that may just be my cynicism. I was never privy to any of their decision making.

    1. Re:XP Support, or lack thereof by Anonymous Coward · · Score: 1

      We have a level higher - what used to be called "Alliance Support". When we report a bug, we give clear repro steps, a clear business impact statement (in dollars per year), and our expected behavior. Most things that we report get fixed in relatively short order. Some we have to fight about because our impact statement doesn't run to the millions of dollars. Others, with more trivial impacts don't get fixed. But most do.

  102. Customer Likes Dreams, Vendor Likes Reality by Anonymous Coward · · Score: 1

    Re: "...should be supported with bug fixes forever, with no further compensation".

    Hah! They are the customer, of course they will say that! They want something for nothing and it just isn't going to happen.

    Like everything else in the customer relationship, everything can be negotiated. However something for nothing isn't part of the real world. Let them down gently, but firmly. You want repeat business, right?

    In the for profit software world I've occupied, "free" bug fixes are only covered if the customer is paying regular maintenance fees. Maintenance is typically ~15-20% of purchase price, so it isn't cheap, and the customers often dislike paying. However many ISV's won't even speak to the customer unless the customer pays maintenance. If the customer tries to game the system by dropping maintenance, then suddenly paying when they discover a bug, the ISV will often penalize them in some manner. The penalty can be something like paying for a year's support, but it costs a 50% premium of annual maintenance to restart the contract.

  103. Re:Too late to be asking For the client too! by icebike · · Score: 4, Informative

    Please specify where these industry standards can be found.
    I'm pretty new at this programming stuff, having only been at it for 30 years and I haven't run across any universal industry standards document yet, so I'm all ears.

    --
    Sig Battery depleted. Reverting to safe mode.
  104. What?!?!? by Charliemopps · · Score: 3

    Seriously? Are you guys nuts?
    Contract Contract Contract
    You get mixed up with the wrong customer with a bad contract and you could be out of business before you can blink.
    You should have very specific, MEASURABLE deliverables. Things like "Make the interface faster" are not going to fly. What does "faster" really mean?
    Your support structure should be very specific. They should be signing off on every single thing in the deliverables. After that your contract should specifically state what's considered a bug and what's considered a scope enhancement. I guarantee you that every single thing they find that isn't exactly what they imagined in their many managerial meetings they are going to consider a "Bug".

    "You designed this forum for us, but when we try to attach this 4 Gigabyte file to the post, internet explorer crashes before it can even upload. Clearly this is a bug!"

    My company has many types of support contracts and it all depends on the project and who we're working with. The company that built and maintains our website has been supporting it for over 10 years. We have an on-going contract with them, and they basically build or change anything we want, whenever we want. That contract is VERY lucrative for them however. We actually have offices for a few of their employees in our building. I don't even have an office!

    Other contracts we have basically state that bugs found that are IN SCOPE are handled, for free, by the vendor for a certain period after we've accepted the product. 2 weeks seem awfully short to me. I doubt we'd ever except that. Usually it's more like 90 days. We're a relatively big vendor and pay a premium for what we want though... so we get what we want or don't do business with you. After that 90 days we have a set hourly rate that the vendor will charge us, for another set period of time. Say 1 to 2 years. Usually that hourly rate is somewhere in the $100-$200/hr range.

    If you don't have good, solid contracts to base your work on, you are either going to get screwed, or get a name for yourself for screwing your customers. Or worse, sued into oblivion when you have a disagreement with the wrong customer that just happened to a have a whole floor full of bored lawyers just waiting for you to screw up.

  105. Client is high. by Anonymous Coward · · Score: 0

    Tell them you'll support them if they hook you up with their dealer.

  106. we arn customers two release cycles in advance by peter303 · · Score: 1

    Thats about two years on average. And its in the purchase and maintenance contracts too.

  107. Re:Your bugs.. your problem by lightknight · · Score: 1

    Indeed. However, with your typical client for websites, the work is being done for cut-rate prices. *shrugs* I consider it the airline model (where everything costs extra)-> you want the super-cheap website, the tech support is going to cost you.

    Now, people might get us wrong; see, from their standpoint, they're paying someone good money to do magic. Right? Except the plumber who visited your house a few months ago earned more per hour than we are. As did your car mechanic, when you had that engine work done a few weeks ago. What more, if you've chosen not to go the cookie-cutter CMS route, you're getting a product developed just for you.

    A simple, elegant website is quoted at $700, and that's for HTML with some JavaScript thrown in. But that's not what you want for $700; you want a Flash-enhanced PHP/JSP/ASP.NET monstrosity with a dozen hard to code features (i.e. features that require RESEARCH, just to see if it's feasible), that typically costs $15,000+ to code, and several months of back-and-forth before even laying the groundwork. On top of all of this, you will also ask for a discount, since you are putting work our way!

    When my spellbooks (code books) cost more than I am going to make off of a job, I seriously question the field I've chosen in life. Which is why I am out of the web development circuit; at the very least, nothing below corporate-level clients, and even then, they're going to pay (but should be fairly happy).

    --
    I am John Hurt.
  108. Give them options by mysidia · · Score: 1

    Whether the client plans to do more business with you in the future or not may be a factor. You might make a deal where "Your payments for developed software includes 1 year free maintenance to start after implementation, unless you sign up for a longer maintenance contract, or you negotiate new terms with us after 1 year"; you might make a deal where "Any new software project or major upgrade you commission us to perform, will renew your support for existing work, when we receive payment for a certain minimum amount of billable time, and then 1 year after completed implementation of the new project.".

    If this was a one-time custom software design job, then provide your client with the source code, provide a contract or a "warranty" for a reasonable duration that includes bugfixes, and a certain number of minor feature additions they may request, then beyond that bill based on your costs; If you are a small shop doing custom work , you possibly can't afford to lose a positive referral and future business based on your mistakes; bugs are your mistakes, and you owe it to the customer to make amends for your errors..

    However, Every Warranty Has an Expiration Date; if your customer doesn't discover the issue within 6 months, then it's probably reasonable that you didn't discover the issue either, they are just as much at fault for not finding an issue. The companies that offer Lifetime warranties are very big companies mass-producing very simple products that are inexpensive to replace, and Lifetime warranties generally aren't valid once the product goes End of Production / End of Sale anyways.

    If your client isn't agreeable to the terms your business needs, eg your customer is just too unreasonable, and you can't come to an arrangement -- don't leave your customer high and dry, either provide them with the source code, or agree to provide source code to a third party software firm they will contract for maintenance (under appropriate NDAs of course).

    Obviously your customer is in the wrong expecting perpetual development work for free, unless you have an ongoing business relationship that is mutually beneficial.

    A restaurant may post a "Free Refills" sign by a drink fountain. That doesn't mean it's reasonable for you to bring your glass home with you, and come by every morning expecting free refills of the drink you bought last year, for the rest of your life.

    Now if you paid $50 for that 8oz soda, perhaps it would be reasonable to expect free refills for a few days, but still, not forever.

  109. Re:Programming is like having sex without a condom by Anonymous Coward · · Score: 0

    No, it is just like sex without a condom. dumping your kid on someone else == refusing to support your garbage code (which forces someone else to fix/support it).

  110. Acceptance Testing? by chill · · Score: 1

    You have acceptance testing. Once the client signs off, it is theirs, warts and all.

    Whether or not they get source code should be in your development contract.

    Support after formal acceptance is covered by a separate support contract.

    --
    Learning HOW to think is more important than learning WHAT to think.
    1. Re:Acceptance Testing? by wmelnick · · Score: 1

      Agreed. You cannot be expected to shift gears and look at code for free. The client write the spec or at least the majority of it. It behooves them to test the code to make sure it meets the spec when they get it. Support costs, it is not a freebie.

  111. easy. by Anonymous Coward · · Score: 0

    As long as the support contract is still in effect.

  112. Find a different client by tkrotchko · · Score: 2

    Dealing with people that will try to nickel and dime you is no way to make a living.

    Let some other chump provide them with "service". Spend your time finding decent clients.

    --
    You were mistaken. Which is odd, since memory shouldn't be a problem for you
  113. Please stop! by zeraien · · Score: 1

    Please stop telling the OP to get a contract. Nowhere in the post is there a mention of legal issues or contracts or lack thereof. S/he is specifically asking for the "industry convention" on support terms for custom software - not how to enforce said terms. I too am very interested in the answer to the question. So unless you answer is 30 days, 60 days, 3.14 days, 5 bugs, 13.135 hours or anything else of relevance, please don't pollute the topic, I'd like to be able to see the actual answers.

  114. Most of the time. by Camel+Pilot · · Score: 1

    Two months of fixes and tweaks is reasonable. I generally allow for that also... however if something comes up, even years later that I consider a negligent defect I fix for free and don't look back. One recent example that came up is bug for not escaping special characters in a XML text field.

  115. Re:Your bugs.. your problem by evil_aaronm · · Score: 2

    10 print "Helo World"

    Ha! I can fuck up even that!

  116. Until the client is paying by dindi · · Score: 1

    Too late now, but how it should be, is that you fix bugs until specification is met and the product is tested and accepted.

    Any further bugs, changes, requests should be paid. Sure you can get lifetime warranty on a knife or something simple. Not software. Even software giants' products reach their end of life and thus the end of support.

    If you promised life-long fixes, well sir .. you fsck'd it up really bad..

  117. support contract. by StormyWeather · · Score: 2

    Every piece of software I have seen in the medical field is 1 year support and maintenance and a maintenence and support contract for a fee after that. If they drop support let them know that if they pick it up again in the future then there is a retroactive re-up fee. This covers your costs of having to relearn dead projects. There is no company in the world that supports software infinitely however I've never seen a 2 month span either.

    Sorry for typos, slash dot on an android sucks.

  118. Charge a licensing fee by GodfatherofSoul · · Score: 1

    That's what we do. For 20% of full cost per year we're on hand to provide support for our product. Often you don't have to do much more than hand hold, but clients love the security of knowing they have the expertise of the developer at their disposal.

    --
    I swear to God...I swear to God! That is NOT how you treat your human!
  119. I do... by holophrastic · · Score: 1

    I do bug repair for a year, minor tweaks and cosmetic changes for a year, reasonable functionality adjustments for six months, and non-major aesthetic changes for six months. But it's different in my world because I don't go through a spec first at all. I basically do that effort after the build instead of before.

    In your case, I'd say that two months isn't too short a period for real world testing, but it definitely requires the client to actually do their real-world testing directly. If you don't intend to pressure them into doing it immediately, but to allow it to come up naturally instead (which I'm not sure is any better, and I can see how it's worse) I'd say that up to four months is perfectly reasonable for a client paying your full price.

  120. 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?

  121. quality costs money, and it's not zero-sum by Anonymous Coward · · Score: 0

    If you say "Give me a web site in two weeks", I'm going to develop as much functionality balanced with as much quality as possible. There is no such thing as bug-free software. It costs money to QA software and find bugs. And lets face it, even with all the automated unit/integration/smoke/exploratory testing, there will STILL be bugs revealed after a production deployment.

    Quality costs money, and it ought to be part of the maintenance cost plan.

  122. Stick to the spec/ by wmelnick · · Score: 2

    I write into my contracts: 1/3 due up front (agreement of the spec). 1/3 due at delivery. 1/3 due at acceptance. Acceptance is either when they sign off, or one week after delivery of product or delivery of the fix of the last bug determined between delivery and acceptance. Anything after acceptance is billable. Any "bug" that does not match the initial spec is not a bug, but rather additional work to be billed. The original spec is initialed on all pages by them Any changes that they ask for and I agree to during the course of the product being developed are added to an amended spec, sometimes gratis, sometimes at an additional cost. It is a pain, but it is the only way that these things go smoothly.

  123. Hourly by pubwvj · · Score: 1

    Always good to have a written agreement and while you're at it simply charge by the hour. Good enough for lawyers and accountants.

  124. Re:Your bugs.. your problem by DarwinSurvivor · · Score: 1

    Anyone who thinks code beyond "Hello World" can be not only written bug-free but handle the abuse a client will put it through obviously never got past "Hello World".

  125. Product manager by Anonymous Coward · · Score: 0

    I work at a very large publisher that uses contractors, and our SOW's generally call for 90-days of warranty support. While not clearly defined, I believe that the warranty should cover issues within the initial set of requirements.

    Library upgrades are a grey area.

    New features or things that break because we've changed our systems I do not ask for that support.

  126. As long as the clients are paying. by Freddybear · · Score: 1

    1. You have an ongoing business relationship with the clients and can expect plenty of new business from them in the future, or
    2. They pay you for a support contract.

    Or, depending on the level and severity of the support services required, you might do it just for the "goodwill" but if they're being pricks about it, fsck 'em.

  127. It depends on wether it's custom made software ... by GNUALMAFUERTE · · Score: 1

    My company develops several products (Hardware and Software)

    We offer lifetime free updates for all of our products. We've never charged for an update. There are of course newer functions that might not work on older hardware. So far, all systems we've sold since 2007 run our latest firmware flawlessly.

    Of course, that doesn't hold true for custom-made software. If you are actively developing a product, it doesn't hurt to give away updates for free for existing customers, but giving lifetime free support for a custom-made product is economically unfeasible.

    --
    WTF am I doing replying to an AC at 5 A.M on a Friday night?
  128. As long as the contract specifies by istartedi · · Score: 1

    As long as the contract specifies. If the contract doesn't specify, you're a dufus and should make sure that it does from now on. For the clients with which you are a dufus, you must weigh the potential loss of good will against the expense of billable hours. That's a PiTA, which is why you specify support in the contract. Duh!

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  129. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0, Insightful

    Thats a BS excuse though - if you wrote crappy code, you should fix it. I think its reasonable to say 12 months.

  130. There is no industry convention by mordejai · · Score: 1

    You have to support it for whatever it says in the contract.

    You DO have a contract, right?

  131. Forever. by nurb432 · · Score: 1

    ..........or until you no longer want them as a customer. If you stop support on something they paid you to write, you have lost them most likely.

    Sure you are in the right legally, but is it worth the lost business?

    --
    ---- Booth was a patriot ----
  132. How "country" coders do it by Anonymous Coward · · Score: 0

    It's sad that you have to be a lawyer (or pay one) to do almost any kind of business nowadays.

    I'll try to repro any bug; at that point it's often easy to spot and fix and I can comp it if there's not too much work involved. If it's harder but it's a stupid bug that I missed, I'd still be inclined to just fix it, even if they took 6 months to find it.

    Unfortunately, doing that amounts (in many clients' eyes) to promising to fix anything they ever find for free: there's just no way to tell someone that one bug was (in my sole opinion!) my bad and therefore free but another is going to cost them. It's less trouble to just stick to the contract unless you know them really well.

    On the other hand, if they want something else down the road and we have a decent relationship, I might deduct the cost of their bug, and tell them why. At that point, it can look like a good thing without setting a precedent.

  133. 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.
  134. Somewhat OT, but ... by hedronist · · Score: 1

    When I left Tymshare (as an employee back in 1978) I told them they could call for help, but that the amount I would charge was based on who had been working on (i.e. f*cking with) the code since I left. I quoted $50/hour (remember, 1978), but there was one person who was a six-dimensional train wreck, and I said if I had to fix any of his bugs it would be $10/line of code.

    Sure enough, about 9 months later they called. It was Train Wreak Guy® and it cost them about $30,000 for 3 days of my time to de-f*ck the database code.

    Because I had told them ahead of time what it would cost there was no argument. I got my check and they were happy.

  135. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    Why would you stick a tongue into your cheek? It sounds mighty uncomfortable.

  136. Re:Too late to be asking. (maybe not) by Anonymous Coward · · Score: 0

    I agree. Awesome time to not have mod points.

  137. Perhaps.. by Anonymous Coward · · Score: 0

    Perhaps, but only if absolutely nothing changes on the server systems or client computers for those 12 months.

  138. Re:Your bugs.. your problem by autocannon · · Score: 1

    IBM??? Ha ha ha ha ha. You ever use any of the Rational products? Or god forbid BuildForge....that behemoth of shit is something real special!

  139. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    No I didn't. I've never signed any sort of "acceptance" document that releases the vendor from liability for bug fixes. I only sign off on features being implemented. I'm not an idiot, the lawyers review everything before I sign.

  140. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    As a sometimes project manager I've never signed off on any document that releases a vendor from bug fixes. I will only acknowledge feature implementation. The lawyers review anything you want us to sign. If your product proves to be demonstrably defective at any time, you're going to own it and that's non-negotiable. If you can't stand behind your work, please don't bid. It's not like we've ever hurt for bids on any projects from quality vendors.

  141. More Evil Than Microsoft by Frankie70 · · Score: 1

    All you guys posting here are more evil than Microsoft.

    http://support.microsoft.com/gp/profsup/en-au

    Mainstream Phase: This phase commences at general product availability and normally extends for at least five years. During this phase a product is fully supported and free assisted support per the definitions below is available.

    Bug
    A bug is defined as "behaviour manifested by program outside of original design specification and is due to an inherent defect in the product code"; in other words a technical feature of a product that does not perform the task for which it was designed.

    When Microsoft stops providing free security fixes for Windows 95 in 2010, you all call them evil, but looks like in your own businesses, free support ends when the customer signs the cheque for the original software.

    1. Re:More Evil Than Microsoft by butlerm · · Score: 1

      Have you considered that the economics of the support business change dramatically depending on how many million customers you have?

  142. Re:Your bugs.. your problem by SQLGuru · · Score: 1

    French kiss.......

    Q.E.D.

  143. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    Anyone who thinks this way has obviously never written FAA or FDA (medical) certified software.

  144. Uniform Commercial Code by systemeng · · Score: 1

    I believe that it's a lawyer and not a developer that needs to be consulted in this case as there are legal precedents. Just try googling for uniform commercial code software development

  145. Free Notification of Discovered Bugs by Anonymous Coward · · Score: 0

    E-mail notification of newly discovered bugs known to be application-wide for all should be free and ongoing. Maybe after a time, say one year, a yearly subscription for clients to access otherwise free downloads for fixes should be standard and cheap.

  146. car dealer by Anonymous Coward · · Score: 0

    Ask your client to try that the next time he buys a car!

  147. close your company now by Anonymous Coward · · Score: 0

    and start a new one next time, with warranty period.......period

  148. Standards? by Wolfling1 · · Score: 1

    For a time, I worked as an Infrastructure/Purchasing Manager for a mid-sized government department. During that time, I was responsible for the oversight of the purchase of several software packages - ranging from PC-based client/server packages through to mid-range AS/400 packages. Our general rule of thumb (and I emphasise that it was nothing more than that) was to pay around 10-15% of the original purchase price each year as a general maintenancce fee. If this included a minimal level of desktop support, we were winners. If it only included bug-fixes, it was tolerable.

  149. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    Software like Microsoft's that is licensed or purchased does typically have an expectation of free bug fixes from customers, but unless it's in writing the customer should be prepared for the possibility that the company will refuse to fix it, particularly if it's old.

    And other software that is licensed or purchased, such as AIX or Oracle, you have to buy the current version to get support and bug fixes. You buy a version, it says supported until $date, and after $date there are no more patches, regardless whether there are still bugs, if you want your bug fixed, upgrade your license and install the new version, which is valid until $new_date.

    Bug fixes aren't an automatic deal in shrinkwrapped software, it just happens to be something Microsoft does for your convenience.

    And practically, the only obvious changes in new versions of AIX are newer bug fixes, performance enhancements and support for new hardware.

  150. And this is why... by taoboy · · Score: 1

    ... in three computer degrees the most useful course I've ever taken was Business Law.

  151. Microsofts official license by Anonymous Coward · · Score: 0

    Microsoft's official license details that the software is sold "as is" without any warranty, not even the implied warranty of merchantability or fitness for any purpose. So in spite of people making claims about using them so that they have someone to 'choke', that's just a bullshit lie. Even the 'biggest customer' basically has no recourse. Likewise, the software is licensed, not sold, so that you can run a copy of it, but not resell it. You can't even resell your license. First sale doctrine and consumer ownership got really screwed by them. In custom jobs, its normal to develop to specifications, with clear goals, targets, deadlines and performance. There are payment milestones, occasionally incentive payments, and usually a development/bug-fix cutoff date. Since these things always take on a life of their own, the requirements list changes dynamically, so small extras can get added after the official "delivery". Likewise, cost-free bug fixes beyond the acceptance delivery usually run out within a month or so (and likewise, documentation/training). After that, its on a cost+ basis. Major changes / alterations outside of the scope of the main project usually means project II, with its own goals, dates, etc. Don't ever get into something where they want fixes forever, or changes forever, for free. It quickly turns into a cross between fealty and slavery.

  152. 10 days by Anonymous Coward · · Score: 0

    10 days. I'm not joking. I saw that in a contract from a HUGE consulting firm (A..........e) that bugs reported within the first 10 days after delivery would be "addressed", if they were agreed to be part of the functionality of the delivered software. Basically, any change to the environment - OS, patches, programs voided the warranty. This was custom built, installed, configured code. It was also under nearly constant development with deployments twice a year on our systems.

    For a website, I'd say that 60 days is more than reasonable, but there needs to be a clause to that effect in the contract.

    For desktop software, support terms are different. Most non-mass-market software that I've seen made it clear that 1 yr was it, but allowed users to install newer versions of the code on the same major level for free. This is for software with fewer than 10,000 total users world-wide. A pretty limited stock picking/tracking/analysis program.

    Seems that the more you charge, the less free support there is.

  153. My standard policy by Discopete · · Score: 1

    My standard policy is "bug fixes indefinitely", modifications or edits are at standard hourly rates. Of course most of my projects have been very small scope and thus very few bugs.

  154. Re:Your bugs.. your problem by sjames · · Score: 1

    The problem is you and everyone else is not willing to pay what it actually costs to create bug free code. The space shuttle avionics code was one of the few cases where it was necessary and possible to pay that kind of price. From http://history.nasa.gov/sts1/pages/computer.html:

    The result achieved by the 300 IBM programmers, analysts, engineers, and subcontractors was impressive. An analysis accomplished after the Challenger accident showed that the IBM-developed PASS software had a latent defect rate of just 0.11 errors per 1,000 lines of code—for all intents and purposes, it was considered error-free. But this remarkable achievement did not come easily or cheap. In an industry where the average line of code cost the government (at the time of the report) approximately $50 (written, documented, and tested), the Primary Avionics System Software cost NASA slightly over $1,000 per line. A total of $500 million was paid to IBM for the initial development and support of PASS.

    When you are ready to pay 20 times the going rate, you may expect (nearly) bug free code. Or you can pay the going rate and the relatively modest cost for fixes.

  155. Duty to repair bugs absent written agreement by marbux · · Score: 1

    Whether there is a legal duty to repair bugs depends on particular facts and controlling law in the particular jurisdiction. Getting a lawyer involved before entering into agreements to deliver a work for hire is important. Ideally, a lawyer would help you develop an agreement form that can be recycled in other sales contracts.

    But speaking generally, where a work for hire has serious defects that render the product unsuitable for the intended purpose, the person who sold the work is obligated to repair the defects under laws governing liability for defective products (tort law) and under the implied warranty of suitability for the intended purpose that cannot be disclaimed in at least most U.S. jurisdictions (contract law). Courts tend to favor the purchaser of defective products, particularly in the case of an unsophisticated purchaser and latent defects that do not manifest before payment for the product. E.g., you pay a contractor to build your house and five years later the foundations crumble to dust or a fire started by defective wiring destroys the house. The law generally provides a remedy in such situations.

    The customer's position in the particular situation under discussion is likely based on such precepts. There are also affirmative defenses to such claims, but I would recommend in this situation that you consult a lawyer with expertise in this area. You might also consider repairing the bugs in the meantime with the written understanding that who pays for the work will be sorted out later. If you do not, the customer may hire someone else to make the repairs, then come after you for the cost, which because of the subsequent contract's lack of experience with your code will necessarily be far higher than your own expense to repair.

    Paul E. "Marbux" Merrell, J.D.
    -- retired lawyer

  156. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    >> I'm not an idiot

    If you insist...

  157. Certainly not forever by jevring · · Score: 1

    You should support it for free as long as stipulated in the contract. If it doesn't say anything about free support, there is no free support. Under no circumstances should you provide "free support forever" without an obscene amount of money up front.

    --
    Move sig!
  158. there is a law for that by Anonymous Coward · · Score: 0

    Ask your lawyer for details.

  159. Support Contract by rve · · Score: 1

    You just do exactly what it says in the support contract. You did sign a support contract with the customer, right? You don't sell our service for lump sum X, but for lump sum less than X, plus monthly or yearly fee Y. It's a steady source of income, and repeat business, and protect both you and the customer from having to sue each other.

    Without such a contract, the customer might expect you to support the product free of charge for ever, or sue you if the product has flaws that weren't in the sales contract. They'll probably win too.

  160. contract time! by pbjones · · Score: 1

    A clear contact would have made the question a lot simpler, in any job like this you ether hand over the finished 'work' with some sort of support statement. It may be just bug-fixes for a set period, or possibly a pay-as-you-go system, or a set support time frame. If you or your customer failed to include this in a contact, then I suggest that you gather all of your notes and emails relating to the job and look for a time where support was mentioned, and seek legal advice NOW!. A simple letter to the customer may sort this matter out, or you could be like a few companies and offer unlimited support for a fee, which grows and grows. You may also charge for after hours support, travel, extra penalties for problems caused by unauthorised/unsupported upgrades, etc.

    --
    There was an unknown error in the submission.
  161. That's easy to answer by DrXym · · Score: 1

    If there is no economic or contractual incentive to fix software then don't fix it.

  162. Re:Your bugs.. your problem by jimicus · · Score: 1

    Not entirely true. NASA, I believe, have a pretty good crack at 100% bug-free software.

    So when quoting your client, make sure you quote in the same ballpark as a fifty-year space programme that's meant to put a man on the moon, send a whacking great telescope into orbit and make regular trips to maintain that telescope, get a robot to Mars and report findings back to Earth.

  163. Contracts and lawyers by bradley13 · · Score: 1

    It sounds like you forgot to get a contract signed that details how delivery and support are supposed to work. If that is the case, three comments:

    - First, for future work, get a standard contract worked out. There are plenty of examples on the internet. Pay for a couple of hours of an attorney's time to check whatever you come up with. Contracts are essential, even between people who get along well, simply because memories of what you agreed to may differ after several months. Prevent misunderstandings, always use a contract.

    - Option 1 for your current client (the one with no clear support contract). If the client isn't hostile, treat it as a sales opportunity. Explain what is standard in the software world (support for a fee), come to some compromise that winds up with you selling a long-term support contract.

    - Option 2 for your current client, if they are hostile. Depending on where you live, laws vary, but afaik all countries have warranty laws that can also apply to software. In the absence of a contract, you may be on the hook for support for the duration of the minimum guarantee period - but no longer than than. The customer may also have the right (if you software really sucks), to return the software for a full refund - in which case, of course, you have the right to verify that they are no longer using it. You would really need to check with a lawyer who knows your local laws.

    --
    Enjoy life! This is not a dress rehearsal.
  164. you should ALWAYS offer a 'forever' support option by Anonymous Coward · · Score: 0

    'Forever' option. Charge enough extra that the risk-free interest rate pays for the minimal support they might need, forever. About $700,000 ought to do it.

  165. Go figure. by Anonymous Coward · · Score: 0

    I charge people to run yum -y update.

    We should get together for drinks!

  166. Forever is Reasonable, SW is just poor by Anonymous Coward · · Score: 0

    This question just highlights how poor Software expectations and work is done. If a processor released by Intel has a bug, they have recalls and get sued, but SW is EXPECTED to have bugs and support is by some predetermined time or compensation. If you look at this from a product point of view, then it would be in the best interest of the party making the SW to create bugs to have to fix later for more money.

    I think forever is more than reasonable if you didn't meet the original requirements. If you did, then additional requirements require additional work, which requires additional pay. All the requirements I've ever seen though don't specify number of expected bugs.

  167. Re:Too late to be asking For the client too! by excelsior_gr · · Score: 1
  168. Logical limits to your support period and efforts by VitaminB52 · · Score: 1
    You need an OS plus development software plus (possible) database software and webserver software to build your software product. Each of these software products you use has its own end-of-support data. You should never promise support on your product beyond the end-of-support date for a software product needed to support your product. E.g.: if fixing an issue with your product requires fixing an issue with the OS, and the OS is out of support, then you are out of luck.

    Any support on your product beyond the end-of-support date for a product needed to perform this support should be on a best effort basis, never on result commitment basis.
    Also consider increasing your hourly rate by 10% for each year beyond the end-of-support date of the products you use - this encourages your client to buy an upgrade to a new version of your product, build with current tools.

  169. None? by Anonymous Coward · · Score: 0

    The duration, if specified, should be stated clearly on the contracts, or it'd be none.
    Sometimes it's one year, but usually it's none because the clients are supposed to pay annually to add extra functions -- including patches for all the bugs they fail to detect when they receive the final product.

  170. One year. by Z00L00K · · Score: 1

    They shall have one year after delivery, then they shall need a support agreement.

    If you discover that you have a bad agreement you can always as a supplier liquidate the company and start a new since the customer had an agreement with the liquidated company it's no longer valid.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  171. Re:Your bugs.. your problem by Targon · · Score: 1

    These days, there is a growing issue of applications written for Windows XP that don't work under Vista or Windows 7. While Windows XP mode is fine for some things, it doesn't handle EVERYTHING, and won't take full advantage of the power of newer computers. So, you see these old apps needing to get updated, and some clients expect the original developer to just make a new version available for free. With Windows 8 this year, the compatibility issue will become even more of an issue here, so people want new versions of the software their company paid for.

  172. You need to get a new client by Anonymous Coward · · Score: 0

    "My client says any software/website we develop for them should be supported with bug fixes forever, with no further compensation."

    You need to set him straight. Support is always after the fact. Support should always be charged. If you wish to wave support fees and off patches as gratis for a year or whatever, that's fine, but you need to make it clear support is done so for a support fee - annual or per incidence. Any other option is begging the client to screw you over royally. The world just doesn't work that way - except for suckers who accept such bad deals and dickheads who insist of pushing such deals through on the other side.

  173. Re:Too late to be asking For the client too! by drstevep · · Score: 1

    C     NO DONT USE COLUMNS 73-80                                                      00000010
    C     THEY ARE RESERVED FOR SEQUENCE NUMBERS                                         00000020

  174. For the exactly time you are paid for that. by Lisias · · Score: 1

    Of course, your clients can choose to contract services from people that gives them some extra "no charge" guarantee time - but this guys will just charge these extra months, disguised, on the bill anyway - so you can compete with price.

    --
    Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
  175. Re:Too late to be asking For the client too! by splutty · · Score: 1

    Don't know where you get your 80 from, but my punch cards only had 72 usable columns..

    (Yes. IBM Mainframe..)

    --
    Coz eternity my friend, is a long *ing time.
  176. The customer is not always right by BeanThere · · Score: 1

    Sorry to reply to own post, but of course, the important point to take away from the above is that sometimes you have to be willing and OK to let some crappy customers go. It's fine. You don't have to win every customer. Let them grumble a while, and then find someone else to abuse. Usually, they aren't going to change --- because we are talking about the personalities of individuals --- even if you painstakingly manage to cover every possible little detail in some contract, they will usually still be unreasonable bastards that end up annoying you and trying to make unreasonable demands. If you want to live long and not end up having a stroke, let them go.

    I've found (having been there) that most reasonable customers are willing to be reasonable and fair if you have a frank discussion with them about what is fair. For example, and responding to the OP "lucky4udanny" now: If your original contract covered only 3 months of labor for initial development but didn't cover much for bugfixes, and you have already spent 3 months working, and this stuff wasn't covered properly in the contract, then an email to the customer explaining that you would effectively be working for free and that it would not be fair to do so, is reasonable. A reasonable customer would usually understand such an approach. Unreasonable customers will then expose their true colors further. If you were paid for four months worth of labor, but have only worked three, then it might be fair to say some additional work is still 'covered'.

    One thing I learned from the GoDaddy guy's videos, "The customer is not always right, but the customer is always the customer". That is very true.

  177. forever only specification by Anonymous Coward · · Score: 0

    he can claim what ever he wants,

    if he wants "forever" he needs to know that you can ask
    1) never update the os
    2) understand that what is not in specification, is not supported of fixed.
    3) he will be charged if the source of the error , is not on the distributed code fault.

    the meaning of his idea, we have specification, if you don't give me what in the specification, ill give you a chance to fix it, or ill sue you for selling defected good.

    things that are not in the specification, are not fixed,
    example, windows exploit of ini file,

    you can dump what ever you want before the first section start, even code, even compiled code, the autorun.ini parser doesn't care.

  178. Do what the big boys do. by rcincinnato · · Score: 1

    Just follow what the large companies do. Come up wth a "new version" of the software and then say you will stop supporting the old one in....... Works for windows!!!!! try getting support updates for windows 95!!!!

  179. Re:Your bugs.. your problem by gman003 · · Score: 1

    Even NASA's methods aren't 100% bug-free. They're probably some large number of nines - 99.99999% bug-free, maybe - but just as 100% uptime is impossible, so is zero-bug status.

    And NASA's methods are *crazy*. Take one program. Run it on three different computers, connected by a simple voting circuit. That way, if there's a transient hardware error, it has to affect two of them simultaneously.

    Now take the specs for that program, and hand them to three different teams. Do not allow them to share code, or even really communicate with each other. Run all three implementations on the above separate computers, so that any bug has to be present in multiple implementations in order to affect anything.

    Now take the whole system, and spend about ten times as long in testing as you do in production usage. Have the code audited line-by-line by experts.

    And even after all that, you can still have bugs in the specifications. Say, one module outputting in metric when it's passing data to a module that reads in imperial.

  180. Re:Your bugs.. your problem by CanHasDIY · · Score: 1
    There's a difference between writing bug-free code and intentionally buggy code. When you said

    If they want bugs to be fixed that you didn't have time to fix during developement,

    it implies that you knew the bugs were there, and chose to not fix them (for whatever reason) before selling the software to clients, presumably so you could charge them even more money down the road to fix the problems you purposefully left behind. IMO, that is damn-near-if-not fraud, and definitely not the sort of business practice

    Car analogy: A mechanic installs a new water pump, but knowingly leaves off the clamps that keep the hoses attached. Do you really think you, the client,. should be charged extra for the mechanic to fix what he should have done right in the first place? If so, I have a bridge in NY state I'll sell you for a song.

    --
    An enigma, wrapped in a riddle, shrouded in bacon and cheese
  181. Re:Your bugs.. your problem by CanHasDIY · · Score: 1

    ... and definitely not the sort of business practice

    ... strike practice...

    Append: "I want to give my money to."

    Much better.

    --
    An enigma, wrapped in a riddle, shrouded in bacon and cheese
  182. Depends on the nature and severity of the bug. by jonadab · · Score: 1

    Officially, you want it in the contract that support past a certain date is billable. If they want a later date, you can charge more for that. Work all that out ahead of time, in writing, before you do any work on the project.

    However, there are some cases wherein you ought to "forget" to bill them. Significant security flaws are one good example of this. Bugs that case significant data loss are another. Your programmers should be instructed to just fix those kinds of mistakes and not bother the billing department about them, and your customer service people should be apologizing to the client for their inconvenience. This is basic "implied warranty" stuff. It may technically be legally possible to disclaim it, but that's unethical and also bad for business.

    --
    Cut that out, or I will ship you to Norilsk in a box.
  183. I'll go out on a limb ... by Rambo+Tribble · · Score: 1

    ... and suggest that if your contract didn't define its completion, as in a sign-off on deliverables, you have a sticky wicket. Otherwise, your liability to warrant your product is probably defined under commercial law in your jurisdiction. For instance, thirty or ninety days and one year are common terms for such responsibility.

  184. Only Major Bugs by Murdoch5 · · Score: 1

    You should only support major bugs. If the client wasn't clear on what they wanted then it's not your problem. Only offer them a free fix on a major issue and all other issues they have to pay for.

  185. There is no "standard" by msobkow · · Score: 1

    Support terms are negotiated on a per-contract basis. Some companies or firms have boilerplate or "standard" contracts that they use to define the terms, but they're company-standard at best.

    If some company demanded perpetual free support, my answer would be simple:

    Talk to my lawyer.

    There can be no "reasonable" negotiations when the customer's position is to get work for free. That's not reasonable, it's not sustainable, and it's never been part of software development anywhere I've worked in 30+ years.

    You do not have a customer. You have a leech.

    --
    I do not fail; I succeed at finding out what does not work.
  186. Re:Your bugs.. your problem by Anonymous Coward · · Score: 0

    The problem is the definition of a "functional bug".

    If the client changes the Operating System (e.g., winXp to Vista) and the software stop working, is that a functional bug?

    What if the client, after using the software for years (say 10+), informs you that the fourth option on a dropdown should have pre-filled in some other option and thus is a bug (they don't use that option much, testing didn't find it, and there is just one line in a 50 page specification document that mentions this?) At this point of time you no longer have the dev environment available even? e.g., Development was done with Visual C++ 1.0 and you no longer have hardware of OS's to run that version? Does this mean you have to pay to have the software converted to use the latest Visual C++? What if you are no longer a Visual C++ dev shop anymore? Who is going to pay for those licenses?

    Lots of issues to be worked out, and everything hanging on the definition of two very simple words.....

  187. Re:Programming is like having sex without a condom by HornWumpus · · Score: 1

    Women have choices, men have bills. You can't put your child support obligations up for adoption. Even if you could no-one would take them.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  188. Junior math by Anonymous Coward · · Score: 0

    The time they want support times your hourly wage. Let them count for you.

  189. Real-world beats theory by Unordained · · Score: 1

    It's theoretically possible to build bug-free software, sure. I can accept that; a theorist has probably even written a proof for it. But not at a price-point anyone's willing to accept, because of the diminishing returns of investing more time and money into the required documentation, test-harnesses, reviews, proofs, etc. Software products that are still actively maintained will, I believe, trend towards being bug-free, as bugs are found during the course of their use.

    But releasing early, with bugs, is overall cheaper than trying to find every single one before initial release. Unless it's a mission-critical, one-shot, life-or-death piece of software, pretty much everyone's willing to go with the lower-cost solution of a "happy medium" amount of rigor.

    Even NASA's probes have software bugs, despite everyone knowing ahead of time that they may be unable to upload a patch when the antenna accidentally gets turned the wrong direction, or the computer shuts down permanently, and that the whole project depends on it -- it's still worthwhile to take the risk and launch early, without verifying that every single line of code is in some objective way perfect.

    Even famously bug-free software, like Knuth's TeX and METAFONT, didn't get that way overnight -- otherwise they wouldn't have had a need for version numbers. But TeX's asymptotic version numbers (after version 3, once it was already pretty stable)? Beyond being cute, they reinforce what I said above: code gets better over time, slowly approaching correctness. Knuth himself once wrote "Beware of bugs in the above code; I have only proved it correct, not tried it."

    You can take your theory, and shove it. Oh, also? Plenty of important software IS bug free. Yeah, [citation needed] on that one.

  190. Re:Too late to be asking. (maybe not) by CCarrot · · Score: 1

    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.

    Soo...what happens in year 201? Do they figure you're finished with it?

    braainnnss...

    --
    "I love animals! Some are cute, others are tasty, what's not to like?" - Betsy Schroeder, Jeopardy contestant
  191. Re:Too late to be asking. (maybe not) by icebike · · Score: 1

    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.

    Soo...what happens in year 201? Do they figure you're finished with it?

    braainnnss...

    http://en.wikipedia.org/wiki/Cemetery#Re-use_of_graves
    http://www.bbc.co.uk/news/uk-13357909
    http://www.spiegel.de/international/germany/0,1518,527134,00.html

    --
    Sig Battery depleted. Reverting to safe mode.
  192. Re:Too late to be asking. (maybe not) by CCarrot · · Score: 1

    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.

    Soo...what happens in year 201? Do they figure you're finished with it?

    braainnnss...

    http://en.wikipedia.org/wiki/Cemetery#Re-use_of_graves
    http://www.bbc.co.uk/news/uk-13357909
    http://www.spiegel.de/international/germany/0,1518,527134,00.html

    O_O

    I was being facetious, but...suddenly my commitment to cremation is a whole lot firmer...

    --
    "I love animals! Some are cute, others are tasty, what's not to like?" - Betsy Schroeder, Jeopardy contestant
  193. 3 years to a consumer... by Anonymous Coward · · Score: 0

    some comments mentioned windowsXP... I suppose since winXP was (is?) sold to consumers (unlike lucky4udannys software?) and not only to another corporation, microsoft have to fix manufacturing defects (=bugs) within 3 years after they sold the thing (should apply to software too, not only hard things, right?). The consumer have to report the fault within 2 months after they found it though, and after the first half year the consumer have to prove that the fault was there when they bought it (easy for software, not so easy normally).
    This law only apply when selling to consumers though, corporations is supposed to have contracts for these things,
    and you might have other laws in your country of course :-)

  194. Re:Your bugs.. your problem by gnasher719 · · Score: 1

    Anyone who thinks code beyond "Hello World" can be not only written bug-free but handle the abuse a client will put it through obviously never got past "Hello World".

    What does "Hello World" do when the stdout is redirected to a file, and the hard drive is full?

  195. No convention... by Sir_Sri · · Score: 1

    There's not really a convention on this. Depends on the type of software, whether you can (and will ) reuse any or all of it, making pushing fixes back viable.

    Really the only way to get indefinite support is to develop it yourself in house, and that isn't free. You simply have to tell your client that what he wants is not something you're prepared to do, and anyone else offering to do it is almost certainly overshooting their capabilities or lying. You can't retain staff 7 years from now to fix problems some custom piece of code you wrote today, and training someone up that far in the future may not be feasible.

    I had a project a few years ago to try and recover some working code from an Apple 2, and last year I was asked to try and find a way to read some CP/M disks. Those problems *can* be solved. But you're looking at a huge amount of time to try and solve them.

    The most I would ever commit to a single contract for personally is 5 years. Any more than that and the entire industry could shift and you have no way to be prepared for that. Remember IE6 was replaced in 2006, so that's only 6 years ago, and think of the chaos that causes, and think of the problems with trying to convert code written for IE6 to well... anything else. You're looking at a complete rewrite basically. If you write your code today for regular old Windows 7, well in 5 years windows 9 could be (for all we know) entirely ARM, and only use the metro UI, or the entire industry could have shifted to something other than windows. You don't want to be, and can't risk being on the hook for that. Web services... PHP and sql I would expect to stick around longer than 5 years but languages change and that could be a real pain.

    It depends how long and how big the project is, but I would be willing to bake into the price a fixed fee for a year or two after a contract is done without batting an eye. Especially a big contract. Much longer than that and I'd be looking for maintenance in the contract, and as I say, I wouldn't under any circumstances agree to anything more than 5 years out. You can agree to reevaluate the contract in 5 years time if you are so inclined but that's about it.

    In short: Indefinite support, no way, no one sane or honest will agree to that. In terms of negotiating actual rates... depends very much on how big the project is. 20 developers for 2 years is very different than 4 for 3 months.

    1. Re:No convention... by cboslin · · Score: 1

      Good response

      I had a project a few years ago to try and recover some working code from an Apple 2, and last year I was asked to try and find a way to read some CP/M disks. Those problems *can* be solved. But you're looking at a huge amount of time to try and solve them.

      I once was called upon to convert a Surge Tide Data (ocean) program from Cobol to Fortran 77, thankfully had access to the source, so could do it.

      Which got me to thinking, How many other programming Language compilers are there for a pure Linux computer (not so much concerned with the distro, but rather is this even possible and if so, which distro might be more likely...better yet if you have done this, please point me in the right direction.

      If I wanted to write the Towers of Hanoi programming problem in every possible programming language and do so on a Linux computer, how many languages do you think I could get compilers for on Linux? (A friend of mine did this in college, He wrote it in Assembler, C, Pascal, Fortran, Cobol, C++(I think), and many others, but he had access to both PCs and Mini/Mainframes, thus he did not do this on a single machine as I would like to do. He said the hardest language to do it in was DOS Batch, he had to cheat and use files to do the recursion...I thought it was funny, perhaps one or two of you will as well.

      I would like to take a PC from either ZaReason or System 76 (thus no proprietary problems of any kind) and install the compilers/software and do this on a Linux PC...would be interesting to revisit some of the legacy languages I have used over the years just for the kick, just do not want to have to purchase anything to do so.

      Can it be done? Where do I find compilers for legacy languages that will run on Linux?

  196. subject by Anonymous Coward · · Score: 0

    You want an infinitely long support contract? No problem, it will cost an infinite amount of money. Payable in advance.

  197. Re:Your bugs.. your problem by DarwinSurvivor · · Score: 1

    I think it can be argued that any negative results from doing such a thing would be a bug in your shell, not the application.

  198. Re:Programming is like having sex without a condom by Zontar+The+Mindless · · Score: 1

    Nice theory, but in practice? I have a kid on another continent... and I still get to pay child support.

    Try again.

    --
    Il n'y a pas de Planet B.
  199. Re:Programming is like having sex without a condom by Tiger_Storms · · Score: 1

    Well I know it's nothing like sex, because there's many different methods to prevent getting a child other than just the act of having sex with out a condom. Also there's a lot of different factors too.

    --
    This is a Mac, what you have there is an embarrassment to your fellow computer users.
  200. Soul of a New Machine by cboslin · · Score: 1
    A great book for those that don't understand that since the hardware is never 100% completely free of errors, the software can never be assumed to be 100% of errors either.

    Here is a link to it on Amazon (Soul of a New Machine, paperback) (and no I do not make a penny for the link, put it for informational purposes...though the cover of my copy (in storage so can not provide it) was very different than the one listed here. If memory serves, it was white primarily with some blue and silver, (found an image, I was close, enjoy) but I am guessing, it was back in the late 1980s or early 1990s when I read it. Actually an enjoyable read.

    Also no company will pay anyone or any software development house enough money to check for every possible error, it would not be considered smart business and/or cost effective. Not saying I agree or disagree with that, just stating as a fact based on my experience working both in larger Fortune 100 software development and Small Office Home Office (SOHO) software development.

    If you can get paid for it, do it, else that is what a maintenance contract (as many others have pointed out) should be for.