Starting up a software development business or becoming a freelance software developer can be very confusing. One can face lots of issues such as legal contract, pricing agreement, scope creep and payment dodge. These small businesses usually has no legal binding contract and most of communication is done verbally or via simple email.
Here is the basic framework that I use for many of my clients:
Step 1 – Pricing Proposal Agreement
The first step is to understand and analyse requirements from client. Next, put all the deliverable functions into a pricing proposal (the common term for this is quotation). Ensure all functions and its itemized prices are written down in table format. Below this table, write down all the terms and conditions, and assumption if any. The final thing to do is to ensure the client sign-off the pricing proposal.
Step 2 – Upfront Payment
After the client sign-off the pricing proposal, make sure an upfront payment of 30% or 50% is received. Do not start any development until the client make the upfront payment. A client who has interest in doing business with you and appreciate your value proposition will pay promptly.
Step 3 – Functional Specification Document
If the scale of the project is large and might require more than 6 months time to deliver, then you should prepare functional specification document and workflow document (mock-up page) to describe functions to be delivered in detail. Get your client to sign-off this document.
Step 4 – Development
During development period, visit your client at least once a month to show your current progress and get feedback. In many cases, requirement changes during development phase is very common. So getting frequent feedback is important to reduce these changes in the future.
Step 5 – Installation of Application To Test Server
After completing development, user can begin testing out new application. Visit these users as frequent as once a week to get feedback. There will be some requirements or user interface changes to the application during this phase.
Step 6 – User Acceptance Test (UAT)
After few weeks time, perform UAT with your client. Ensure the client sign-off the UAT document.
Step 7 – Commissioning
After the UAT is completed, upload the new application to live server. Finally, prepare two copies of commissioning letter for the client to sign-off. One for you and the other for your client. This commissioning letter will indicate that the client has fully accepted the new application and the application is now considered fully delivered. For my case, I have added warranty period into the letter as well. So this letter can be used as warranty certificate.
Step 8 – Full Payment
Send invoice to your client requesting for remaining payable amount. Payment terms = 30 days. If payment made within first 7 days, discount 5% on remaining payable amount.
Project is now completed and closed.
Disclaimer: The flow mentioned above is for reference purpose only and may not be suitable for everyone. Please refer to Project Management Professional book for better understanding on project management skill.