Remember that nothing in this world is free, no matter what the price tag itself says. If I am selling a program, and I'm expected to give support, I would build that cost into the cost of developing the product, but likely at a reduced price for the support (in the event they don't use it, they shouldn't feel ripped off). It's going to vary greatly on the amount of time to build the product, as well as how specialized the product is. If it's been sold to many customers and has been rock solid on every installation, I would only add on a little extra into the cost for support, and maybe offer 90 days support.
But why only 90 days?
Well, that's a fair question. A lot can change in 6 months. I've seen some companies who get new systems every 6 months, just because they can. Management might change, and have new decisions, and want to switch to Macs all of a sudden. If my program doesn't work on Mac, I may have needed to rewrite everything for that one customer, or tell them to install Windows to keep it working. 90 days is standard in my country anyways, so I follow suit and agree to the same terms.
Another issue may come up that they save all their support for the last bit; after a few months, I forget about a client's network and system's setup, especially when there are many one-off configurations (i.e. not all systems set up the same). This makes it difficult as well. Yes, keep notes; they will save you time and time again! And just in case you forgot already, KEEP NOTES. I keep them on my phone/tablet, and upload them to my server once I am finished with a site for any work I do. When I get back to my desktop, I can go and consolidate them with the previous versions of the notes.
OK, I get it. How do I determine how much to secretly (or publicly) charge?
Again, depends on you. Here's a short list:
- Look at how long it takes to fix most bugs. Does it require a complete recompile to fix any bugs? Can you simply change a text file of settings to fix it? Is it going to be many PEBCAK issues?
- You need to determine what type of issues you could see the company having.
- Once you determine that, decide how long you think it would take on average to fix it. You may include travel time for customers far away, or be able to offer remote support. One of my previous employers bought a license for a remote access program that worked quite well, and the first few customers that we charged to use it paid for it essentially; the rest was paying for my time to troubleshoot while working on other issues as well. Not the ideal situation, but saves money for us, and therefore, the clients.
- Are you going to support their entire computer system, and not just your program? Some companies expect you to take over every aspect of support, and if you are not willing to take that on, make sure you specify what you will offer support on. Nothing like going in to fix a program, then be asked to update their website, unjam the printer, setup 4 new workstations out of the box, install a media program, THEN allow access to Facebook. SPECIFY what is free, and explain you'll charge for the rest.