ALL are advised to consult an expert for your particular application.
In the following information you can substitute cloud, disks, flash drives, etc for the place you are backing up!
CON: Requires management from the customer. However, there is not a style that does not require management. The trick here is to define the level of staffing to the level of project and of course with any approach, finding the right vendor. A project that is staffed with the wrong people is a nightmare. Also, budget control becomes a larger issue here, again this should controlled by "managing" the project and not just hoping for the best.
Project Management is always a real issue and must be done. We do strong project management with involved major checkpoints at the 25%, 50% and 75-80% budget use stages while also doing the weekly checks. You should know ahead of time if the project is having time and budget issues not after the fact
CON: is the same as the answer to question 5 above. That is, you and your vendor are now on opposite sides of the fence. No specification can be 100% complete, including colors, screen design, and complete processing. Also typically the business customer needs change over the time the program is being written. This creates a "Change Order", and has to be estimated and agreed upon. The business customer doesn't want to deal with 100's of change orders and typically expects most of these to be included in the originally price. The vendor however has to pay the programmers and other staff for the work, and every change order is an increase in cost, so now the vendor and customer have to negotiate, not a friendly situation over time.
Not-To-Exceed also means different things to different people. Typically in a commercial environment it means that the project must be completed and not exceed this price. Not-To-Exceed is rarely used in a commerical environment. In government Not-To-Exceed typically means work continues until the specified ceiling is reached and then work stops until a new budget amount can be allocated to the project. We've seen government projects span years because of this but frequently this is the only method a government agency can utilize to get a project done.
The definition should always be clarified before work begins.
ANSWER: When you hire a programmer to create a program, or modify an existing system you should receive the following
1 - The system you asked for.
2 - The source code. (why you need this!)
AND If you asked for it...
3 - Documentation on how to use the program.
4 - Training on how to use the new system.
In simple terms, programs have two flavors, one your computer understands and runs, this is typically called the
executable. The other is the source code which is in a computer language that a programmer can understand and work with.
Without the source code your program cannot be modified, or updated by anyone other than the original programmer who has the source. If you are paying for programming by the hour then you are paying for the source code and not just the executable. Don't hire a programmer who is not willing to give you the source code.
Their can be circumstances where you might not get the source code - you are paying a fixed price for the system with an understanding that the programmer is going to resell the same program to somebody else. Anything else and your friendly programmer is holding you hostage, you'll always have to go to them to get modifications done, and they can and typically do start raising their rates.
We can go back to the biography example used above. Can you imagine trying to pay a ghost writer a fixed price to write your biography? A computer program has so many variables, so many unknowns that it's hard to estimate the time required to give you what you want. Now I've heard - "I know exactly what I want!" Ok, do you know what every piece of data, every field on the screen and every piece of data on a report should look like and act? If you really think about it you don't.
Don't believe me - let's try a little example. Let's define a simple program to track Phone calls that come in Let's keep it simple and say only one person is going to enter information into it. Now, the obvious (which is like common sense - there is no such thing) we need time and date, who called and a topic plus maybe a notes field for details. Simple, but do you need first name and last separately - are you going to want to look up by last name or first? Do you want to type the names in all the time or do you want to be able to look them up? Do you want it to type in the date and time or do you want a button to automatically enter it for you?
What about logging a call that happened earlier - so you need both. Do you want to track who they were calling for - or what they were calling about from a list so you can keep reports on it later? Do you want to track the resolution of the phone call? Whether they need a call back or not?
And so it goes down to the color of the screen and buttons.
Some people say my home builder can give me a price why can't a programmer. A home builder has plans that you've either purchased - or had made. This most likely has cost you thousands of dollars. Programmers can do the very same thing but you have to go through a detailed analysis document before the programmer can start and just like building a home, this costs thousands of dollars. Most customers do not want to pay for this. The alternative is to build in small phases to make sure the program is built how you want it without huge mistakes.
For those of you who have had your own home built then you know about the things that are missed. Enough electrical outlets and in the right spots, enough lighting, enough cupboard space, enough room here, doorways, ventilation, etc.