How long do you warranty your software against bugs, defects, or security issues after final acceptance by the client? I've used a 90 day window for our web development projects in the past, after which it becomes a time and materials billing scenario. I'm curious what others are doing.
None! See http://www.microsoft.com/windowsxp/eula/home.mspx
- DISCLAIMER OF WARRANTIES. The Limited Warranty that appears above is the only express warranty made to you and is provided in lieu of any other express warranties or similar obligations (if any) created by any advertising, documentation, packaging, or other communications. Except for the Limited Warranty and to the maximum extent permitted by applicable law, Microsoft and its suppliers provide the Software and support services (if any) AS IS AND WITH ALL FAULTS, and hereby disclaim all other warranties and conditions, whether express, implied or statutory, including, but not limited to, any (if any) implied warranties, duties or conditions of merchantability, of fitness for a particular purpose, of reliability or availability, of accuracy or completeness of responses, of results, of workmanlike effort, of lack of viruses, and of lack of negligence, all with regard to the Software, and the provision of or failure to provide support or other services, information, software, and related content through the Software or otherwise arising out of the use of the Software. ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT WITH REGARD TO THE SOFTWARE.
I prefer my company's method. We separate maintenance with future/extra development when dealing with our clients.
Generally we encourage the client to sign some sort of support contract with us, which will cover approximately $X worth of extra development work (feature requests), but bug fixes and other routine maintenance we will generally perform free of charge because the goal is to put out a product which works as well as possible. I personally believe that setting a cut off date for FIXING what is BROKEN gives the wrong idea to the customer. The more involved we are in fixing what may be initially wrong with the product, the more they will use and come to rely on the product, therefore the more they will come back to use with new feature requests and future jobs.
I give 3 months, like you. I'll fix it for free in a "timely manner" if it's not behaving as originally specified. All that on the condition they haven't butchered the code since I last saw it.
I used to just have a statement in my quotes and invoices that said "The code is warranted for 90 days" but one joker tried to pull me up saying the script I'd written for him wasn't working once he had tried to mangle it into another script. He was an utter pain in the arse and threatened court action so now I try and be as verbose about it as possible.
Most people are reasonable but it never hurts to cover your back.
In all of my custom development projects I provide a 30 day window, this ONLY covers anything that does not function to the specifications a listed. I have a few notes/clauses in there though, that if they modify ANYTHING that it voids any guarantee, and I also have the standard limitation of liability clause in there as well.
I guess it would depend on if the bug is directly related to requirements that were agreed to upfront. If it is related to that then we cover the cost to fix it at our company since it was a result of our negligence.
If the problem was due to something else then we charge a set fee that is part of the contract they signed to purchase the software.
I think a product lifecycle schedule is more appropriate. Here you define for how long you will support the software in different aspects, eventually dropping all support entirely.