The fixed budget model
1. We get requirements from customer and bring an estimate. It looks simple, but it may vary in real life:
if requirements are not structured we can help structuring them, build hiearchial list of requirements and software development specification
if there are options, which affect budget – we will list each option, with all pros and cons.
if there is need to talk to end users or 3rd party companies (vendors or partners of our customer) – we’ll do that, and keep track of all conversations and solutions
if we are not sure – we may set some experiments. Again we’ll document them and keep track of results.
Depening on the efforts, that are necessary for this stage – we may ask for some budget here. In this case we provide all the documentation (requirements, specifications, etc) as the result for this piece of work.
If necessary we give proposal for splitting project into pieces (milestones) with appropriate payment after each one.
Estimate includes proposed timeframe.
2. We ask for upfront payment if project will last for more then 1-2 months and in some other cases. We normally ask up to 30% of the budget of first delivery. In other cases we do not ask for upfront payment – this depends on the kind of work and size of project.
3. We start development, keeping customer up-to-date with reports, intermediate results, demos, etc. If requirements are changed – we change estimate and agree new version with customer before proceeding.
4. After completing each milestone we ask for payment and deliver source code with all documentation and revision history. We deploy result on our stage server or on customer stage server if necessary.
5. After completing project we are available for bugfix and support. For first 2 months support is free of charge. This includes bugfix, troubleshooting infrastructure issues, training end users, adding manuals if necessary, etc.
The pay-per-hour model
1. We start work right away keeping customer up-to-date with information about each spent hour.
2. We ask for payment normally once a month. This period may be shorter for first couple of payments for new customers.
3. Basically we deploy all changes immediately after testing. We deliver documentation and other materials after receiving payment.