In my experience, good working relationships are based on clear expectations. The following is my ‘default’ process for doing development work. My quotes for work are based on the assumption that you agree to this process. If this is unsuitable or you have any questions, please discuss with me as I’m very adaptable.

1. Develop and Agree to Requirements

We will discuss your needs and develop a list of end results that you require. End results can be nearly anything you like and should be thought of as a list of things that you need at the end of the project in order to be satisfied that it’s done. So, in terms of detail, if you specify ‘a button’ then that means any button with any style. If you have something specific in mind, then it’s important to communicate it before I quote. Even apparently small features can sometimes result in large changes to the development approach. If you get new ideas after development starts, that’s no problem. I’ll do my best to adapt, but you need to be aware that it may affect the design of the application and that may in turn affect the number of hours I need to spend on it. It’s always best to take the time to think things through fully at the start of the project.

2. Quote

Once we have developed and agreed on the requirements for your project, I will give you a quote for the total cost of doing the project for you. My quote is fixed and final, so you don’t have to worry about me adjusting it upwards for any reason apart from you requesting a change to the requirements we agreed to in Step 1. My quote is made on the assumption that we’ll follow the Development Process outlined on this page exactly (unless a different process has been discussed and described in the requirements).

3. Accept and Pay Deposit

After you’ve accepted the quote, I require that you pay a deposit before I start work. For small jobs ($100-600 AUD) this will be 50% of the quote amount. For medium sized jobs ($601-2000 AUD) this will usually be 40%. For large jobs, the deposit amount is negotiable, but typically will be 20-30%. The deposit shows that you’re serious, that you agree to the requirements, that you accept my quote, and it also protects me from getting into a situation where I’ve done 80% of the work and find that my client won’t or can’t pay.

4. Deliver a Working Prototype

The next step is for me to develop a solution according to your requirements and deliver it to you in a ‘testable’ state. You should expect some bugs at this stage (perhaps imagine the job 70-80% complete), however it should be possible for you to test all the major requirements. So for instance, if there’s a requirement for a search facility and you can’t enter any text to search for, I would consider that to NOT be in a testable state. However, if you can perform a search but you didn’t get the exact results you expected or the search results are not presented in the way you expected, then most times I would consider that to be ‘testable’. If you have a medium sized or large project, then once you accept the work as ‘testable’ another milestone payment becomes due (medium jobs: 30%, large jobs: negotiable).

5. Identify Requirement Failures (Bugs!)

This is your opportunity to identify any and all areas where I’ve failed to meet the agreed requirements. My quote is based on doing things in the most efficient way possible, so it’s extremely important that you take your time to identify all bugs and write them down as a list of items that need to be fixed. If you like, you can use the requirements document as a template, and just write your observations/feedback under each requirement. It’s important that I get a complete list of bugs the first time around so take at least a couple of days before getting back to me if you can. Unfortunately, there are overheads involved with fixing bugs and it’s much more efficient for me to fix 10 bugs at once rather than 10 bugs reported on 10 separate days. If you prefer to do it that way, that’s no problem, but since it’ll cost me extra hours of my time, I’ll need to bill you for them on top of the original quote.

6. Bugfix

Once you submit your complete list of bugs and requirements failures, I’ll start work on correcting them all. During this phase I will keep working with you until every last bug you’ve identified is fixed. It doesn’t matter if it takes 1 or 5 attempts, my commitment is to fully address all bugs identified.

7. Completion

Once I’ve addressed all items from Step 5 to your satisfaction and delivered all code and documentation, the job is complete and the final payment milestone becomes due (small: 50%, medium: 30%, large: negotiable).

8. Support Period

I know it’s easy to miss small details so I provide free support for 2 weeks after completion of medium and large jobs. If you notice any minor problems then you can notify me of them within 2 weeks of completion and I’ll fix them for free. Again, this guarantee only relates to items listed in Step 1 (Requirements) or Step 5 (Requirements Failures).

Future Maintenance and Enhancements

All work after the 2 week support period will be billed hourly or on a fixed quote basis, however I do take the existing relationship into account and can generally charge significantly less since I’m already very familiar with the work.

Comments are closed.